Java 基于Weka的最简分类器
我正在训练使用Weka naive Bayes对文本进行分类。 我用这两个短语训练分类器: “你好” 它是“拉卡萨”Java 基于Weka的最简分类器,java,classification,weka,bayesian,text-classification,Java,Classification,Weka,Bayesian,Text Classification,我正在训练使用Weka naive Bayes对文本进行分类。 我用这两个短语训练分类器: “你好” 它是“拉卡萨” 我们的想法是为每个n克大小创建一个分类器(1您的标记器是什么?您是否将单词用作克?否,我将字符用作克,例如大小为n克的“house”2是“ho”、“ou”、“us”和“se”。 public void evaluate(int sizeGrams) throws Exception { trainData.setClassIndex(0); filter = ne
我们的想法是为每个n克大小创建一个分类器(1您的标记器是什么?您是否将单词用作克?否,我将字符用作克,例如大小为n克的“house”2是“ho”、“ou”、“us”和“se”。
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));
}
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}