首页 > 解决方案 > R-textminig 与 tm 包

问题描述

我想使用 tm packakes,所以我创建了下一个代码:

x<-inspect(DocumentTermMatrix(docs,
                          list(dictionary = c("survive", "survival"))))

我需要在文本中找到任何以“surviv”开头的单词,例如包括“survival”“survivor”“survive”等单词。有没有办法在代码中写出那个条件——以“surviv”开头的词?

标签: rloopskeywordtm

解决方案


您可以使用 stemDocument 来阻止单词。然后,您只需要查找 surviv 和survivor,因为这些是您要查找的词干。使用和扩展来自@AshOfFire 的单词列表

my_corpus <- VCorpus(VectorSource(c("survival", "survivance", "survival",
                               "random", "yes", "survive", "survivors", "surviving")))
my_corpus <- tm_map(my_corpus, stemDocument)
my_dtm <- DocumentTermMatrix(my_corpus, control = list(dictionary = c("surviv", "survivor")))
inspect(my_dtm)

<<DocumentTermMatrix (documents: 8, terms: 2)>>
Non-/sparse entries: 6/10
Sparsity           : 62%
Maximal term length: 8
Weighting          : term frequency (tf)
Sample             :
    Terms
Docs surviv survivor
   1      1        0
   2      1        0
   3      1        0
   4      0        0
   5      0        0
   6      1        0
   7      0        1
   8      1        0

ps 仅x <- inspect(DocumentTermMatrix(docs, .....)当您想获取 x 变量中的前 10 行和 10 列时才这样做。


推荐阅读