【问题标题】:clustering of a text file文本文件的聚类
【发布时间】:2011-12-30 00:47:20
【问题描述】:

原问题: 我有一个平面文件,每一行代表与应用程序关联的文本。我想根据与该应用程序相关联的词对应用程序进行集群 是否有可用于文本挖掘单个平面文件的免费代码?谢谢。

更新 1: 有30,000个应用程序。我试图弄清楚我们(客户)的哪些行为与每个集群相关联。我没有预先定义的一组单词作为开头。我可以随机检查几个单词并确定一些单词,但这不会给我一个详尽的单词列表。我想以系统的方式捕捉大部分行为。

我尝试将文本文件转换为 xml 文件并使用 carrot2 工作台进行集群,但这不起作用。我以前没有用过carrot2,所以我可能在那里做错了。

【问题讨论】:

  • 需要更多关于您希望文件如何集群的详细信息。
  • 如果您可以定义“集群应用程序”,尤其是在通过关联的“词”对它们进行集群的上下文中,那将证明是有帮助的。
  • Carrot2 非常适合根据您的项目文本进行聚类,请尝试以下方法开始:doc.carrot2.org/#section.getting-started.xml-files。对于大数据集(>1000项),使用Carrot2的STC聚类算法;对于较小的集合,坚持使用 Lingo 算法。对于基于数值属性的聚类,请查看 Apache Mahout 项目。

标签: python text cluster-analysis


【解决方案1】:

我的理解是您的文件如下:

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']

这对输入进行一次迭代,并非常有效地根据其标签对应用程序名称进行聚类。

【讨论】:

    猜你喜欢
    • 2015-02-13
    • 2015-04-27
    • 1970-01-01
    • 2018-01-16
    • 2011-08-16
    • 2016-08-14
    • 2014-03-26
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多