Python 数据挖掘
我对数据挖掘不是很了解,但我需要一些关于聚类的想法。让我先描述一下我的问题。
我有大约100个数据表,里面包含用户评论。我想找出一些描述质量的词汇。比如,有人说“质量惊人”,另一个人可能说“质量很好”。现在我需要把这些描述相似句子的文档聚在一起,并计算这些句子的出现频率。我该用什么概念来处理这个呢?
我想我需要指定一些停用词和同义词,但我对这个概念不是很熟悉。
有没有人能给我一些详细的链接或解释?还有,应该使用什么工具?我基本上是个Python程序员,所以任何Python模块都很受欢迎。
谢谢!
3 个回答
这里有两篇论文,它们是从评价性文本中提取信息的。看起来它们正好符合你想要做的事情。
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.91.9534
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.77.5392&rep=rep1&type=pdf
我会按照这个CrossValidated问题里的主要建议去做。特别是,可以看看scikit-learn这个工具。
有一个网站 http://www.nltk.org/ 专门用于语言处理。使用这个库,你可以把文本分成句子,计算词频,找到同义词等等。
Carrot^2 是一个很不错的开源项目,用于将文本片段进行聚类,不过它是用Java写的。它的聚类思路是基于词和短语(比如两个词和三个词组合)的频率。在处理每个文档(比如片段或评论)后,它会把这些文档表示成一个词/短语频率的向量。为了计算聚类,它们使用一些线性代数的方法,找到这些词空间中的主成分。然后用这些主成分来形成聚类和给它们贴标签。
在你的情况下,可以把评论当作文档来处理,进行聚类并为这些聚类生成标签。也许这些标签可以用来评估评论。
在你具体的情况下,值得考虑去掉一些不重要的词,这样可以大大减少数据的维度,这在这种任务中是非常关键的。
还有一个有用的项目 - montylingua