2011-12-05 5 views
2

これはおそらく非常に難しい質問ですが、とにかく私の質問です。会話のトピックをプログラムで決定する

会話のトピックを決定するための最良の方法は何ですか?会話はIRCを介して行われます。私は、話題をかなりうまく解釈してきた過去のチャットボットを書きましたが、私が望むほど正確ではありませんでした。

私はこれまで、 "the"や "a"のような一般的な単語のリストを作成してから、それらをトピック配列からフィルタリングしなければなりませんでした。これが正しい方法かどうかは分かりません。

私は会話の現在の話題がどのような単語であるかを理解するためのある種の頻度アルゴリズムがあるのだろうかと思います。

どのようにこれを達成することができるかについてのご意見をお待ちしております。ありがとう。

+2

チャットトピックは単語「」、あなたはちょっとあなたではないだろう、ネジ止めされるだろうことを起こる場合は? – cHao

+0

@cHao正確に。だから私は実際の話題を返す解決策を探しています。たぶん、トピックの60%が8番目に使われた単語であることが判明しました。だから、1番めに使われたものよりむしろそれを使うべきです。何も思いつきません。それは私が尋ねている理由です^^ – Olical

答えて

1

Zipf's Lawと呼ばれるものがあります。 人によって書かれたテキストにのみ正確に適用することができ、それにはある程度の長さが必要です。

このようなアルゴリズムでテキストを実行した結果、テキストのトピックを詳しく説明する一連のキーワード(元のテキストの5%〜7%)が得られます。

+0

これは私の脳が頭の中から落ちる原因になるかもしれません。しかし、私が探している正確なものであるようです。私はあなたがIRCのメッセージが何であるか知っていると確信しています。短いと通常はあまりコヒーレントではありません。たぶん、私は最後の10個のメッセージを組み合わせて、このようなものを介してそれらを実行することができます... – Olical

+0

はい、結合は会話全体のトピックを分析するために優れています。私は、複数の話題が議論されていても、それが間違っているとはかなり確信しています。 –

+0

私はそれができると確信しています。しかし、どんな程度の正確さも誰のものよりも優れていません。過去には、私のボットの曖昧な正確さがそれを陽気にしてきました。これありがとう。あなたは、結合されたメッセージで作られたサンプルのアイデアと、それを解釈するジップの法則などのものを使って、私を正しい軌道に乗せました。 – Olical

1

自然言語処理は非常に難しいかもしれませんが、基礎だけでは結果は得られます。 Daniel GabrielのZipfの法則を使うことの提案は良いことです。

マニングとSch ü tzeのFoundations of Statistical Natural Language Processingのような概要図書は役立つかもしれません - それは多くの一般的なテクニックを説明し、より専門的なリソースを指し示します。

(彼らのIntroduction to Information Retrievalがあまりにも、優れており、敷地内に無料のPDFを持っています。)

+0

これは、素晴らしい答えをありがとう!私はすでに私のボットのZipfの法則に似た何かを実装していますが、これは将来的に人々に役立つと確信しています。ありがとうございました! – Olical

関連する問題