想像してみてください。同じ人が書いた英語のテキストが2つあります。それぞれを分析するためにいくつかのマルコフ連鎖アルゴリズムを適用することは可能ですか?統計データに基づいてある種の指紋を作成し、異なるテキストから取得した指紋を比較しますか?たとえば、100個のテキストを含むライブラリがあるとします。ある人はテキスト番号1を書いた人もいれば、他の人も書いた人がいます。私たちは彼/彼女の文体を分析することによってどちらを推測する必要があります。それを行う既知のアルゴリズムはありますか?ここでマルコフ連鎖を適用できますか?
2 に答える
絶対にそれは可能であり、実際、テキストまたはその一部を与えられた著者を特定することに成功した記録は印象的です。
いくつかの代表的な研究(警告:リンクはPDFファイルへのリンクです):
Web検索を支援するために、この分野はしばしばスタイロメトリー(場合によってはスタイロジェネティクス)と呼ばれます。
したがって、2つの最も重要な質問は、私が推測することです。この目的に役立つ分類子と、分類子に供給されるデータはどれですか。
私がまだ驚くべきことは、非常に正確な分類を達成するために必要なデータがいかに少ないかということです。多くの場合、データは単なる単語頻度リストです。(単語頻度リストのディレクトリは、ここからオンラインで入手できます。)
たとえば、機械学習で広く使用され、Web上のさまざまな場所から入手できる1つのデータセットは、シェイクスピア、ジェーンオースティン、ジャックロンドン、ミルトンの4人の著者からのデータで構成されています。これらの作品は872の部分(大まかに章に対応)、言い換えれば、4人の著者のそれぞれについて約220の異なる実質的なテキストに分割されました。これらの各部分は、データセット内の単一のデータポイントになります。次に、各テキストに対して単語頻度スキャンが実行され、最も一般的な70の単語が調査に使用され、頻度スキャンの残りの結果は破棄されました。これがその70語のリストの最初の20語です。
['a', 'all', 'also', 'an', 'and', 'any', 'are', 'as', 'at', 'be', 'been',
'but', 'by', 'can', 'do', 'down', 'even', 'every', 'for', 'from']
各データポイントは、872の各章の70語のうちの各語の数にすぎません。
[78, 34, 21, 45, 76, 9, 23, 12, 43, 54, 110, 21, 45, 59, 87, 59, 34, 104, 93, 40]
これらの各データポイントは、作成者の文字指紋の1つのインスタンスです。
各データポイントの最後の項目は、そのテキストが属する4人の作成者の1人を表す整数(1〜4)です。
最近、私はこのデータセットを単純な教師なしMLアルゴリズムで実行しました。結果は非常に良好でした。4つのクラスがほぼ完全に分離されています。これは、著者の識別ではなく、MLを使用したテキスト分類に関連するStackOverflowに関する以前のQへの回答で確認できます。
では、他にどのようなアルゴリズムが使用されていますか?明らかに、教師ありカテゴリのほとんどの機械学習アルゴリズムは、この種のデータを正常に解決できます。これらの中で、多層パーセプトロン(MLP、別名、ニューラルネットワーク)がよく使用されます(ニューラルネットワークを使用した著者の帰属は、そのような頻繁に引用される研究の1つです)。
まず、 ApacheMahoutWebサイトにアクセスすることから始めます。分類とクラスタリングに関する巨大な文献があります。基本的に、クラスタリングアルゴリズムを実行し、「どのライター」がクラスターを決定することを期待します。