2017-03-01 8 views
0

以下は私のコーパスと私の文書をどのように傷つけているかです。しかし、例えば、「仕事」や「仕事」などは、時間が長くなります。これらは、私の分析の中で、すべての目的や目的にあわせて同じ言葉です。 "-ed"エンディングを削除するパッケージまたはコードスニペットがありますか?ありがとう!RのstemDocumentは "ed"の終わりを削除しますか?

library(tm) 
docs<-Corpus(DirSource(cname)) 

summary(docs) 

library(SnowballC) 
docs <- tm_map(docs, stemDocument) 
+0

tm & SnowballCで支援が必要な場合は、変換したいか仕事に働いたか、単に言葉でEDを削除したいです働いた? –

+0

それは良い質問です。私はそれらを同じ言葉にしたいと思う。理想的には、単語からすべての「ed」を削除したいので、問題が再びポップアップすると、ルート単語を二重にカウントしません – agunner

答えて

1

あなたが考えるより複雑な質問です。

ステミングを使用すると、その単語の意味や文脈に関係なく、エドは単語から削除されます。だから、あなたは多くの過去の緊張した言葉を根本の単語に、あるいは複数形を単数に減らすことができます。

ただし、これもコンテキストを失う可能性があります。単語の真の根である語彙素は、それ自身の意味を持ち、異なる語が同じ根から進化するため、時には形態素解析で失われます。 「彼女はゆっくりと歩く。」 ...この文でそう

あなたを想像してみては複数形のSさんを発端と削除しました

とこの文章... 「彼らはすべての人生の歩みから来た」

...あなたは単語を得るwalk

同じルート単語から進化しましたが、異なる語彙的意味を持ちますが、2番目のバージョンをステミングするとコンテキストの不一致が生じます。

この場合、2つの異なる単語の見掛けの同一性の背後にある語彙素の意味を保持するため、アルゴリズムがコーデックに対してしっかりしていれば、より適切な選択肢になります。

見出し語処理が生じることがちょうど戻っ仮定ルートにトリムのに対し、根の意味は、その語彙素であるかを決定しようとするコンテキストを使用していることに起因するとは異なります。

本当に敏感な用途では、必要な場合があります。しかし、それはしばしば、巧みに扱われなければ、大きなコーパスでは正確ではありません。

コンテキスト事項は、WordNetのの見出し語処理パッケージしよう:あなたが必要とするすべてはそれが何をしたいあなたを取得かどうかを確認するために最も単純な形式で雪玉を使用してみてください、ステミングされている場合は

Wordnet for R

を:

docsStemmed<-wordStem(docs, language = "english") 

"SnowballC"パッケージの場合は、別の単語のベクトルを返すこの方法を阻止するには、ドキュメントが文字ベクトルである必要があることに注意してください。それは過去の緊張の終わりを取り除くはずです。上に示したようにtmと一緒に使用できます。

もしあなたがその方法で望む結果を得られないなら、ステミングする前にコーパスをもっと細かく整える必要があります。

  • 小文字にしてください。
  • 句読点を削除します。
  • プレーンテキストに変換します。
  • エモジと任意の奇妙な不適合シンボルをパージします。

あなたは文書がはるかに信頼性がある語幹、右の構造得れば。あなたがここにメソッドをふるいこれらの方法で明確にするためのスタックを検索してみてください。:

tm & SnowballC docs

関連する問題