我需要一个weka训练文件(arff)来获得一个名称(String)和一个与该名称相关联的字符串数组,这样当我在任何文本上运行时,分类器会将名称与这些字符串相关联。对于此任务,如何在weka中创建一个String数组属性?或者有没有其他方法可以做到这一点?
(我使用朴素贝叶斯分类器)
例如: Deepika Shah,贪婪的读者,有趣,漂亮
因此,如果我在上面给出了与Deepika Shah相关的任何字符串的句子,那么它应该将该句子归类为关于Deepika Shah。
编辑: 我需要使用句子中的单词和短语将句子归类为名称。所以我给出了一组与名称相关联的字符串以及它们与之关联的名称。分类器应该从句子中找到类。或者,在我从句子中提取特征之后(假设我已经提取了特征)。
答案 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