【发布时间】:2016-11-09 02:39:08
【问题描述】:
这是我的代码: 示例 1:
a <- c("ab cd de","ENERGIZER A23 12V ALKALINE BATTERi")
a1 <- VCorpus(VectorSource(a))
a2 <- TermDocumentMatrix(a1,control = list(stemming=T))
inspect(a2)
结果是:
Docs
Terms 1 2
12v 0 1
a23 0 1
alkalin 0 1
batteri 0 1
energ 0 1
看起来 a 中的第一个字符串被忽略了。
示例 2
a <- c("abcd cde de","ENERGIZER A23 12V ALKALINE BATTERi")
a1 <- VCorpus(VectorSource(a))
a2 <- TermDocumentMatrix(a1,control = list(stemming=T))
inspect(a2)
结果是:
Docs
Terms 1 2
12v 0 1
a23 0 1
abcd 1 0
alkalin 0 1
batteri 0 1
cde 1 0
energ 0 1
我们可以看到两个子字符串 (abcd, cde) 被保留,而最靠前的一个 (de) 仍然丢失。如果我不使用 control = list(stemming=T),情况也是一样的。所以,我很好奇这是否是 tm 中的一种定义?如果少于 3 个字母,字符串将被忽略?我不认为这是一个好主意。一个字符串很有可能是有用的,即使它很短,例如缩写。
如果是这样,是否有参数或其他东西可以改变这一点?非常感谢。
【问题讨论】:
-
您可能想尝试另一个 NLP 包,例如
quanteda
标签: r tm term-document-matrix