使用机器学习对大型文本进行分类

我有一个大型的xls文档,每行包含一个问题ID、其描述和其类别,例如:类别1-A-a1

我正在尝试构建一个机器学习模型,帮助我根据类别对该文档进行分类。目标是对于每个新条目(即新的问题描述),模型能够定义其相应的类别。

限制条件:我有超过10个类别,这些类别也是层次化的(类别1有不同的子类别,每个子类别又有不同的子子类别)。我在考虑使用层次分类或多类分类,但无法确定。

描述特征是一个长文本。我在考虑使用多项逻辑回归,但我读到它需要数值数据。我是否需要创建一个包含文档中使用的所有单词的字典来赋予其数值?这是正确的选择吗?

我还希望为每个新条目提供分数,以便对最接近的类别进行分类(对于一个新的描述X,类别2-B-b1给出80%的分数)


回答:

你可以使用的一种策略是伯努利朴素贝叶斯分类器(https://en.wikipedia.org/wiki/Naive_Bayes_classifier)。

这是一个简单的数学方程,可以将问题简化为每个类别的单词频率列表。

一旦你建立了已知属于适当类别的文本的有意义的单词频率基线,方程将能够为新文本返回每个类别的匹配概率。

这可能会产生一个非常大的单词x类别矩阵,但每个元素的处理非常简单。根据你的数据量和性能要求,可以对公式进行优化,只限于对实际出现在要分类的文本中的单词进行计算,并跳过与之前见过但不在文本中的其他单词相关的因素(如果伯努利分类器与你的解决方案相关,我可以详细说明)。请注意,可能存在Python中该分类器的现有实现(我还没有检查)。

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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