Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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_Nlp_Nltk_Text Classification_Textblob - Fatal编程技术网

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

Python 基于朴素贝叶斯的文本分类,python,nlp,nltk,text-classification,textblob,Python,Nlp,Nltk,Text Classification,Textblob,我正在学习NLP,并注意到当训练数据是句子列表时,基于朴素贝叶斯的TextBlob分类(TextBlob构建在NLTK之上)可以很好地工作,而当训练数据是单个单词(其中每个单词和指定的分类)时,则根本不起作用 为什么?因为训练数据中没有单个单词 通常,培训和评估/测试数据应以相同的分布进行选择。偏见或偏斜通常是有问题的。在极少数情况下,您可以训练模型做一件事,然后使用它做其他事情 在您的例子中,模型可能会将权重分散到句子中的单词上。因此,当你选择一个单词时,你只得到所代表权重的一小部分 要使其发

我正在学习NLP,并注意到当训练数据是句子列表时,基于朴素贝叶斯的TextBlob分类(TextBlob构建在NLTK之上)可以很好地工作,而当训练数据是单个单词(其中每个单词和指定的分类)时,则根本不起作用


为什么?

因为训练数据中没有单个单词

通常,培训和评估/测试数据应以相同的分布进行选择。偏见或偏斜通常是有问题的。在极少数情况下,您可以训练模型做一件事,然后使用它做其他事情

在您的例子中,模型可能会将权重分散到句子中的单词上。因此,当你选择一个单词时,你只得到所代表权重的一小部分


要使其发挥作用,您应该在培训数据中添加单字示例。

谢谢,但让我澄清一下。我用单个单词替换训练数据中的所有句子(基本上是将现有句子拆分为单词)。所以我的训练数据只是文字。一旦我这样做了(即使最终的单词列表没有改变),分类的效果就会变得更糟。所以我的问题是,像这样的分类是否只能对单个单词起作用。它可以起作用,但我不认为它会很好。我认为人类在这种情况下也做不好。为了让它正常工作,单词需要和标签紧密相关。