2011-11-15 8 views
2

私の目標は、聖書のどの2つの本の相対的類似性を計算することができる方法で聖書を処理することです。理想的には、単語の分布が類似している場合は2つの書籍のスコアが高くなりますが、共通のフレーズが多い場合はスコアが高くなります。例えば、マタイの本はマルコの本を大いに借りていますが、長さの約2倍であり、多数のパッセージがそのまま重複していますが、重複した節の順序は一貫していません。多くの文書(例えば、聖書の本)の類似性を計算するためのアルゴリズム

これが階層的に実行できるのは素晴らしいことです。個々に処理された詩、章に集約された書籍、そして最終的には本です。詩が与えられれば、チャプターや本で似たような詩のランク付けされたリストを検索することができればよいでしょう。

類似した単語(歩く、歩いている、歩く)に対してもシステムが部分的な評価を与えることができればそれも良いでしょう。

完了したら、これを任意のドキュメントセットに拡張したいと思います。

これまでは、各単語をグラフデータベースにinverted indexとして保存し、グラフアルゴリズムを使用してグラフの類似度を評価することを検討していましたが、スコアリングにどのアルゴリズムを使用するのかはわかりません(Collaborative Filtering? )。

Levenstein DistanceまたはBK-Treesのようなものは、(ファジーマッチングのために)役立つかもしれませんが、トータルソリューションには不十分なようです。おそらく、BKツリーを介して単語を前処理し、結果を使用してグラフに追加のリンクを追加すると、ファジーマッチング機能を達成するのに役立ちます。

答えて

4

単語の頻度の類似度はhttp://en.wikipedia.org/wiki/Cosine_similarity http://en.wikipedia.org/wiki/Jaccard_indexを参照してください(http://en.wikipedia.org/wiki/MinHashへの参照に注意してください)。http://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergenceは対称ではありません。

あなたが興味を持っているのは単語またはフレーズの頻度だけですが、必要なのはカウントだけで、MinHashでは選択したカウントだけが必要です。問題の言語について何か知っていれば、各単語を根にして似た言葉を見ることができます。英語については、おそらくhttp://en.wikipedia.org/wiki/Wordnet#Other_languagesのようなものから言語情報を得るかもしれません。ヘブライ語/新約聖書ギリシャ語については知らない。あなたは二つの文書間で重複して大きな塊を持って

、あなたは接尾辞配列を使用することができます - 1つの飛び降りポイントがまだ読んhttp://algs4.cs.princeton.edu/63suffix/

+0

ですが、有望に見えます。ありがとう。 –

関連する問題