【问题标题】:how can i use weka to terminology extraction?如何使用 weka 进行术语提取?
【发布时间】:2014-01-03 20:04:51
【问题描述】:

我需要从大型训练语料库中提取特定领域的术语,例如政治术语等。我如何使用 Weka 及其过滤器来瞄准这个对象? 我可以使用 Weka 中 StringToVector() 过滤器生成的特征向量来执行此操作吗?

【问题讨论】:

    标签: text terminology weka categorization


    【解决方案1】:

    只要您有合适的数据集,您至少可以部分实现。例如,让我们假设您有一个像这样的数据集:

    @relation test
    
    @attribute text String
    @attribute politics {yes,no}
    @attribute religion {yes,no}
    
    @data
    "this is a text about politics",yes,no
    "this text is about religion",no,yes
    "this text mixes everything",yes,yes
    

    例如,要获取有关政治的术语,您可以:

    1. 删除 religion 属性。
    2. StringToWordVector 过滤器应用于文本属性以获取术语。
    3. 应用AttributeSelection 过滤器和RankerInfoGainAttributeEval 以获得排名靠前的字词。

    后一步将为您提供对 politics 类别最具预测性的术语列表。它们中的大多数将是 politics 领域中的术语(尽管有些术语可能是预测性的,但这只是因为它们不在政治领域中 - 也就是说,它们提供了负面证据)。

    您获得的术语的质量取决于数据集。它处理的主题越多,对您的结果越好;因此,与其拥有两个类别(politicsreligion,就像我的数据集中那样),不如为每个类别拥有大量的类别和许多示例。

    【讨论】:

    • 谢谢。但我无法理解第 1 步。因为我的 arff 文件是这种格式(使用 TextDirectoryLoader):`@relation 'TestCats' @attribute @@class@@ {mis,pol} @data '这是政治文本 ...',pol '此文本不是政治文本 ....',mis '如何删除错误属性?
    • 在您的情况下,类是重叠的,您不能使用第 3 步,因为它会为您提供最能同时预测所有类的单词列表。因此,您必须获得与我建议的格式相同的格式。为此,您可以使用过滤器MakeIndicator 将名义类转换为多个属性,每个值一个。
    猜你喜欢
    • 2013-05-28
    • 2015-03-18
    • 1970-01-01
    • 2013-11-29
    • 2016-02-27
    • 2013-11-28
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多