20

私はグーグルを試してみましたが、理解できるものはほとんど見つかりませんでした。

マルコフ連鎖が非常に基本的なレベルにあることを理解しています。これは、状態を変更するための以前の入力のみに依存する数学的モデルです..さまざまな基準ではなく、重み付けされたランダムチャンスを持つFSMのようなものですか?

それらを使用して、種類の辞書として使用する既存の単語の文を指定して、半知的なナンセンスを生成できると聞きました。

これを見つけるための検索用語が思いつかないので、リンクを貼ったり、半知的な答えを出す方法を教えてくれませんか? (パイについて聞いても、聞いていたベトナム戦争については話さない)

私は計画しています:

  • このボットを IRC チャンネルでしばらくアイドル状態にする
  • 文字列からユーザー名を取り除き、文などとして保存します
  • 時間をかけて、これを上記の基礎として使用してください。
4

3 に答える 3

32

はい、マルコフ連鎖は確率的な状態遷移を持つ有限状態マシンです。単純な 1 次マルコフ連鎖を使用してランダム テキストを生成するには、次のようにします。

  1. コーパス (テキストのコレクション) からバイグラム (隣接する単語のペア) 統計を収集します。
  2. 単語ごとに 1 つの状態を持つマルコフ連鎖を作成します。テキストの終わりの特別な状態を予約します。
  3. 状態/単語xからyにジャンプする確率は、単語yがxの直後に続く確率であり、トレーニング コーパスの相対バイグラム頻度から推定されます。
  4. ランダムな単語xから始めます (おそらく、その単語がコーパス内の文の最初の単語として出現する頻度によって決定されます)。次に、 yがxに続く確率(状態遷移確率)を考慮して、ランダムにジャンプする状態/単語yを選択します。テキストの終わりに達するまで繰り返します。

これからセミインテリジェントなものを取得したい場合は、慎重に収集された多くのテキストでトレーニングすることをお勧めします。「たくさん」の部分は、高い確率で適切な文 (またはもっともらしい IRC の会話) を生成します。「慎重に収集された」部分は、それが何について話しているかを制御することを意味します。高次マルコフ連鎖の導入も両方の分野で役立ちますが、必要な統計を保存するためにより多くのストレージが必要になります。また、統計的平滑化などを調べることもできます。

ただし、IRC ボットが発せられた内容に実際に応答するには、マルコフ連鎖よりもはるかに時間がかかります。これは、発言内容のテキスト分類(別名トピック スポッティング) を実行してから、テキスト生成用のドメイン固有のマルコフ チェーンを選択することによって行うことができます。ナイーブ ベイズは、トピック スポッティングの一般的なモデルです。

The Practice of Programming のKernighan と Pike は、マルコフ連鎖アルゴリズムのさまざまな実装戦略を検討しています。これらと自然言語生成全般については、Jurafsky と Martin のSpeech and Language Processingで詳しく説明されています。

于 2011-03-31T16:15:22.860 に答える
0

Ian Barber Text Generation (phpir.com) を探します。残念ながら、サイトはダウンしているか、オフラインです。私は彼のテキストのコピーを持っているので、あなたに送りたいです。

于 2011-03-31T16:08:01.380 に答える
0

同時に複数のことを試しているようです:

  1. IRCでアイドリングして単語/文を抽出する
  2. 知識ベースの構築
  3. チャットを聞いたり、キーワードを解析したり
  4. キーワードに関する文を生成する

これらは基本的に非常に異なるタスクです。マルコフ モデルは、機械学習によく使用されます。ただし、あなたのタスクにはあまり学習が見られません。

larsmans answer は、単語ベースのマルコフモデルから文を生成する方法を示しています。他の IRC ユーザーが使用した単語ペアを優先するように重みをトレーニングすることもできます。しかし、マルコフモデルを構築/改良することは、それを「駆動する」ことと同じではないため、これはキーワード関連の文を生成しません。

目に見える出力がキーワードであり、隠れた状態がそれらの単語のペアから作成される隠れマルコフ モデル (HMM) を試すことができます。次に、特定のキーワードにより適した文を動的に優先することができます。

于 2011-03-31T16:22:52.270 に答える