为什么分类器没有更改就给我输入

时间:2019-02-17 20:43:24

标签: java nlp weka prediction arff

我正在尝试构建一个分类器,以对阿拉伯语句子(在Buckwalter中进行音译)进行细分。我具有从文件读取的属性,并且我正在应用+/- 10上下文窗口(即,对于每个单词,我检查10个单词之前和之后的10个单词)。分类类别为:

B-S为句子的第一个单词, 以E-S表示句子的最后一个字, I-S代表中间的单词, 和S表示仅包含一个单词的句子。

FastVector fClasse = new FastVector();
fClasse.addElement( "I-S" );
fClasse.addElement( "B-S" );
fClasse.addElement( "E-S" );
fClasse.addElement( "S" );

if (str.length == 1) {
    element.setValue( attClasse , "S" );
} else {
    if (i == 0) {
        element.setValue( attClasse , "B-S" );
    } else {
        if (i == str.length - 1) {
            element.setValue( attClasse , "E-S" );
        } else {
            element.setValue( attClasse , "I-S" );
        }
    }
}

首先,我使用了10个属性来检查每个单词的先前类。因此,结果几乎是100%,特别是对于B-S和S类。但是,即使我使用非分段文件测试模型。模型结果也相同。从字面上看,该模型使我输入的段落没有任何变化。 当我删除那些属性(检查前面的10个类)时,评估结果大大降低了(BS为33%)。

下面是我的代码:

https://drive.google.com/open?id=1-NiA_C-2YRkG19J-mZYg4BEdNnnVWbyG

它为我提供了一个与weka GUI一起使用以生成模型的arff文件。我正在使用PART分类器。

有什么主意我做错了吗?非常感谢您的帮助。

0 个答案:

没有答案