【发布时间】:2014-01-03 20:04:51
【问题描述】:
我需要从大型训练语料库中提取特定领域的术语,例如政治术语等。我如何使用 Weka 及其过滤器来瞄准这个对象?
我可以使用 Weka 中 StringToVector() 过滤器生成的特征向量来执行此操作吗?
【问题讨论】:
标签: text terminology weka categorization
我需要从大型训练语料库中提取特定领域的术语,例如政治术语等。我如何使用 Weka 及其过滤器来瞄准这个对象?
我可以使用 Weka 中 StringToVector() 过滤器生成的特征向量来执行此操作吗?
【问题讨论】:
标签: text terminology weka categorization
只要您有合适的数据集,您至少可以部分实现。例如,让我们假设您有一个像这样的数据集:
@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
例如,要获取有关政治的术语,您可以:
StringToWordVector 过滤器应用于文本属性以获取术语。AttributeSelection 过滤器和Ranker 和InfoGainAttributeEval 以获得排名靠前的字词。后一步将为您提供对 politics 类别最具预测性的术语列表。它们中的大多数将是 politics 领域中的术语(尽管有些术语可能是预测性的,但这只是因为它们不在政治领域中 - 也就是说,它们提供了负面证据)。
您获得的术语的质量取决于数据集。它处理的主题越多,对您的结果越好;因此,与其拥有两个类别(politics、religion,就像我的数据集中那样),不如为每个类别拥有大量的类别和许多示例。
【讨论】:
MakeIndicator 将名义类转换为多个属性,每个值一个。