2017-03-21 11 views
1

私はすべきであるようにうまく動作しているテキストスピナーを書いています。しかし、私はデータベースから取得している辞書を使用しているので、読みやすい文章の正確さは非常に低いです。これは、このNaive Bayesを使用しているテキストスピナー

{Your} {home| house| residence| property} {is} {your} {castle| mansion| fortress| palace} 

ようspintaxを返すランダム同義語とユーザの元の入力に基づいて出力文を選択する関数に渡されます。たとえば、入力のために:

Your home is your castle. 

は今

Your property is your mansion. 

を返します。私はそれが私の出力文章が読みやすくなりますよう、人工知能を含めたいです。ナイーブベイズを使ってより良い選択をする方法を知りたい。私はおそらくよりよい結果が得られるように訓練する必要があることを知っている。

ここに私の現在の単語選択の方法がありますが、これは現在とても簡単です。あなたたちはより多くのコードを投稿するために私が必要な場合は

def spin(spintax): 
    while True: 
     word, n = re.subn('{([^{}]*)}',lambda m: random.choice(m.group(1).split("|")),spintax) 
     if n == 0: break 
return word.strip() 

は、事前にありがとう、私はあなたの質問に対する簡潔な答えはありませんので、これはおそらく閉鎖されますが、あなたがNLTKをチェックアウトする場合があります

答えて

1

たぶん、あなたは、Googleがすべての英語の本から収集したデータセットをダウンロードして、ngramsを使用してランダムな文章を生成することがありましたか? https://books.google.com/ngrams

実装にはMarkov chainを使用します。このダウンロードされたデータは、次に選択する単語の確率を示します。

+0

私はそれを調べる提案に感謝します。 –

関連する問題