1

テキスト ファイルのディレクトリが 2 つあります。一方には がUser Descriptionあり、もう一方にはUser MessagesフィールドDATE<\t>NAME<\t>DESCRIPTIONとがありDATE<\t>NAME<\t>MESSAGEます。私の主な目的は、これら 2 つのファイル間のプロファイルとメッセージ ワード間の相関行列を取得することです。

一例は次のとおりです。

                              *message words*
                          cat     dog    mouse ....
*profile words*    cat    100     20      50
                   dog     2      30      22  ...
                   ...
                   ...

ここで、cat と cat の間にある 100 という数字は、「プロファイルの説明に「cat」を含むすべてのユーザーが作成したすべてのメッセージで、「cat」という単語が 100 回出現した」ことを意味します。

Java を使用してこの問題を解決しようとしましたが、テキスト ファイルのサイズが原因で、このプログラムのより単純なバージョンでさえ実行できませんでした。数日前に投稿した問題です。このawkツールは以前の問題を解決しました。

私の質問は、この種の問題を解決する効率的な方法はありますか? 言語の制限はありません。また、diff や cat などの bash ユーティリティについてある程度の知識があります。

参考までに、User Messages1.7G の複数のテキスト ファイルがあります。User Description複数のファイルでも約400Mです。Java に割り当てることができる最大のメモリは -Xmx1800m です。

また、これが有効な質問でない場合は、お知らせください。投稿を削除します。

ありがとうございました!

4

1 に答える 1

0

Java に由来するが、C# および C++ (少なくとも) にも移植されている Lucene ライブラリを見てみてください。

あなたが行うことは「索引付け」と呼ばれます - ドキュメントを作成します (たとえば、単純なファイルに関連付けることができます)。各ドキュメントには、オプションのフィールド (ファイルが表示されるディレクトリ) を含めることができます。その後、特定の単語の数やさらに多くの単語形式 (猫と猫のように) を数えるのは非常に簡単です。

于 2012-04-29T19:33:28.947 に答える