30

この質問は、R または python (am, are, is -> be?) の Lemmatizerの重複の可能性がありますが、前の質問が広すぎると言って閉じられたため、再度追加します。唯一の答えはそうではありません効率的です(これは外部のWebサイトにアクセスするためです。これは、レンマを見つけるための非常に大きなコーパスがあるため、遅すぎます)。したがって、この質問の一部は、上記の質問に似ています。

ウィキペディアによると、見出し語化は次のように定義されています。

言語学における見出し語化 (または見出し語化) は、単語のさまざまな語形変化をグループ化して、1 つの項目として分析できるようにするプロセスです。

R での見出し語化に関する単純な Google 検索は、Rのパッケージのみを指します。見出し語化関数への文字ベクトル入力が になることをwordnet期待してこのパッケージを試したところ、このパッケージはさまざまなフィルターを介した関数に似た機能のみを提供することがわかりました。名前と辞書。c("run", "ran", "running")c("run", "run", "run")grepl

wordnetフィルター名がそれ自体を説明するように、「car」で始まる最大 5 単語を与えるパッケージのコード例:

filter <- getTermFilter("StartsWithFilter", "car", TRUE)
terms <- getIndexTerms("NOUN", 5, filter)
sapply(terms, getLemma)

上記は、私が探している見出し語ではありません。私が探しているのはR、単語の真の語根を見つけたいということです: (たとえば from c("run", "ran", "running")to c("run", "run", "run"))。

4

6 に答える 6

31

こんにちは、 TreetaggerkoRpusを使用できるパッケージを試すことができます:

tagged.results <- treetag(c("run", "ran", "running"), treetagger="manual", format="obj",
                      TT.tknz=FALSE , lang="en",
                      TT.options=list(path="./TreeTagger", preset="en"))
tagged.results@TT.res

##     token tag lemma lttr wclass                               desc stop stem
## 1     run  NN   run    3   noun             Noun, singular or mass   NA   NA
## 2     ran VVD   run    3   verb                   Verb, past tense   NA   NA
## 3 running VVG   run    7   verb Verb, gerund or present participle   NA   NA

lemma求めている結果の列を参照してください。

于 2015-02-04T10:11:56.443 に答える
4

たぶん、ステミングで十分ですか?典型的な自然言語処理タスクは、ステミングされたテキストで間に合います。NLP の CRAN タスク ビューからいくつかのパッケージを見つけることができます: http://cran.r-project.org/web/views/NaturalLanguageProcessing.html

本当にもっと複雑なものが必要な場合は、文をニューラル ネットワークにマッピングすることに基づく特殊なソリューションがあります。私の知る限り、これらには膨大な量のトレーニング データが必要です。Stanford NLP Groupによって作成され、利用可能なオープン ソフトウェアが多数あります。

このトピックを本当に掘り下げたい場合は、同じスタンフォード NLP グループの出版物セクションにリンクされているイベント アーカイブを掘り下げることができます。このテーマに関する本もいくつかあります。

于 2015-02-03T15:00:35.903 に答える