Python 文本文件的聚类

Python 文本文件的聚类,python,text,cluster-analysis,Python,Text,Cluster Analysis,原始问题: 我有一个平面文件,每一行表示与应用程序关联的文本。我想集群应用程序的基础上的话与该应用程序有一个免费的代码可用于文本挖掘一个单一的平面文件?多谢各位 更新1: 有30000份申请。我试图找出客户的哪些行为与每个集群相关。我没有一套预先定义好的词来开头。我可以随机检查一些单词,确定一些单词,但这样就不会给我一个单词列表。我想以一种系统的方式捕捉大多数行为 我尝试使用carrot2 workbench将文本文件转换为xml文件和集群,但没有成功。我以前没有使用过Carrot 2,因此我可

原始问题: 我有一个平面文件,每一行表示与应用程序关联的文本。我想集群应用程序的基础上的话与该应用程序有一个免费的代码可用于文本挖掘一个单一的平面文件?多谢各位

更新1: 有30000份申请。我试图找出客户的哪些行为与每个集群相关。我没有一套预先定义好的词来开头。我可以随机检查一些单词,确定一些单词,但这样就不会给我一个单词列表。我想以一种系统的方式捕捉大多数行为


我尝试使用carrot2 workbench将文本文件转换为xml文件和集群,但没有成功。我以前没有使用过Carrot 2,因此我可能在那里做错了什么。

我的理解是,您的文件类似于:

game Solitaire
productivity OpenOffice
game MineSweeper
...
您希望根据标记词对所有内容进行分类,比如根据相关的标记/描述/将应用程序放入桶中

我认为您可以为此目的使用列表词典,例如:

f = open('input.txt')
out = {}
inline = f.readline()
while inline:
    if ' ' not in inline:
        continue
    tag, appname = inline.strip('\n').split(' ', 1)
    if tag not in out:
        out[tag] = []
    out[tag].append(appname)
    inline = f.readline()

print out['game']

这将对输入进行一次迭代,并根据其标记高效地对应用程序名称进行聚类。

需要有关如何对文件进行聚类的更多详细信息。如果您可以定义“群集应用程序”,特别是在通过与它们相关联的“单词”对它们进行聚类的上下文中,这将证明是有帮助的。也许这会有帮助?Carrot2适用于基于项目文本的集群,请尝试以下方法开始:。对于大于1000项的大型数据集,使用Carrot2的STC聚类算法;对于较小的集合,请使用Lingo算法。对于基于数值属性的集群,请查看ApacheMahout项目。