Python 基于朴素贝叶斯情感分析的PoS实现
我试图在一个相对较大的数据集(10000行)上应用情绪分析(预测负面和正面推文)。到目前为止,我使用朴素贝叶斯和我的方法“final”来提取特征,只获得了约73%的准确率。我想添加PoS来帮助分类,但我完全不确定如何实现它。我试着编写一个名为“pos”的简单函数(我在下面发布了这个函数),并尝试使用我清理过的数据集上的标记作为功能,但这样只获得了大约52%的准确率。。有人能给我指引正确的方向,为我的模型实施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
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?我道歉;我对这个完全陌生@非常感谢你的帮助