【问题标题】:How to represent text for classification in weka?如何在 weka 中表示用于分类的文本?
【发布时间】:2012-01-08 22:48:00
【问题描述】:

能否请您告诉我如何在 weka 中表示属性或类以进行文本分类。通过使用什么属性可以进行分类?词频还是词? ARFF 格式的可能结构是什么?你能给我几行该结构的例子吗?

非常感谢您。

【问题讨论】:

    标签: java machine-learning classification weka arff


    【解决方案1】:

    在 weka 中,您可以选择自己的属性。在此示例中,我们只有 2 个类,并且所有唯一词都用作属性。如果您选择词频作为属性,则如果该词在文本中出现两次,则分配“2”,否则分配“0”,如果该词仅出现一次,则分配“1”。

    这是 .arff 格式的示例。

    @RELATION anyrelation
    
    @ATTRIBUTE word1
    @ATTRIBUTE word2
    ...
    @ATTRIBUTE wordn
    @ATTRIBUTE class {class1, class2}
    
    @DATA
    1,2,....,0,class1
    0,3,....,1,class2
    

    【讨论】:

      【解决方案2】:

      最简单的替代方法之一是从 ARFF 文件开始解决两类问题,例如:

      @relation 语料库 @attribute 文本字符串 @attribute 类 {pos,neg} @数据 '带有单词的长文本...',pos

      文本表示为 String 类型,类是具有两个值的名词。

      然后你可以应用两个过滤器:

      1. StringToWordVector 将文本转换为词向量表示。过滤器为每个单词使用一个属性。您可以调整参数以选择二进制/频率表示、词干或停用词。最佳表示取决于问题。如果文本不长,通常二进制表示就足够了。
      2. 重新排序 将类属性移动到最后一个位置,Weka 假定它在那里。

      您可以在这个 Weka wiki 页面中找到更多信息和其他方法来转换您的数据: http://weka.wikispaces.com/Text+categorization+with+WEKA

      【讨论】:

        猜你喜欢
        • 2011-12-18
        • 2012-05-10
        • 2012-03-31
        • 2012-03-22
        • 2012-07-27
        • 2012-03-27
        • 2014-04-30
        • 2013-12-26
        相关资源
        最近更新 更多