【问题标题】:Plotting term document matrix from clipboard从剪贴板绘制术语文档矩阵
【发布时间】:2014-07-15 18:35:13
【问题描述】:

我想绘制一个术语文档矩阵,但无法生成语料库。我希望能够通过选择文本并将其复制到剪贴板来生成语料库。例如,我想要从 150 段 Lorem Ipsum 数据中绘制 TDM。

这部分只是为了从lipsum.com中提取word数据

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)
     )

【问题讨论】:

    标签: r


    【解决方案1】:

    我有点不清楚你问的是哪一部分,但就直接在剪贴板中读入语料库而言,你可以使用

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

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

    【讨论】:

    • 对于一些示例文本,例如来自 Gutenberg.org 的书,段落会分成多行,并将 corThreshold 向下推以能够查看任何类型的细节。是否有命令可以折叠/合并向量中的大块?
    • 我不确定您正在运行什么命令或您看到了什么。但这听起来与这个问题无关。你最好开始一个新的。
    猜你喜欢
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2015-05-19
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多