朴素贝叶斯情感分析的PoS实现

时间:2018-07-06 01:16:03

标签: python nlp nltk sentiment-analysis naivebayes

我正在尝试在相对较大的数据集(10000行)上应用情感分析(预测负面和正面鸣叫)。到目前为止,我使用朴素贝叶斯(Naive Bayes)只能获得约73%的精度,下面显示的我的“最终”方法提取特征。我想添加PoS来帮助分类,但是完全不确定如何实现它。我尝试编写一个名为“ pos”的简单函数(在下面发布),并尝试将清除后的数据集上的标记用作特征,但这种方法的准确率只有52%左右。任何人都可以引导我正确地实现PoS为我的模特?谢谢。

def pos(word):
 return [t for w, t in nltk.pos_tag(word)]


def final(text):

   """
   I have code here to remove URLs,hashtags, 
   stopwords,usernames,numerals, and punctuation.
   """

   #lemmatization
   finished = []
   for x in clean:
      finished.append(lem.lemmatize(x))

   return finished

1 个答案:

答案 0 :(得分:1)

您应该先将tweet拆分为句子,然后标记化。 NLTK为此提供了一种方法。

   from nltk.tokenize import sent_tokenize
   sents = sent_tokenize(tweet)

在此之后,为您的nltk.pos_tag方法提供此句子列表。那应该给出准确的POS标签。