有人知道好的开源文本分类模型吗?我知道 Stanford Classifier、Weka、Mallet 等,但它们都需要培训。
我需要将新闻文章分类为体育/政治/健康/游戏/等。有没有预先训练好的模型?
Alchemy、OpenCalais 等不是选项。我需要开源工具(最好是 Java)。
有人知道好的开源文本分类模型吗?我知道 Stanford Classifier、Weka、Mallet 等,但它们都需要培训。
我需要将新闻文章分类为体育/政治/健康/游戏/等。有没有预先训练好的模型?
Alchemy、OpenCalais 等不是选项。我需要开源工具(最好是 Java)。
拥有一个预训练模型假设用于训练的语料库与您尝试分类的文档来自完全相同的域。通常,这不会给您想要的结果,因为您没有原始语料库。机器学习不是静态的,当你训练一个分类器时,你需要在新的特征/信息可用时更新模型。
例如,在体育/政治/健康/游戏/等领域对新闻文章进行分类。
首先是什么语言?我们只是在谈论英语吗?原始语料库是如何标记的?而最大的未知数是 etc. 类别。
训练你自己的分类器真的很容易。如果要对文本进行分类,MALLET 是最佳选择。您可以在 10 分钟内启动并运行。您可以在 1 小时内将 MALLET 添加到您自己的应用程序中。
如果您想对新闻文章进行分类,可以使用很多开源语料库作为开始培训的基础。我将从 Reuters-21578 或 RCV-1 开始。
您所说的分类是非常重要的。
分类是一项有监督的任务,它需要预先标记好的语料库。从已经标记的语料库开始,您必须使用多种方法和方法创建模型,最后您可以使用该模型对未标记的测试语料库进行分类。如果是这种情况,您可以使用多类分类器,这通常是二元分类器的二叉树应用程序。此类任务的最先进方法是使用机器学习的一个分支,SVM。两个最好的 SVM 分类器是LibSVM和SVMlight. 这些是开源的、易于使用的并且包括多类分类工具。最后,您必须进行文献调查,以了解除了获得良好结果之外还需要做什么,因为仅使用这些分类器是不够的。您必须操作/预处理您的语料库以提取信息承载部分(例如 unigrams)并排除噪声部分。一般来说,你很可能还有很长的路要走,但 NLP 是一个非常有趣的话题,值得研究。
但是,如果您所说的分类是聚类,那么问题将更加复杂。聚类是一项无监督的任务,这意味着您不会在您正在使用的程序中包含有关哪个示例属于哪个组/主题/类的信息。也有关于混合半监督方法的学术工作,但它们与聚类问题的真正目的有点不同。在处理语料库时需要使用的预处理与在分类问题中必须做的事情具有相似的性质,因此我不再赘述。要进行聚类,您必须遵循几种方法。首先,您可以使用LDA(潜在狄利克雷分配)降低语料库的维数(特征空间的维数)的方法,这将有助于提高效率和从特征中获取信息。在 LDA 旁边或之后,您可以使用Hierarchical Clustering或类似的其他方法(例如K-Means)来对未标记的语料库进行聚类。您可以使用Gensim或Scikit-Learn作为集群的开源工具。两者都是功能强大、有据可查且易于使用的工具。
在所有情况下,都要进行大量的学术阅读,并尝试理解这些任务和问题背后的理论。通过这种方式,您可以针对您具体处理的问题提出创新且有效的解决方案,因为 NLP 中的问题通常依赖于语料库,并且您在处理特定问题时通常是靠自己的。很难找到通用且即用型的解决方案,我也不建议依赖这样的选择。
我可能过度回答了您的问题,对于不相关的部分,我深表歉意。
祝你好运=)
根据您的需要,有很多分类器。首先,我认为你可能想缩小你想用分类器做什么。
训练是分类步骤的一部分,我认为你不会在那里找到太多预训练的分类器。此外,训练几乎总是分类的简单部分。
话虽如此,实际上您可以查看很多资源。我不能假装相信这一点,但这是其中一个例子:
Weka - 是用于数据挖掘的机器学习算法的集合。它是最流行的文本分类框架之一。它包含多种算法的实现,包括朴素贝叶斯和支持向量机(SVM,在 SMO 下列出)[注意:其他常用的非 Java SVM 实现是 SVM-Light、LibSVM 和 SVMTorch]。一个相关的项目是 Kea(Keyphrase Extraction Algorithm),一种从文本文档中提取关键短语的算法。
Apache Lucene Mahout - 一个孵化器项目,用于在 Hadoop map-reduce 框架之上创建通用机器学习算法的高度可扩展的分布式实现。
来源:http ://www.searchenginecaffe.com/2007/03/java-open-source-text-mining-and.html
OpenNLP 有很长的预训练模型列表