我们已经使用Weka Explorer GUI构建了一些分类器模型。现在测试已经完成,我们希望在Java应用程序中实现这个模型,以便它可以处理新的消息。
对于新消息,我们需要对消息进行分词,将消息中的词与用于构建模型词向量的词进行匹配,然后将这个词向量解析给模型。
我们应该如何进行这个过程?有没有可用的示例?
我们如何处理新词(即在新文本消息中出现但不在用于构建模型的词向量中的词)?
在分类器预处理/分词过程中,我们使用了NGram分词器、词干提取器和IDF变换。因此,我们需要弄清楚如何执行这些步骤,然后才能基于我们想要分类的文本创建一个新实例。
顺便说一下,在浏览器中构建分类器时,在更多选项下有一个按钮可以选择“输出分类器代码”,听起来像是输出用于构建和使用模型的Java源代码,但这个选项是禁用的。我测试了多种不同的分类器(随机森林、朴素贝叶斯),但它没有变化。我猜这些分类器没有实现这个功能?
谢谢!
回答:
据我所知,当有新的训练样本到达时,你需要重新训练Weka分类器。我不知道Weka中有在线分类算法。
附注:Weka是基于Java的,所以你可以在你的应用程序中使用它的库。这里有一个很好的例子:http://weka.wikispaces.com/Use+WEKA+in+your+Java+code。