weka中的字符串数组属性

String array attribute in weka

我需要一个 weka 训练文件 (arff) 来包含一个名称 (String) 和一个与该名称关联的字符串数组,以便 classifier 在我 运行 它在任何文本上。对于这个任务,我如何在 weka 中创建一个字符串数组的属性?还是有其他方法可以做到这一点?

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

例如: Deepika Shah,贪婪 reader,有趣,漂亮

因此,如果我有一个句子包含上面给出的关于 Deepika Shah 的任何字符串,它应该class证明该句子是关于 Deepika Shah 的。

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

您的 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 等。 然后点击应用。

此过程完成后,您就可以进入 classify 选项卡并继续 classification.You can select 您的 classifier 并且您很好去。

注意:您需要 select 标称 class (Nom)yourClass(位于测试选项下)才能使开始按钮可点击。

注意 2:如果您的 sting 属性是固定值,如 funny、sad、neutral 等,您可以使用名义属性而不是字符串


p.s 可以在此处找到包含上述所有内容的一个很好的示例:https://www.youtube.com/watch?v=jSZ9jQy1sfE