6

ソース データに基づいてランダムな単語を生成するためにマルコフ連鎖を使用する例を数多く見てきましたが、それらは少し機械的で抽象的すぎるように思えることがよくあります。より良いものを開発しようとしています。

問題の一部は、ペアの全体的な統計的発生に完全に依存しており、単語が特定の方法で開始および終了する傾向を無視していることにあると思います. たとえば、上位 1000 人の赤ちゃんの名前をソース データとして使用する場合、J という文字は全体的には比較的まれですが、名前の最初の文字として 2 番目に多い文字です。または、ラテン語のソース データを使用している場合、-um や -us などの語尾は一般的な語尾になりますが、すべてのペアを同じと見なすと、それほど一般的ではありません。

したがって、基本的には、ソース データで単語が開始および終了する方法を考慮した、マルコフ連鎖ベースの単語ジェネレータをまとめようとしています。

概念的には理解できますが、ソフトウェアの観点からこれを実装する方法がわかりません。ソース データ (たとえば、1000 語のリスト) をドロップして、現実的な開始、中間、終了のさまざまなランダムな単語を生成できる小さな PHP ツールをまとめようとしています。(ほとんどのマルコフベースの単語ジェネレーターとは対照的に、ペア全体の統計的発生にのみ基づいています。)

可能であれば、ソースデータによって決定される語長でこれを行いたいと思います。つまり、ランダムに生成された単語の長さの内訳は、ソース データの長さの内訳とほぼ同じである必要があります。

どんなアイデアでも大歓迎です!ありがとう。

4

1 に答える 1

3

一般的な始まりと終わりを尊重しないという部分は、「単語間のスペース」を記号と見なす場合、実際には正しくありません。一般的な始まりは「単語間のスペース」の後に高い周波数があり、一般的な終わりは「スペース」の前に高い周波数があります。言葉の間」。正しい単語の長さも多かれ少なかれ自然に解決されます。「単語間のスペース」記号に移行する前に出力する平均文字数は、トレーニング データの単語あたりの平均文字数と等しくなるはずです。私の心の奥底は、配布がオフになっている可能性があると言っています。

于 2011-05-16T03:48:40.540 に答える