为 Twitter 数据实现朴素贝叶斯



我有一组推文,其中有与疫苗感知相关的关键字。 这些包括诸如

[jab, shot, measles, MMR, vaccine, autism,...] .

我希望能够将一条新推文归类为支持疫苗、反疫苗或两者都不是。 我知道朴素贝叶斯是做到这一点的一种方法。

我宁愿使用 SKlearns 库来实现分类算法,因为这些藻类比我能写的更健壮。

如何实现朴素贝叶斯? 从Sklearn的网站上,似乎我的选择是多项式和高斯式的,但我不确定该使用哪个。

下面是对 5 种疾病进行分类的分类器的简单实现。

它有两个文件:

    火车
  1. 文件(火车.txt)

  2. 测试
  3. 文件(测试.txt)

基本上,根据您的问题,您应该在火车文件中发布推文。以及要在测试文件中分类的推文。

[注意:您也可以使用 CSV 或 JSON 表示来加载数据集,为了简单起见,我使用了文本文件。

火车文件内容: [ 火车.txt ]

A highly contagious virus spread by coughing, sneezing or direct contact with skin lesions.
A contagious liver disease often caused by consuming contaminated food or water. It is the most common vaccine-preventable travel disease.
A serious liver disease spread through contact with blood or body fluids. The hepatitis B virus can cause liver cancer and possible death.
A group of over 100 viruses that spreads through sexual contact. HPV strains may cause genital warts and lead to cervical cancer.
A potentially fatal bacterial infection that strikes an average of 1,500 Americans annually.

测试文件内容: [ 测试.txt ]

died due to liver cancer.

分类代码: [ classifier.py ]

import codecs
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
trainfile = 'train.txt'
testfile = 'test.txt'
word_vectorizer = CountVectorizer(analyzer='word')
trainset = word_vectorizer.fit_transform(codecs.open(trainfile,'r','utf8'))
tags = ['CHICKEN POX','HEPATITIS A','HEPATITIS B','Human papillomavirus','MENINGITIS']
mnb = MultinomialNB()
mnb.fit(trainset, tags)
codecs.open(testfile,'r','utf8')
testset = word_vectorizer.transform(codecs.open(testfile,'r','utf8'))
results = mnb.predict(testset)
print results

相关内容

  • 没有找到相关文章

最新更新