Python文本聚类软件或包

时间:2012-09-04 07:32:03

标签: python cluster-analysis nltk

对于我的项目,我需要聚集一些文本(英文文本)。我可以使用任何聚类算法,例如k-meanshierarchical。唯一的问题是我还需要通过软件命名集群,以便文本的集群具有不同的名称。

这可能吗?

3 个答案:

答案 0 :(得分:0)

是。有软件可以命名集群

cluster_1
cluster_2
cluster_3
cluster_4

严重期望什么群集名称?来自群集文章的自动摘要?文本摘要还没有很好地扩展。但您可能尝试通过文本摘要引擎运行整个集群。

请注意,k-means将产生相当人工的簇。它不了解或关心主题。它只是优化了数学方差,这对文本数据可能不是很有用。

答案 1 :(得分:0)

您可以做的是:使用现成的聚类算法对单词进行聚类,然后运行一些算法来检查每个聚类,以找到以某种方式指示该聚类的单词。有很多选项可以做到这一点,但首先想到的是在群集和每个术语之间做一个好的旧chi² test,然后选择具有最高测试统计值的术语。

答案 2 :(得分:0)

目前还不完全清楚您的目标是什么,或者您的数据是什么样的。 (每个段落的字数列表?还有其他什么?)

首先,我建议将数据收集/准备与分析分开。特别是,您需要一个具有预定义群集实现的包,这使得探索性分析变得可行,并且直接的代码实现通常有点过于简单。考虑使用具有集成可视化和数据表示功能的东西来帮助您更好地理解集群的含义:预定义的包,如R(统计软件),MATLAB或Orange(基于python的数据挖掘套件)都是不错的选择。

Orange有许多非常好的GUI选项来控制如何选择集群(距离度量,迭代等),它还提供了一些不同的方法来探索哪些集群最有用。但是,至少从一年前开始,我的经验是,在中型(800 MB)数据集上实现k-means聚类是可笑的慢。其中一些原因是python本身比其他语言慢,但我怀疑还有其他问题。无论您使用什么,您都需要确保仔细查看输入文件文档。