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
誰でも問題を解決するのを手伝ってもらえますか?
事前にThx