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

PoS Implementation with Naive Bayes Sentiment Analysis

我正在尝试对相对较大的数据集(10000 行)应用情绪分析(预测负面和正面推文)。到目前为止,我使用朴素贝叶斯和我的名为 "final" 的方法提取特征的方法仅获得了 ~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

您应该先将推文拆分成句子,然后进行分词。 NLTK为此提供了一种方法。

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

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