2

我正在训练使用 Weka 朴素贝叶斯对文本进行分类。我用这两个短语训练了分类器: en "Hello" it "La casaè"

这个想法是为每个 n-gram 大小 (1<= n <= 5) 创建一个分类器,然后将结果计算为每种语言的每个分类器的概率的加权和。

训练具有特定 n-gram 大小的分类器的代码如下:

public void evaluate(int sizeGrams) throws Exception {
    trainData.setClassIndex(0);
    filter = new StringToWordVector();
    filter.setAttributeIndices("last");
    MyNGramTokenizer ngram_tok = new MyNGramTokenizer();
    ngram_tok.setNGramMinSize(sizeGrams);
    ngram_tok.setNGramMaxSize(sizeGrams);
    filter.setTokenizer(ngram_tok);
    classifier = new FilteredClassifier();
    classifier.setFilter(filter);
    classifier.setClassifier(new NaiveBayes());
    Evaluation eval = new Evaluation(trainData);
    eval.crossValidateModel(classifier, trainData, 2, new Random(1));
}

如果我尝试对文本“casa”进行分类,结果是:

Classifying
casa
Classify ngrams:
Size 1
{it=0.9999999999966434,  en=3.356604905116531E-12}
Size 2
{it=0.9999999975201513,  en=2.479848603138736E-9}
Size 3
{it=0.49999999999999617,  en=0.5000000000000039}
Size 4
{it=1.8321005992748378E-6,  en=0.9999981678994008}
Size 5
{it=2.479848603138678E-9,  en=0.9999999975201515}

谁知道为什么意大利班的概率随着 n-gram 的大小而缩小,而英语班的概率却在增长?

我的观点恰恰相反。

谢谢

4

0 回答 0