2012-09-04 25 views
-2

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

这可能吗?

+0

你期待什么样的名字。 –

+0

我的意思是如果我给一些与投资有关的文本,那么它本身就被分类为投资。 – sammyiitkgp

+0

我没有经验,但'Nltk'有一个['Cluster'](http://nltk.org/api/nltk.cluster.html)包。 – Dikei

回答

0

是的。有软件,可以命名集群

cluster_1 
cluster_2 
cluster_3 
cluster_4 

认真你有什么期望群集名称是?来自群集文章的自动摘要?文本摘要尚未放大得太好。但是,您可以尝试通过文本汇总引擎来运行完整的群集。

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

0

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

0

目前还不完全清楚你的目标是什么,或者你的数据是什么样的。 (每次传递的字数清单?其他?)

对于初学者,我建议将分析数据收集/准备工作分开。特别是,您将需要一个包含预定义的集群实现的探索性分析,直观的代码实现往往有点过于简单。考虑使用具有集成可视化和数据呈现功能的东西来帮助您更好地理解群集的含义:预定义的软件包(如R(统计软件),MATLAB或Orange(基于python的数据挖掘套件)都是不错的选择。

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