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