我正在尝试实施Naive Bayes算法来读取csv文件中的推文,并将它们分类为我定义的类别(例如:技术,科学,政治)
我想使用NLTK的朴素贝叶斯分类算法,但这个例子并不接近我需要做的事情。
我最大的困惑之一是如何提高NB的分类准确度?
* *我希望获得一些有关我需要采取的详细步骤的指导。
我一直在网上研究并找到一些简短的例子,如TextBlob,如果使用NLTK的NB算法来做推文的情感分类。它很容易理解,但很难为初学者调整。
http://stevenloria.com/how-to-build-a-text-classification-system-with-python-and-textblob/
在他上面的链接示例中,当他已将情绪放在推文旁边时,他如何实施测试?我想测试一下,我们应该隐藏第二个参数。
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')
]
答案 0 :(得分:4)
你必须首先了解贝叶斯的工作原理:
换句话说,你必须找到P(B | A),P(A)和P(B)。在你的情况下,P(A | B)= P(正|句子)。那就是:
你需要做的是:
接下来,给出一个测试句:
在这些参数中有一些手工编织,在这里找到更具体的说明,你已经提到了你问题中的第二个链接:
回答您的具体问题:
在他上面的链接示例中,当他已将情绪放在推文旁边时,他如何实施测试?我想过 测试时,我们应该隐藏第二个参数。
为了测试你需要知道正确的结果是什么。否则你无法分辨算法的执行情况,因为它总会给你“一些”答案。这就是为什么你必须在测试中包含标签(第二个参数)。