我正在做关于文本挖掘的以下教程:http://www.r-bloggers.com/text-mining-the-complete-works-of-william-shakespeare/
一切都很清楚,但有一件事我没有得到:
在某个时刻,文档列表将转换为语料库:
doc.vec <- VectorSource(shakespeare)
doc.corpus <- Corpus(doc.vec)
有人可以用简单的英语向我解释(最好举个例子)这里有什么东西在讨厌吗?
答案 0 :(得分:2)
我猜这个麻烦来自代码的VectorSource
部分:为什么我们需要这个额外的步骤来创建语料库?
语料库是包含文本和元数据的R对象。它们由函数tm::Corpus
创建。它基本上将一组文本转换为一个格式良好的对象,其他文本挖掘功能能够理解它。
但是,文档可以有多种形式。让我们考虑其中两个。
函数Corpus
无法区分这两个来源。这是各种Source
函数的用武之地。它们根据源的类型预先格式化文档,以便Corpus
能够理解它。
例如,如果您拥有的是计算机上名为shakespeare
的目录,每个游戏都有一个文本文件(midsummer.txt
,hamlet.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 希望它有所帮助!