我需要从大型训练语料库中提取特定领域的术语,例如政治术语等。我如何使用 Weka 及其过滤器来瞄准这个对象?我可以使用 Weka 中的过滤器生成的特征向量StringToVector()
来执行此操作吗?
问问题
214 次
1 回答
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
例如,要获取有关政治的条款,您可以:
- 移除宗教属性。
- 将
StringToWordVector
过滤器应用于文本属性以获取术语。 - 使用和应用
AttributeSelection
过滤器以获得排名最高的术语。Ranker
InfoGainAttributeEval
后一步将为您提供对政治类别最具预测性的术语列表。它们中的大多数将是政治领域的术语(尽管有些术语可能是预测性的,但只是因为它们不在政治领域 - 也就是说,它们提供了负面证据)。
您获得的术语的质量取决于数据集。它处理的主题越多,对您的结果越好;因此,与其拥有两个类(如我的数据集中的政治、宗教),不如为每个类别拥有大量的类和许多示例。
于 2014-01-03T09:24:58.093 回答