トークナイザ、ストップワードの除去は、Javaでステミング
-
12-09-2019 - |
質問
私は、IRシステムで使用するためのストップワードを削除し、単語やトークン化の多く100Sの長い文字列を取り、茎クラスやメソッドを探しています。
例
の "大きな太った猫、カンガルーに 'あなたのおかしな男は、私が知っている' と述べた..."
トークナイザが句読点を削除し、単語のArrayList
を返します。
ストップワード除去はなど、「」、「へ」のような言葉を削除します。
ステマーが各単語彼らの「ルート」、例えば「面白い」は面白いなる低減するであろう。
事前に感謝します。
解決
私の知る限りのLucene のあなたがやりたいことができます。 StandardAnalyzer
とし、ストップワードの除去にすることができますStopAnalyzer
。あなたも語幹を行うことができますプロジェクト(雪玉するからの作業が含まれます)Lucene contrib-snowball
ます。
しかし、また、語幹のために、この答えを考えます本当の言葉
の他のヒント
これらは、私は、このようなツールキットに見える自然言語処理における標準的な要件です。あなたは、Javaを必要とするので、私はOpenNLPで開始したいです: http://opennlp.sourceforge.net/する
あなたは他の言語で見ることができる場合もNLTKあります(Pythonの)
「私は知っているあなたのおかしな男が」標準の構文ではなく、これはそれが難しい「あなたは私が知っているおかしな奴だ」よりも処理することができますことに注意してください。不可能、しかし、はるかに困難ではありません。私は「あなた」「あなたがいる」に等しくなり、任意のシステムを知りません。
私は、そう私はトークナイザの提案を与えてみましょう、私が働いているタスクの数に問題を扱ってきました。私はそれが答えとして直接与えられた表示されていないとして、私は多くの場合、トークナイザの私の家族としてedu.northwestern.at.utils.corpuslinguistics.tokenizer.*
を使用しています。私はPennTreebankTokenizer
クラスを使用する例数を参照してください。ここでは、それを使用する方法です。
WordTokenizer wordTokenizer = new PennTreebankTokenizer();
List<String> words = wordTokenizer.extractWords(text);
この作品へのリンクはこちらのです。ただ、免責事項、私はノースウェスタン、グループ、または彼らが行う仕事とは提携を持っていません。私は時折コードを使用するだけで、誰か思います。
ここで NLPツールの包括的なリストですに。いつかそれは彼らが軽くなり、これらを自分で作成することは理にかなって、あなたは内部の働きにより詳細に制御する必要があります:tokenizationsのために単純な正規表現を使用します。ストップワードのためだけのHashSetに以下のリストや他のいくつかのリストをプッシュします:
ここでは、多くのの一つです。