weka中的字符串数组属性

时间:2016-09-08 08:52:53

标签: java string classification weka arff

我需要一个weka训练文件(arff)来获得一个名称(String)和一个与该名称相关联的字符串数组,这样当我在任何文本上运行时,分类器会将名称与这些字符串相关联。对于此任务,如何在weka中创建一个String数组属性?或者有没有其他方法可以做到这一点?

(我使用朴素贝叶斯分类器)

例如: Deepika Shah,贪婪的读者,有趣,漂亮

因此,如果我在上面给出了与Deepika Shah相关的任何字符串的句子,那么它应该将该句子归类为关于Deepika Shah。

编辑: 我需要使用句子中的单词和短语将句子归类为名称。所以我给出了一组与名称相关联的字符串以及它们与之关联的名称。分类器应该从句子中找到类。或者,在我从句子中提取特征之后(假设我已经提取了特征)。

1 个答案:

答案 0 :(得分:2)

您的arff文件必须采用以下格式:

@Relation testRelation

@attribute firstAtr string
@attribute secondAtr string
@attribute thirdAtr string
@attribute yourClass {Deepika Shah, secondClass, ...other classes listed here}

@data
"Voracious reader","funny"," pretty",Deepika Shah

...more data here

然后你可以在weka中导入你的arff文件。

现在您需要将字符串值转换为数字。为此,您必须使用预处理选项卡中“过滤器”部分中的weka->unsupervised->attribute->StringToWordVector过滤器。 您可以单击过滤器来调整参数,如术语表示(tf,tf-idf),停用词,词干分析器算法,n-gram等。 然后单击“应用”。

完成此过程后,您就可以继续进行分类选项卡并继续进行分类。您可以选择分类器,然后就可以了。

注意:您需要选择名义班级(Nom)yourClass(位于测试选项下)以启动按钮可点击。

注意2:如果您的刺痛属性是固定值,如有趣,悲伤,中立等,您可以使用名义属性而不是字符串

p.s这里有一个很好的例子,可以在这里找到:https://www.youtube.com/watch?v=jSZ9jQy1sfE