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

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

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

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

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

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


回答:

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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