将文档列表转换为语料库

时间:2015-08-07 10:35:55

标签: r text-mining tm

我正在做关于文本挖掘的以下教程:http://www.r-bloggers.com/text-mining-the-complete-works-of-william-shakespeare/

一切都很清楚,但有一件事我没有得到:

在某个时刻,文档列表将转换为语料库:

doc.vec <- VectorSource(shakespeare)
doc.corpus <- Corpus(doc.vec)

有人可以用简单的英语向我解释(最好举个例子)这里有什么东西在讨厌吗?

2 个答案:

答案 0 :(得分:2)

我猜这个麻烦来自代码的VectorSource部分:为什么我们需要这个额外的步骤来创建语料库?

语料库是包含文本和元数据的R对象。它们由函数tm::Corpus创建。它基本上将一组文本转换为一个格式良好的对象,其他文本挖掘功能能够理解它。

但是,文档可以有多种形式。让我们考虑其中两个。

  • 这些文档是计算机上的一堆文本文件,每个文件都包含一个文档。
  • 文档存储在R中的字符向量中,每个观察结果都是文档。

函数Corpus无法区分这两个来源。这是各种Source函数的用武之地。它们根据源的类型预先格式化文档,以便Corpus能够理解它。

例如,如果您拥有的是计算机上名为shakespeare的目录,每个游戏都有一个文本文件(midsummer.txthamlet.txt等),那么像这样创建你的语料库:

corpus <- Corpus(DirSource(directory="/path/to/shakespeare"))

这将逐个读取文件,并将它们作为文档添加到语料库中。

如果像教程中的情况一样,那些文档已经通过readLines读入R,并被编入data.frame。

shakespeare <- data.frame(title=c("midsummer","hamlet"),
                          text=c("Love looks not with the eyes...","to be or not to be..."))

然后你必须调整并使用VectorSource

corpus(VectorSource(shakespeare$text))

有关详情,请参阅?Source?Corpus。您会看到还有其他可能的来源,但我个人从不使用它们。

答案 1 :(得分:0)

语料库是tm包的主要结构。将其视为数据结构,在tm中用于您的文档列表。稍后,您的所有文本挖掘分析和见解都将来自对您的语料库进行的转换。 如果您想要阅读和理解更多细节,我建议您阅读:

https://cran.r-project.org/web/packages/tm/vignettes/tm.pdf 希望它有所帮助!