2012-04-12 2 views
0

非常に大きい2つの記事AとBがあります。 Aで3つ以上の連続した単語を取得し、Bに表示されているかどうかをチェックし、出現回数を数えます。たとえば、「book」「his」と「her」がAに表示されている場合、Bに何回表示されますか?Aから入手可能な記事Bの連続する単語を見つける

私はBの内容全体を分割し、Aの3つの単語すべてをStringTokenでチェックすることを考えましたが、アルゴリズムの効率についてはわかりません。

+0

質問:1)2つのドキュメント、または多くのドキュメントのペアごとにこれを行う必要がありますか? 2)あなたが興味を持っている連続した単語の数の上限がありますか、または可能な限り長い一致を本質的に探していますか? 3)これは特にプログラミング言語(これは具体的に聞こえる 'StringToken'と言います)ですか? – jogojapan

+0

あなたはどの言語を使用していますか?この宿題ですか? –

+0

言語はJavaであり、イエスです。私はいくつかの質問のためにグーグルグーグルであり、私はこれを見つけました.1)現在は2つのドキュメントに制限されています2)上回りはなく、最長一致はアップグレードされたオプションとなります。3)java –

答えて

1

Hashtableが何であるかを見て、ハッシュテーブルに見つかった各単語(見つからない場合)または各単語を1つずつ検索します(大きなファイルのメモリ使用について気にしない場合は分割できます)。単語が見える時間を得るために数を増やしてください。

次にスキャンします。 Aを越えて、3ワードの各セットを探しています。この方法では、後で何も書き換えずにウィンドウの長さを長くすることができます。

参考のために、実際には宿題にそのようなタグを付ける必要があります。

0

結果に到達するには、Bのコンテンツ全体を一度スキャン/解析する必要があることは明らかです。あなたはそれを避けることはできません。行ごとにそれを読んでください。すべての行について、指定された検索条件と行内の数を検索します。最終結果を得るために、行ごとに生成されたカウントを追加し続けます。

Bのコンテンツに同じ/異なる用語を何度も使用したい場合は、BのためにInverted_indexを作成するのが最適です。

関連する問題