【发布时间】:2016-11-07 06:32:25
【问题描述】:
假设有一个字符串“彩色铅笔 STAEDTLER NORIS CLUB ASSORTED COLORS PKT12”。我的代码是:
> a1 <- VCorpus(VectorSource("COLORED PENCIL STAEDTLER NORIS CLUB ASSORTED COLORS PKT12"))
> a3 <- TermDocumentMatrix(a1,control = list(stemming=T))
矩阵是:
Docs
Terms 1
assort 1
club 1
color 2
nori 1
pencil 1
pkt12 1
staedtler 1
所以我们可以看到 stemDocument 适用于有色和颜色,两者都变成了颜色。但是,如果我这样做:
> a1 <- VCorpus(VectorSource("COLORED PENCIL STAEDTLER NORIS CLUB ASSORTED COLORS PKT12"))
> a2 <- a1 %>% tm_map(PlainTextDocument) %>% tm_map(stemDocument,"english")
> a2[[1]]$content
[1] "COLORED PENCIL STAEDTLER NORIS CLUB ASSORTED COLORS PKT12"
> a2 <- a2 %>% TermDocumentMatrix()
矩阵是:
Docs
Terms character(0)
assorted 1
club 1
colored 1
colors 1
noris 1
pencil 1
pkt12 1
staedtler 1
我们可以看到 stemDocument 在这里不起作用。我注意到这里有“字符(0)”,上面的矩阵中没有显示。但是不知道为什么?
我的情况是需要对stopWords、stemDocument等文本数据做一些预处理。然后我需要将此处理后的文本保存到 csv 文件中。所以这里我不能直接使用 TermDocumentMatrix 来生成矩阵。有人可以帮我吗?非常感谢。
【问题讨论】: