对于我的项目,我需要对一些文本(英文文本)进行聚类。我对任何聚类算法都很好,比如k-means或hierarchy。唯一的一点是我还需要软件给集群命名,让文本的集群有不同的名字。
这可能吗?
是的。有可以命名集群的软件
cluster_1
cluster_2
cluster_3
cluster_4
说真的,您希望集群名称是什么?集群文章的自动摘要?文本摘要还没有很好地扩展。但是您可能会尝试通过文本摘要引擎运行完整的集群。
请注意,k-means 会产生相当人工的集群。它不知道也不关心主题。它只是优化了数学方差,这对于文本数据可能不是很有用。
您可以做的是:使用现成的聚类算法对单词进行聚类,然后运行一些算法检查每个聚类以找到以某种方式指示该聚类的单词。这样做有很多选择,但首先想到的是在集群和每个术语之间进行良好的旧chi² 测试,然后选择具有最高测试统计值的术语。
您的目标是什么,或者您的数据是什么样的,并不完全清楚。(每个段落的字数列表?还有别的吗?)
那么,对于初学者,我建议将数据收集/准备与分析分开。特别是,您将需要一个具有预定义集群实现的包,以使探索性分析可行,而直接的代码实现通常有点过于简单。考虑使用具有集成可视化和数据表示功能的东西来帮助您更好地理解集群的含义:R(统计软件)、MATLAB 或Orange(基于 python 的数据挖掘套件)等预定义包都是不错的选择。
Orange 有很多非常好的 GUI 选项来控制如何选择集群(距离度量、迭代等),它还提供了几种不同的方法来探索哪些集群最有用。然而,至少在一年前,我的经验是它在中型 (800 MB) 数据集上实现 k-means 聚类的速度慢得可笑。其中一些是由于 python 本质上比其他语言慢,但我怀疑还有其他问题。无论您使用什么,都需要确保仔细查看输入文件文档。