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

Python 基于朴素贝叶斯情感分析的PoS实现,python,nlp,nltk,sentiment-analysis,naivebayes,Python,Nlp,Nltk,Sentiment Analysis,Naivebayes,我试图在一个相对较大的数据集(10000行)上应用情绪分析(预测负面和正面推文)。到目前为止,我使用朴素贝叶斯和我的方法“final”来提取特征,只获得了约73%的准确率。我想添加PoS来帮助分类,但我完全不确定如何实现它。我试着编写一个名为“pos”的简单函数(我在下面发布了这个函数),并尝试使用我清理过的数据集上的标记作为功能,但这样只获得了大约52%的准确率。。有人能给我指引正确的方向,为我的模型实施PoS吗?多谢各位 def pos(word): return [t for w, t

我试图在一个相对较大的数据集(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\u标记
方法。这应该会给出准确的POS标签。

在POS(x)中,x是单个单词还是整个推文?因为词性标记单个单词可能非常不准确。我用这一行将其应用于每个单词:clean_text=clean_text.apply(词性),其中“clean_text”是所有推文的标记化版本。那么我应该如何/在哪里申请pos?我道歉;我对这个完全陌生@非常感谢你的帮助