Python NaiveBayes将推文分类为多个类别。方法

Python NaiveBayes将推文分类为多个类别。方法,python,machine-learning,nltk,bayesian,textblob,Python,Machine Learning,Nltk,Bayesian,Textblob,我正在尝试实现一种朴素的贝叶斯算法,从csv文件中读取推文,并将其分类为我定义的类别,例如:技术、科学、政治 我想使用NLTK的朴素贝叶斯分类算法,但这个例子与我需要做的并不接近 我最大的困惑之一是如何提高NB的分类精度 **我希望能得到一些关于我需要采取的具体步骤的指导来进行分类 我是否必须为我需要的每个类别创建单独的csv文件 手动将推文放在那里? 如果我执行上述操作,我如何训练算法?算法如何测试** 我一直在网上研究,发现了一些简单的例子,比如TextBlob,它使用if-NLTK的NB算

我正在尝试实现一种朴素的贝叶斯算法,从csv文件中读取推文,并将其分类为我定义的类别,例如:技术、科学、政治

我想使用NLTK的朴素贝叶斯分类算法,但这个例子与我需要做的并不接近

我最大的困惑之一是如何提高NB的分类精度

**我希望能得到一些关于我需要采取的具体步骤的指导来进行分类

我是否必须为我需要的每个类别创建单独的csv文件 手动将推文放在那里? 如果我执行上述操作,我如何训练算法?算法如何测试** 我一直在网上研究,发现了一些简单的例子,比如TextBlob,它使用if-NLTK的NB算法对tweet进行情感分类。对于初学者来说,它很容易理解,但很难调整

在上面链接的例子中,当他已经将情绪放在推特旁边时,他如何实施测试?我想为了测试,我们应该隐藏第二个论点

train = [
    ('I love this sandwich.', 'pos'),
    ('This is an amazing place!', 'pos'),
    ('I feel very good about these beers.', 'pos'),
    ('This is my best work.', 'pos'),
    ("What an awesome view", 'pos'),
    ('I do not like this restaurant', 'neg'),
    ('I am tired of this stuff.', 'neg'),
    ("I can't deal with this", 'neg'),
    ('He is my sworn enemy!', 'neg'),
    ('My boss is horrible.', 'neg')
]
test = [
    ('The beer was good.', 'pos'),
    ('I do not enjoy my job', 'neg'),
    ("I ain't feeling dandy today.", 'neg'),
    ("I feel amazing!", 'pos'),
    ('Gary is a friend of mine.', 'pos'),
    ("I can't believe I'm doing this.", 'neg')
]

首先,您必须了解Bayes的工作原理:

换句话说,你必须找到PB | A,PA和PB。在你的例子中,PA | B=对立的句子。即:

PB=句子中出现单词的概率 PA=正概率 PB | A=给定积极情绪,在B中找到单词的概率是多少 你要做的是:

把句子分成几个单词 去除填料,如、和、是、是等。 为每个句子创建一个属性列表,如好的、坏的、惊人的等等。这些成为贝叶斯分类器的特征。 找出构成积极情绪的特征的概率B百分比。 接下来,给出一个测试句子:

像训练句子一样把它分成几个部分。 找出这些单词的分数B 计算这些表示积极或消极情绪的概率=PA | B。 在这些论点中有一点手工编织,在这里找到更具体的说明,您已经在问题中提到了第二个链接:

要回答您的具体问题:

在上面链接的例子中,当他已经将情绪放在推特旁边时,他如何实施测试?我想 测试时,我们应该隐藏第二个参数


为了进行测试,您需要知道正确的结果是什么。否则,您无法判断该算法的性能如何,因为它总会给您一些答案。这就是为什么您必须在测试中包含label second参数。

您首先必须了解Bayes是如何工作的:

换句话说,你必须找到PB | A,PA和PB。在你的例子中,PA | B=对立的句子。即:

PB=句子中出现单词的概率 PA=正概率 PB | A=给定积极情绪,在B中找到单词的概率是多少 你要做的是:

把句子分成几个单词 去除填料,如、和、是、是等。 为每个句子创建一个属性列表,如好的、坏的、惊人的等等。这些成为贝叶斯分类器的特征。 找出构成积极情绪的特征的概率B百分比。 接下来,给出一个测试句子:

像训练句子一样把它分成几个部分。 找出这些单词的分数B 计算这些表示积极或消极情绪的概率=PA | B。 在这些论点中有一点手工编织,在这里找到更具体的说明,您已经在问题中提到了第二个链接:

要回答您的具体问题:

在上面链接的例子中,当他已经将情绪放在推特旁边时,他如何实施测试?我想 测试时,我们应该隐藏第二个参数


为了进行测试,您需要知道正确的结果是什么。否则,您无法判断该算法的性能如何,因为它总会给您一些答案。这就是为什么你必须在测试中加入标签第二个参数。

我可以用另一个问题来回答你的最后一个问题:如果你没有正确的情绪,你将如何衡量你测试的成功?测试例程将答案从文本中分离出来,通过分类器运行文本,并将结果与答案进行比较。你可以浏览NLTK源代码来了解它。我可以用另一个问题来回答你的最后一个问题:如果你没有正确的想法,你会如何衡量你的测试的成功?测试例程将答案从文本中分离出来,通过分类器运行文本,并将结果与答案进行比较。您可以通过NLTK源代码查看它。