【问题标题】:Weka clustering using word frequency csv fileWeka聚类使用词频csv文件
【发布时间】:2012-03-18 07:20:22
【问题描述】:

我有一个这种格式的 csv 文件:

<userName>, word1=<word1Frequency>, word2=<word2Frequency>, ...

第一个问题是,这个csv文件没有头文件,这是WEKA所要求的。标题应该是什么样的?应该只是 username, word1, word2, ...

另外,为了集群导入,是否可以将每个用户 1 个文件放在一个公共目录下?我对此很陌生。我以前用过槌,所以请随意使用槌的参考。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: java data-mining weka


    【解决方案1】:

    为了将其转换为 ARFF 格式,您需要为每个唯一单词分配一个列 ID。 然后将向量转换为 ARFF 稀疏向量,如下所示:

    {<colnr> <value>, <colnr> <value>, ...}
    

    colnr 是 integer 属性编号(您分配给单词的唯一列 ID)。我相信它们必须按升序排列。

    或者,您可以尝试ELKI。它似乎比 Weka 有 更多 更多的集群。它具有适用于多种格式的解析器 API,其中一种格式可能适合您的需求,或者可以更轻松地满足您的需求。

    TermFrequencyParser 似乎几乎是您所需要的:

    加载词频数据的解析器,本质上是稀疏向量 带有文本键。

    解析包含词频的文件。预期格式为“label term1 term2 ...”。术语不得包含分隔符!

    您可能只需将分隔符模式设置为[, =]+,它就会立即读取您的文件。

    【讨论】:

    • 太棒了!正是我想要的。我想错了。我必须将单个单词放在“@Attribute”而不是“@Data”中。非常感谢您的回复。同时,我一定会看看ELKI。它似乎确实有我正在寻找的东西。但我不明白为什么有人会因为我提出这个问题而投反对票:S
    • 我假设您因为没有进行足够的研究而投了反对票。有很多 Weka ARFF 文件示例。另外,Weka 邮件列表非常有帮助,也是提出这个问题的更合适的地方。
    【解决方案2】:

    将您的文件转换为 ARFF 格式,并带有如下所述的标题:

    http://weka.wikispaces.com/ARFF+%28stable+version%29

    关于从多个目录读取文件,我相信这个例子会有所帮助:

    http://weka.wikispaces.com/ARFF+files+from+Text+Collections

    HTH

    【讨论】:

    • 谢谢!这真的很有帮助!
    • @ihadanny 感谢您的回复。我已经浏览了官方网站上的所有教程,但我仍然无法掌握它。我使用此语法@RELATION wordfrequency @ATTRIBUTE word string @ATTRIBUTE frequency numeric @DATA {2 francear,2 rt,1 obama,1 profilechairman,1 profilevice,1 profiledarwish,1 profileholding} 将程序中的 csv 文件手动转换为 ARFF 格式,但我仍然无法获取数据中包含的用户名。也就是说,我收集了 100,000 条这种格式的数据。如何包括所有这些?还是我想错了?
    猜你喜欢
    • 2014-03-26
    • 2015-04-26
    • 1970-01-01
    • 2013-06-08
    • 2011-08-13
    • 2014-04-21
    • 2014-10-31
    • 2014-07-05
    • 2015-01-04
    相关资源
    最近更新 更多