从剪贴板绘制术语文档矩阵

时间:2014-07-15 18:35:14

标签: r

我想绘制一个术语文档矩阵,但是在生成语料库时遇到了麻烦。我希望能够通过选择文本并将其复制到剪贴板来生成语料库。例如,我想要绘制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)
     )

1 个答案:

答案 0 :(得分:1)

我有点不清楚你要问哪个部分,但就剪贴板直接读到语料库而言,你可以使用

dd <- read.table("clipboard", sep="\r", stringsAsFactors=F)
feedback <- Corpus(VectorSource(dd$V1))

这将为每个段落创建一个新文档。但是我的想法是你可以使用一个字符向量作为源,这样你就可以首先折叠/合并向量中的元素,以创建更复杂的文档。