在Java中构建和运行流式Weka文本分类器

我们已经使用Weka Explorer GUI构建了一些分类器模型。现在测试已经完成,我们希望在Java应用程序中实现这个模型,以便它可以处理新的消息。

对于新消息,我们需要对消息进行分词,将消息中的词与用于构建模型词向量的词进行匹配,然后将这个词向量解析给模型。

我们应该如何进行这个过程?有没有可用的示例?

我们如何处理新词(即在新文本消息中出现但不在用于构建模型的词向量中的词)?

在分类器预处理/分词过程中,我们使用了NGram分词器、词干提取器和IDF变换。因此,我们需要弄清楚如何执行这些步骤,然后才能基于我们想要分类的文本创建一个新实例。

顺便说一下,在浏览器中构建分类器时,在更多选项下有一个按钮可以选择“输出分类器代码”,听起来像是输出用于构建和使用模型的Java源代码,但这个选项是禁用的。我测试了多种不同的分类器(随机森林、朴素贝叶斯),但它没有变化。我猜这些分类器没有实现这个功能?

谢谢!


回答:

据我所知,当有新的训练样本到达时,你需要重新训练Weka分类器。我不知道Weka中有在线分类算法。

附注:Weka是基于Java的,所以你可以在你的应用程序中使用它的库。这里有一个很好的例子:http://weka.wikispaces.com/Use+WEKA+in+your+Java+code

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注