3

私のプロジェクトでは、2 つの問題に直面している一連のドキュメントのテキストの類似性を計算しようとしています。

  1. 以前に計算したドキュメントの用語頻度を再計算したくありません。たとえば、10 個のドキュメントがあり、10 個すべてのドキュメントの用語頻度と逆ドキュメント頻度を計算しました。次に、さらに2つのドキュメントを取得します。ここで、既存の 10 個のドキュメントの用語頻度を計算したくありませんが、入ってきた新しい 2 個の TF を計算し、12 個のドキュメントすべての TF を使用して、12 個のドキュメントの IDF を次のように計算します。全体。 既存のドキュメントの TF を再計算せずにすべてのドキュメントの IDF を計算する方法は?

  2. ドキュメントの数が増える可能性があるため、インメモリ アプローチ (InMemoryBayesDatastore) の使用が煩雑になる可能性があります。私が望むのは、すべてのドキュメントのTFをHBASEテーブルに保存し、新しいドキュメントが到着したら、新しいドキュメントのTFを計算し、それらをHBASEテーブルに保存してから、このHBASEテーブルを使用してすべてのTFを取得することですIDF を計算するためのドキュメント。 HBase を使用して、データをシーケンス ファイルからフェッチする代わりに、Mahout の Text Similarity に提供するにはどうすればよいですか?

4

1 に答える 1

1

あなたの MR ジョブでは、HDFS から読み取り、Hbase に出力していると思います。問題を正しく理解していれば、各ドキュメントの TF を計算し、Term を行キーとして保存することをお勧めします。修飾子は documentID にすることができ、値は頻度にすることができます (スキーマの単なる提案)。ドキュメントごとに 1 つの MR ジョブを実行する必要があり、ドキュメントごとに 1 回だけジョブを実行する必要があります。

分析しているドキュメントが到着したときに、これを各ドキュメントに対して行います。

次に、最終的な MR ジョブを実行して、用語ごと (行ごと) にすべてのドキュメントを比較します。これは特定の用語に対しては機能しますが、「類似の用語」では複雑になります。次に、複雑になる可能性がある項間のレーベンシュタイン距離を考慮した何らかのアルゴリズムを実行する必要があります。

于 2012-07-04T04:51:11.297 に答える