带有tm包的R- textminig

时间:2018-05-17 11:31:07

标签: r loops keyword tm

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

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

我需要在文中找到以“幸存者”开头的任何单词,例如包括“生存”,“幸存者”,“生存”等字样。有没有办法写出这个条件 - 用“幸存”开头的单词 - 在代码中?

2 个答案:

答案 0 :(得分:0)

您可以做的是创建一般DocumentTermMatrix,然后对其进行过滤以仅使用surviv保留以startsWith开头的行。

corp <- VCorpus(VectorSource(c("survival", "survivance", "survival",
                               "random", "yes", "survive")))
tdm <- TermDocumentMatrix(corp)
inspect(tdm[startsWith(rownames(tdm), "surv"),])

答案 1 :(得分:0)

你可以使用stemDocument来阻止这些词。那么你只需要寻找幸存者和幸存者,因为这些是你正在寻找的词干。使用和扩展@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

P.S。如果你想获得x变量中的前10行和10列,只需要x <- inspect(DocumentTermMatrix(docs, .....)