【问题标题】:Stopwords eliminating and vector making停用词消除和向量制作
【发布时间】:2016-11-14 07:54:10
【问题描述】:
在 text2vec 中,我能找到的关于停用词的唯一功能是“create_vocabulary”。但在文本挖掘任务中,我们通常需要去除资源文档中的停用词,然后构建语料库或其他进一步的过程。我们如何使用“停用词”来处理使用 text2vec 构建语料库、dtm 和 tcm 的文档?
我以前用 tm 进行文本挖掘。它具有分析 PDF 文档的功能,但是它将一篇论文读取为多个向量(一行,一个向量),而不是像我期望的那样将每个文档读取为向量。此外,tm中的格式交换功能在中文中存在乱码问题。如果用text2vec读取文档,是否可以将一篇论文读入向量?(又名。向量的体积是否足以容纳一篇发表在期刊上的论文?)否则,text2vec内置的语料库和向量与tm内置的兼容吗?
【问题讨论】:
标签:
r
text-mining
stop-words
【解决方案1】:
有两种方法可以创建文档术语矩阵:
- 使用特征散列
- 使用词汇
详情请见text-vectorization vignette。
您对 2 种选择很感兴趣。这意味着您应该建立词汇表——将在所有下游任务中使用的一组单词/ngram。 create_vocabulary 创建词汇对象,并且只有来自该对象的术语才会在后续步骤中使用。因此,如果您将stopwords 提供给create_vocabulary,它将从语料库中所有观察到的单词集中删除它们。如您所见,您应该只提供一次停用词。所有下游任务都将使用词汇表。
回答第二个问题。
text2vec 不提供阅读 PDF 文档的高级功能。但是,它允许用户提供自定义阅读器功能。您所需要的只是阅读具有某些功能的完整文章并将它们重塑为字符向量,其中每个元素对应于所需的信息单元(完整文章、段落等)。例如,您可以使用 paste() 函数轻松地将线条组合成单个元素。例如:
article = c("sentence 1.", "sentence 2")
full_article = paste(article, collapse = ' ')
# "sentence 1. sentence 2"
希望这会有所帮助。