我有一个 DocumentTermMatrix,我想替换本文档中的特定术语并创建一个频率表。
起点是原始文件,如下:
library(tm)
library(qdap)
df1 <- data.frame(word =c("test", "test", "teste", "hey", "heyyy", "hi"))
tdm <- as.DocumentTermMatrix(as.character(df1$word))
当我创建原始文档的频率表时,我得到了正确的结果:
freq0 <- as.matrix(sort(colSums(as.matrix(tdm)), decreasing=TRUE))
freq0
到目前为止,一切都很好。但是,如果替换文档中的某些术语,则新的频率表会得到错误的结果:
tdm$dimnames$Terms <- mgsub(c("teste", "heyyy"), c("test", "hey"), as.character(tdm$dimnames$Terms), fixed=T, trim=T)
freq1 <- as.matrix(sort(colSums(as.matrix(tdm)), decreasing=TRUE))
freq1
显然或者文档中的某些索引可能是错误的,因为即使是相同的术语在计算术语时也不会被视为相同。
这个结果应该是理想的情况:
df2 <- data.frame(word =c("test", "test", "test", "hey", "hey", "hi"))
tdm2 <- as.DocumentTermMatrix(as.character(df2$word))
tdm2$dimnames$Terms <- mgsub(c("teste", "heyyy"), c("test", "hey"), as.character(tdm2$dimnames$Terms), fixed=T, trim=T)
freq2 <- as.matrix(sort(colSums(as.matrix(tdm2)), decreasing=TRUE))
freq2
谁能帮我找出问题所在?
提前谢谢