3

約 30 の単語と一連の記事を含むストップ ワードのリストがあります。

各記事を解析して、それらのストップ ワードを削除したいと考えています。

それを行う最も効率的な方法が何であるかはわかりません。

たとえば、停止リストをループして、記事内の単語が存在する場合は空白で置き換えることができますが、うまくいきません。

ありがとう

4

4 に答える 4

4
  • ストップワードを入れてjava.util.Set
  • 入力を単語に分割する
  • 入力の各単語について、それがストップワードのセットに含まれているかどうかを確認し、含まれていない場合は出力に書き込みます
于 2010-07-05T20:47:42.050 に答える
1

言葉を置き換えるのは非効率的です。おそらく最善の策は、記事を単語ごとに解析し、各単語を新しい StringBuffer にコピーすることです。ストップワードでない限り、その場所に必要なものをコピーします。ここでは、StringBuffer は String よりもはるかに効率的です。

ストップワードが 30 程度しかない場合、ストップワードをどのように保存するかはおそらく重要ではありません。セットはおそらく良い賭けです。

于 2010-07-05T20:48:20.643 に答える
0

Sun Java Tutorialsによると、Perl 互換の\b区切り文字を正規表現で使用できます。単語をそれらで囲むと、句読点や空白が前後にあるかどうかに関係なく、その単語のみに一致します。

于 2010-07-05T20:49:19.480 に答える
0

入力から単語を読み取り、それがストップ ワードのリストにない場合にのみ、StringBuilder (または結果を配置する場所) にコピーします。ストップ ワードを HashTable のようなものに入れると、より速く検索できます。

編集:おっと、私が何を考えていたのかわかりませんが、HashTable(または他の辞書)ではなく、セットが必要です。

于 2010-07-05T20:50:36.987 に答える