我想绘制一个术语文档矩阵,但是在生成语料库时遇到了麻烦。我希望能够通过选择文本并将其复制到剪贴板来生成语料库。例如,我想要绘制150段Lorem Ipsum数据的绘制TDM。
此部分仅用于从lipsum.com中提取单词数据
library("tm")
#generate a corpus from clipboard
clipboard2 <- read.table("clipboard",sep="\r")
下一部分(如果有效)将剪贴板2拆分成一堆文档,从中获取相关性。 我认为这里有一个更简单的解决方案,而不是创建文档,然后重新读回来进行语料库的处理。缘故。
#how many docs to print out for correlations sake
for (i in 1:10) {
start <- floor(1 + (i-1) * nrow(clipboard2) / 10)
end <- i * nrow(clipboard2) / 10
write.table(clipboard2[start:end, 1],
paste0("C:/Users/me/Documents/", i ,".txt", collapse=""), sep="\t")
}
将文档语料库拉入变量。如果我手动将lipsum.com数据拆分成某个目录中的一些文档,那么从这一点开始的一切都可以正常工作。
#Corpus collection
feedback <- Corpus(DirSource("C:/Users/me/Documents/"))
删除单词和空格,尽管这里可能存在一些冗余。然后创建TDM。
#Cleanup
feedback <- tm_map(feedback, stripWhitespace)
feedback <- tm_map(feedback, tolower)
feedback <- tm_map(feedback, removeWords, stopwords("english"))
#TDM creation (redundant?)
tdm <- TermDocumentMatrix(feedback, control = list(removePunctuation = TRUE,
removeNumbers = TRUE,
stopwords = TRUE))
最后,绘制TDM。这里没有问题。
#plotting TDM
plot(tdm,
terms = findFreqTerms(tdm, lowfreq = 70),
corThreshold = 0.6)
)
答案 0 :(得分:1)
我有点不清楚你要问哪个部分,但就剪贴板直接读到语料库而言,你可以使用
dd <- read.table("clipboard", sep="\r", stringsAsFactors=F)
feedback <- Corpus(VectorSource(dd$V1))
这将为每个段落创建一个新文档。但是我的想法是你可以使用一个字符向量作为源,这样你就可以首先折叠/合并向量中的元素,以创建更复杂的文档。