我有一堆文件(66 份关于所提供和不断增长的医疗保健服务的不满和投诉的季度报告)和一份我想随时间关注的词语列表。最简单的方法是什么?我玩过 R 的文本挖掘库,感到很沮丧。我也尝试过使用 RapidMiner,但它会卡在三个文档上(内存不足)。我将不胜感激任何建议,想法等......
确定文本趋势
有许多统计 NLP 项目,NLTK是更活跃的开源项目之一。然而,随着时间的推移和数百个文档跟踪词频可能是一个足够简单的问题来编写自己的代码。
- 您首先需要将文档转换为易于处理的格式,例如纯文本ala您的评论。转换为小写,删除标点符号,然后将每个文档拆分为单词。从 /\b/ 之类的正则表达式开始,然后过滤掉数字和明显的错误。
- 接下来,您可能想要删除停用词。这是一个不错的英语语言资源停用词列表。
- 现在计算每个文档中每个单词的出现次数。您可能想要构建一个哈希表索引,其中(不间断)单词作为键,值作为整数计数。
- 如果你想变得更复杂,你可以通过添加前面或后面的每个来提取搭配词到你的索引。或者甚至通过像这个Ruby gem这样的词干分析器来运行每个单词。
- 最后按索引计数对您的单词进行排序。
以下是纯文本文档的步骤:敏捷的棕色狐狸跳过敏捷的棕色懒狗。
- 转换为小写,去掉标点符号:快速棕色狐狸跳过快速棕色懒狗
- 用 /\b/ 拆分成单词,去掉全是空格的单词:the; 快的; 棕色的; 狐狸; 跳跃;超过; 这; 快的; 棕色的; 懒惰的; 狗
- 现在放弃停用词:快速;棕色的; 狐狸; 跳跃;超过; 快的; 棕色的; 懒惰的; 狗
- 建立你的计数指数:quick=2; 棕色=2;狐狸=1;跳跃=1;超过=1;懒惰=1;狗=1
- 添加 2-gram 搭配:quick-brown=2; 快速=2;棕色=2;棕狐=1;狐狸=1;狐狸跳跃=1;跳过=1...
- 词干,所以jumps and jumped变成 just jump。
文本挖掘过程概述
以下是用于识别文本趋势的通用方法/过程的快速摘要。有很多可用的开源工具(R、python 等)来执行这里提到的过程。

数据处理步骤的简要说明
探索语料库- 了解变量的类型、它们的功能、允许的值等。包括 html 和 xml 在内的一些格式包含提供更多元数据的标签和其他数据结构。
将文本转换为小写- 这是为了避免仅区分大小写的单词。
删除数字(如果需要) - 数字可能与我们的分析相关,也可能不相关。
删除标点符号- 标点符号可以提供支持理解的语法上下文。通常对于初始分析,我们会忽略标点符号。稍后我们将使用标点符号来支持意义的提取。
删除英语停用词- 停用词是一种语言中的常用词。像 for、very、and、of、are 等词是常见的停用词。
删除自己的停用词(如果需要) - 除了英语停用词,我们可以替代或另外删除我们自己的停用词。自己的停用词的选择可能取决于话语领域,并且在我们进行一些分析之前可能不会变得明显。
去除空白- 消除多余的空白。
词干提取——词干提取使用一种算法来删除英语单词的常见词尾,例如“es”、“ed”和“'s”。
稀疏术语- 我们通常对文档中的不常见术语不感兴趣。应该从文档术语矩阵中删除此类“稀疏”术语。
文档术语矩阵- 文档术语矩阵只是一个矩阵,其中文档作为行,术语作为列,单词的频率计数作为矩阵的单元格。
参考和 R 示例代码
在我看来,您可能正在谈论执行情绪分析(如果不是,前两个答案非常好,但请跳到下面的最后一段)。如果是这样的话,你我有一些建议给你。我建议你从阅读刘冰的入门书“情感分析与观点挖掘”的草稿开始。PDF 文档格式的草稿可在此处免费获得。有关作者即将出版的新书的更多详细信息,以及有关基于方面的情绪分析主题的全面信息,以及数据集的参考和链接,请访问此页面。
另一个有趣的资源是 Bo Pang 和 Lillian Lee 的调查书《意见挖掘和情绪分析》。这本书有印刷版和可下载的 PDF 电子书,有出版版本或作者格式版本,在内容条款。
最后,说到NLP 的软件工具,总的来说,除了 NLTK 和其他已经推荐的工具,我强烈建议你评估一下斯坦福 NLP 小组的开源软件(http://www-nlp.stanford.edu/软件)。如果您将来需要更具扩展性的解决方案,您可能想看看另一组有趣的开源库 -机器学习并行框架 GraphLab ( http://select.cs.cmu.edu/code/graphlab ) . 它特别适用于非常大的数据量,因为它实现了MapReduce模型,因此支持多核和多处理器 并行处理.