Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用机器学习对大型文本进行分类_Python_Text_Machine Learning_Classification_Text Classification - Fatal编程技术网

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

Python 使用机器学习对大型文本进行分类,python,text,machine-learning,classification,text-classification,Python,Text,Machine Learning,Classification,Text Classification,我有一个很大的xls文档,其中每一行都包含一个问题id、它的描述和它的expl类别:category 1-a-a1 我试图建立一个机器学习模型,帮助我根据类别对文档进行分类。目标是为每个新条目(又名新问题描述)定义模型,我们将能够定义其各自的类别 限制条件: 我有10多个类别,它们也是分层的(类别1有不同的子类别,每个子类别有不同的子类别)。我在考虑分层分类或多类分类,但不知道 描述功能是一个长文本。我在考虑多项式逻辑回归,但我读到它需要数字数据。我是否必须将文档中使用的所有单词编成字典,以给出

我有一个很大的xls文档,其中每一行都包含一个问题id、它的描述和它的expl类别:category 1-a-a1

我试图建立一个机器学习模型,帮助我根据类别对文档进行分类。目标是为每个新条目(又名新问题描述)定义模型,我们将能够定义其各自的类别

限制条件: 我有10多个类别,它们也是分层的(类别1有不同的子类别,每个子类别有不同的子类别)。我在考虑分层分类或多类分类,但不知道

描述功能是一个长文本。我在考虑多项式逻辑回归,但我读到它需要数字数据。我是否必须将文档中使用的所有单词编成字典,以给出一个数值?这是正确的选择吗


我还想对每个新条目进行评分,以便对最近的类别进行分类(对于新的描述X,类别2-B-b1给出80%的分数)

一个好方法是将.xls文件转换为熊猫数据框,并使用fasttext创建文本分类模型,任何新案文都将分为各自的类别。
请参阅适当的文档。

您可以使用的策略之一是贝努利朴素贝叶斯()

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

一旦为已知属于适当类别的文本建立了有意义的词频基线,该公式将能够返回新文本在每个类别中的匹配概率


这可以给出一个非常大的单词矩阵x类别,但每个元素的处理非常简单。根据您的数量和性能要求,可以对公式进行优化,以将计算限制在文本中实际出现的单词上,从而对链接到以前见过但文本中不存在的其他单词的因素进行分类和跳过(如果伯努利分类器与您的解决方案相关,我可以对此进行详细说明).

谢谢你的回复,你能给我进一步的解释吗?发现了这个。它可能有用。我会尝试一下并给出反馈。我需要知道文本的监督分类速度有多快?使用了哪些算法或概率?这应该为你提供你想要的详细信息(请参阅tensorflows文档中有关跳过grams与CBOW的内容,以了解更多信息)事实上,我将从朴素贝叶斯算法开始。但无法区分伯努利NB和多项式NB之间的区别。当我们有许多类,并且不同的类可以有共同的特征时,它们都适用吗?这非常令人困惑。我建议从伯努利算法开始。多重标称有一些额外的限制:代价高的fa由于日志的原因,更难对大量类别/单词进行优化,并且需要补偿来管理零频率。除非给定文本中给定单词的出现次数对您的资格要求有很大影响,否则它不会给您的Bernoulli带来太多好处。