我正在尝试在相对较大的数据集(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
答案 0 :(得分:1)
您应该先将tweet拆分为句子,然后标记化。 NLTK为此提供了一种方法。
from nltk.tokenize import sent_tokenize
sents = sent_tokenize(tweet)
在此之后,为您的nltk.pos_tag
方法提供此句子列表。那应该给出准确的POS标签。