文本分类分类器

     2023-03-12     247

关键词:

【中文标题】文本分类分类器【英文标题】:text categorization classifiers 【发布时间】:2013-02-22 20:43:11 【问题描述】:

有人知道好的开源文本分类模型吗?我知道 Stanford Classifier、Weka、Mallet 等,但它们都需要培训。

我需要将新闻文章分类为体育/政治/健康/游戏/等。有没有预训练好的模型?

Alchemy、OpenCalais 等不是选项。我需要开源工具(最好是 Java)。

【问题讨论】:

【参考方案1】:

拥有预训练模型假设用于训练的语料库与您尝试分类的文档来自完全相同的域。通常,这不会给您想要的结果,因为您没有原始语料库。机器学习不是静态的,当你训练一个分类器时,你需要在新的特征/信息可用时更新模型。

例如在体育/政治/健康/游戏/等领域对新闻文章进行分类。

首先是什么语言?我们只是在谈论英语吗?原始语料库是如何标记的?而最大的未知数是 etc. 类别。

训练你自己的分类器真的很容易。如果要对文本进行分类,MALLET 是最佳选择。您可以在 10 分钟内启动并运行。您可以在 1 小时内将 MALLET 添加到您自己的应用程序中。

如果您想对新闻文章进行分类,可以使用很多开源语料库作为开始培训的基础。我将从 Reuters-21578 或 RCV-1 开始。

【讨论】:

非常感谢 Shane 的回答。我一定会调查你提到的数据集!但是,是的,我只研究英语数据和新闻文章的一般领域(类似于 Alchemy 和 OpenCalais 分类的那些)。我会给 MALLET 一个机会。 如果您有任何问题,请告诉我!【参考方案2】:

根据您的需要,有很多分类器。首先,我认为您可能想缩小您想对分类器做什么。

而训练是分类步骤的一部分,我认为您不会找到太多预先训练好的分类器。此外,训练几乎总是分类的简单部分。

话虽如此,实际上您可以查看很多资源。我不能假装承认这一点,但这是其中一个例子:

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

【讨论】:

谢谢你的回答。【参考方案3】:

你所说的分类是非常重要的。

分类是一项监督任务,它需要预先标记好的语料库。从已经标记的语料库开始,您必须使用多种方法和方法创建模型,最后您可以使用该模型对未标记的测试语料库进行分类。如果是这种情况,您可以使用多类分类器,这通常是二元分类器的二叉树应用程序。此类任务的最先进方法是使用机器学习的一个分支,SVM。两个最好的 SVM 分类器是 LibSVMSVMlight。这些是开源的、易于使用的并且包括多类分类工具。最后,您必须进行文献调查,以了解除了获得良好结果之外还需要做什么,因为仅使用这些分类器是不够的。您必须操作/预处理您的语料库,以提取包含信息的部分(例如 unigrams)并排除噪声部分。一般来说,你很可能还有很长的路要走,但 NLP 是一个非常有趣的话题,值得研究。

但是,如果您所说的分类是聚类,那么问题会更加复杂。聚类是一项无监督任务,这意味着您不会在您正在使用的程序中包含有关哪个示例属于哪个组/主题/类的信息。也有关于混合半监督方法的学术工作,但它们与聚类问题的真正目的有点不同。在处理语料库时需要使用的预处理与在分类问题中必须做的事情具有相似的性质,因此我不再赘述。要进行聚类,您必须遵循几种方法。首先,您可以使用 LDA (Latent Dirichlet Allocation) 方法来降低语料库的维数(特征空间的维数),这将有助于提高效率和从特征中获取信息。在 LDA 旁边或之后,您可以使用 Hierarchical Clustering 或类似的其他方法,例如 K-Means 来对未标记的语料库进行聚类。您可以使用 GensimScikit-Learn 作为集群的开源工具。两者都是功能强大、文档齐全且易于使用的工具。

在所有情况下,都要进行大量的学术阅读,并尝试理解这些任务和问题背后的理论。通过这种方式,您可以针对您具体处理的问题提出创新且有效的解决方案,因为 NLP 中的问题通常依赖于语料库,并且您在处理特定问题时通常是靠自己的。很难找到通用且即用型的解决方案,我也不建议依赖这样的选择。

我可能过度回答了你的问题,对于不相关的部分,我深表歉意。

祝你好运=)

【讨论】:

很好的答案!非常感谢。我很清楚分类。我正在寻找一种有监督的方法,但使用的是预训练模型 模型是你分类工作的主要成果;所有其他事情都是为了创建一个适合您需求的好模型。从这个意义上说,试图找到一个现成的模型是无关紧要的,而且很可能是不可能的。这主要是因为您要完成的任务、您正在处理的语料库、您需要的效率以及所有其他方面对于您和您的案例都是独一无二的;因此,找到满足您目标的模型纯属运气问题。我的建议是尽快弄脏你的手,祝你好运=)【参考方案4】:

OpenNLP 有很多预训练模型

http://opennlp.sourceforge.net/models-1.5/

【讨论】:

非常感谢,但他们都不做文本分类 不确定这是否适合您的需求cwiki.apache.org/MAHOUT/bayesian.html 还引用了一个随其来源一起提供的示例。 cwiki.apache.org/MAHOUT/wikipedia-bayes-example.html

文本分类任务的最佳 scikit 分类器

】文本分类任务的最佳scikit分类器【英文标题】:Bestscikitclassifierfortextclassificationtask【发布时间】:2013-06-2910:11:56【问题描述】:我正在使用scikit对短语进行文本分类以使其具有含义。一些例子是:"Yes"-label.yes"Yeah"-label.yes..."Idon... 查看详情

如何使用分类器算法对单个文本进行分类

】如何使用分类器算法对单个文本进行分类【英文标题】:Howtoclassifysingletextusingclassifieralgorithms【发布时间】:2017-07-1018:03:37【问题描述】:我有一组集群的文档。现在每个文档都有一个标签。我想基于此构建一个分类器,对其... 查看详情

如何评估我自己的文本分类器

】如何评估我自己的文本分类器【英文标题】:Howtoevaluatemyowntextclassifier【发布时间】:2016-09-0616:59:02【问题描述】:我根据一些语言学理论编写了自己的文本分类器。分类器的最终结果是文章标题和二进制类别的元组对。我还... 查看详情

朴素贝叶斯文本分类器 - 确定何时应将文档标记为“未分类”

】朴素贝叶斯文本分类器-确定何时应将文档标记为“未分类”【英文标题】:NaiveBayesTextClassifier-determiningwhenadocumentshouldbelabelled\'unclassified\'【发布时间】:2013-05-0500:05:42【问题描述】:我设计并实现了一个朴素贝叶斯文本分类... 查看详情

使用 scikit-learn 进行多标签文本分类,使用哪些分类器?

】使用scikit-learn进行多标签文本分类,使用哪些分类器?【英文标题】:Multi-labeltextclassificationwithscikit-learn,whichclassifierstouse?【发布时间】:2018-07-2719:58:10【问题描述】:我已经使用导入这些分类器的scikit-learnPython库完成了文本... 查看详情

基于朴素贝叶斯分类器的文本分类

实验要求题目要求1、用MapReduce算法实现贝叶斯分类器的训练过程,并输出训练模型;2、用输出的模型对测试集文档进行分类测试。测试过程可基于单机Java程序,也可以是MapReduce程序。输出每个测试文档的分类结果;3、利用测... 查看详情

如何使用火花朴素贝叶斯分类器进行 IDF 文本分类?

】如何使用火花朴素贝叶斯分类器进行IDF文本分类?【英文标题】:HowtousesparkNaiveBayesclassifierfortextclassificationwithIDF?【发布时间】:2015-11-2018:05:58【问题描述】:我想使用tf-idf将文本文档转换为特征向量,然后训练一个朴素贝叶... 查看详情

使用gensim和sklearn搭建一个文本分类器:文档向量化

总的来讲,一个完整的文本分类器主要由两个阶段,或者说两个部分组成:一是将文本向量化,将一个字符串转化成向量形式;二是传统的分类器,包括线性分类器,SVM,神经网络分类器等等。之前看的THUCTC的技术栈是使用tf-idf... 查看详情

naivebayesian文本分类器

...贝叶斯分类在实际应用中有非常出色的表现。朴素贝叶斯文本分类算法伪代码:watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsiz 查看详情

如何正确转换和“拟合”文本分类器的值?

】如何正确转换和“拟合”文本分类器的值?【英文标题】:HowdoItfidftransformand"fit"thevaluesformytextclassifiercorrectly?【发布时间】:2016-09-0822:01:16【问题描述】:我正在编写一个朴素贝叶斯分类器,因为我有大量文本文档需... 查看详情

创建 ML 文本分类器概率

】创建ML文本分类器概率【英文标题】:CreateMLTextClassifierprobabilities【发布时间】:2019-02-1221:41:15【问题描述】:我正在使用CreateML创建模型。我正在使用JSON文件。letdata=tryMLDataTable(contentsOf:URL(fileURLWithPath:"poems.json"))let(trainingData,t... 查看详情

使用 createML 创建文本分类器模型时使用啥机器学习算法?

】使用createML创建文本分类器模型时使用啥机器学习算法?【英文标题】:whatmachinelearningalgorithmisusedwhilecreatingatextclassifiermodelusingcreateML?使用createML创建文本分类器模型时使用什么机器学习算法?【发布时间】:2021-06-0310:09:03【... 查看详情

如何改进我的文本主题分类器?

】如何改进我的文本主题分类器?【英文标题】:Howcanimprovemytexttopicclassifier?【发布时间】:2019-07-0616:58:45【问题描述】:我正在开发一个可以标记句子或小问题的文本主题分类器。到目前为止,它可以标记大约30个已知主题。... 查看详情

构建一个 sklearn 文本分类器并使用 coremltools 进行转换

】构建一个sklearn文本分类器并使用coremltools进行转换【英文标题】:buildingasklearntextclassifierandconvertingitwithcoremltools【发布时间】:2017-11-1004:32:40【问题描述】:我想用sklearn构建一个文本分类器,然后使用coremltools包将其转换为iOS... 查看详情

基于协同训练的半监督文本分类算法

半监督学习文本分类系列用半监督算法做文本分类(sklearn)sklearn半监督学习(sklearn)基于自训练的半监督文本分类算法一.摘要本文主要讲述基于协同训练的半监督算法做文本分类,用三个差异性比较大的分类器对未标注数据进行标... 查看详情

文本分类(机器学习方法)

文本分类实现步骤:定义阶段:定义数据以及分类体系,具体分为哪些类别,需要哪些数据数据预处理:对文档做分词、去停用词等准备工作数据提取特征:对文档矩阵进行降维、提取训练集中最有用的特征模型训练阶段:选择... 查看详情

甘道夫通过mahout构建贝叶斯文本分类器案例具体解释

...有10个类别。  用这些原始材料构造一个体育类的文本分类器,并測试对照bayes和cbayes的效果;  记录分类器的构造过程和測试结果。2、user-sport.tar是用户浏览的文章,每一个目录相应一个用户。  利用上题... 查看详情

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

】在Java中构建/运行流式Weka文本分类器【英文标题】:Building/RunningaStreamingWekaTextClassiferinJava【发布时间】:2011-11-0500:02:25【问题描述】:我们一直在使用WekaExplorerGUI来构建一些分类器模型。现在测试已经完成,我们想在Java应用... 查看详情