質問

マルコフ連鎖はほとんどの標準の方法で作成 ランダムgibberish るシステム訓練です。どうしているのを発生するマルコフテキストから記述します。

このバンドメンバーが資源になるにはPythonです。

役に立ちましたか?

解決

行する"力任せ"のアプローチ法を比較すると、生成された言語のデータを収集したn-gram上のマルコフモデルを生成します。

すなわち場合に発生すると、2次マルコフモデル3-gramを行い、正しい周波数が4-gramん.

できる-聴く-読む-楽しむ>5-gramの周波数からGoogleの公開 n-gramデータセットである。 それは巨大なもの-24G 圧縮 ますので必ず事務局にご連絡くから 開発途上国.

編集:追加実施内容

N-gramは既に数えうるだけの店内は、カウント(または周波数が、早く検索します。適切な索引データベースになるのかもしれないし、指数を導入可能。

につき一枚のテキスト、スキャン全体での周波数の各5-gramデータベース、見るので比5-gramで始まる4。

実際には大きな障害物がライセンスのデータセットである。使用の商用アプリもすることを禁じます。

他のヒント

一つの簡単な方法は、人間の大規模なグループがあなたのために入力テキストを読んでいると、テキストが理にかなっているかどうかを確認することです。私は、これは難しい問題であり、唯一の半分冗談ですよ。

マルコフ連鎖生成されたテキストは、単語の出現頻度や単語の順序間の単純な関係の観点から、実際の人間のテキストの同じ性質の多くを持っているとしているので、

私は、これは難しい問題であると信じます。

マルコフ連鎖によって生成された実際のテキストとテキストとの間の差は、プログラムコードしにくい文法と意味論的な意味でより高いレベルのルールです。他の問題は、マルコフ連鎖は、彼らが時々文法的および意味的に正しい文を思い付くテキストを生成するに十分であるということです。

例として、ここではkantmachineするから格言です>
  

今日、彼は確信して感じるだろう   人間の意志は無料です。明日、   の不溶性の連鎖を考えます   自然は、彼がとして自由になります   単なる幻想とする自然を宣言する   ALL-IN-全てます。

この文字列は、コンピュータプログラムによって書かれましたが、それは人間がこれを言うことはないと言うことは難しいです。

私はあなたが私たちに多くの明らかな違いを露出させ、コンピュータと人間が生成したテキストについて、より具体的な詳細を与えることができない限り、この使用してコンピュータプログラミングを解決するのは難しいだろうと思います。

私はエヴァンの答えの一般化を提案する:自分のマルコフモデルを作成し、あなたが与えられている(非常に大きい)サンプルの大きな塊でそれを訓練する、「テストデータ」として、サンプルの残りの部分を予約します。今、例えば、あなたが訓練を受けてきたモデルは試験データにどうするかも見ますオーバー - 「フィット感があまりにも良い」する状況(テストデータが実際にこのモデルによって生成された示唆)だけでなく、フィットがモデル構造にエラーを示唆している(非常に悪いであるものを提案しますカイ二乗検定で間違った構造を持つ-trainedモデルは、このようなケースでは悪名高い悪い仕事をしていません)。

もちろん、このようなモデルの構造として、キャリブレーションのための多くの問題は、まだあります - あなたは言葉ともう少しのNtuplesに基づく単純なモデル、または文法の状態等とのより洗練されたものを疑っています。幸いにも、あなたは様々な構造のモデルを自分で生成するテキストも自然に知られており、また、ものの大規模コーパスを使用してかなりよく物事を校正することができます。

別のアプローチは、あなたが与えられている文章を解析するために NLTK して使用することである - 少数の誤パース(人間は不完全ですので、パーサがあるとして - それは、その単語Xは動詞として使用することができます知っている唯一の名詞としてそれを分類しないかもしれない、などなど)も、自然な文章で予想されるが、最もマルコフモデルは、(彼らは本質的に同じ文法構造をモデル化している場合を除き、あなたのパーサが使用することを起こる - あなたはそれを試してみて、対抗するために、いくつかのパーサを使用することができます - !)でも、失読症の人間よりもはるかに多くの誤パースの原因となります。ここでも、合成テキスト対自然にそれを校正し、あなたは私が何を意味するかわかります - !)

あなたは、いくつかの大規模なマルコフ-生成されたテキストを持っていた場合は、

、あなたはおそらく、彼らはサンプルのそれぞれとの間の単語の出現頻度を比較することによって、そうしたことを決定することができます。マルコフ連鎖は、一定の語確率に依存するため、任意の所与の単語の割合は、試料からの試料にほぼ等しくなければならない。

クラウドソーシング。Mechanical Turk を使用して、多数の人間にこれについて投票してもらいます。これを実行するのに役立つライブラリもいくつかあります。例えば:

Mechanical Turk を使用して作業を完了するためのヒントに関する O'Reilly Radar のブログ投稿は次のとおりです。

は、記号の任意のシーケンスからマルコフ遷移確率を生成し、マルコフ行列のエントロピー率を算出するプログラムを記述する場合。これを( http://en.wikipedia.org/wiki/Entropy_rate#Entropy_rates_for_Markov_chains を参照) (の予測が難しく、より高いエントロピーを意味する)は、基本的にテキストがちょうどマルコフ連鎖を用いて予測することができる方法を容易にの推定値です。したがって、私は、マルコフ行列の低エントロピーは、テキストのサンプルはマルコフ行列によって制御される可能性が高いと思うだろう。あなたは、このコードを書く方法についての質問がある場合は、私は自分のコンピュータ上で正確にこれを行うのpythonでプログラムを持って起こるので、私はあなたを助けることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top