python - 使用朴素贝叶斯情感分析进行 PoS 实现

标签 python nlp nltk sentiment-analysis naivebayes

我正在尝试在相对较大的数据集(10000 行)上应用情绪分析(预测负面和正面推文)。到目前为止,我使用朴素贝叶斯和如下所示的名为“最终”的方法来提取特征,仅获得了约 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 标签。

关于python - 使用朴素贝叶斯情感分析进行 PoS 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51201830/

相关文章:

python - 如何使用if语句为python中的新列赋值?

python - 使用python PIL读取BMP RGBA不起作用

python - Spacy nlp = spacy.load ("en_core_web_lg")

python - 如何为其中一列包含标点符号、空格的数据集编写代码并删除相应的行?

python - 给定 unicode 单词获取 wordnet 同义词集的正确方法是什么?

python - 在python/flask应用dockerization期间出现问题

python - 我收到以下错误需要超过 1 个值才能解包

nlp - 在给定的延迟后回复

python - 在 PySpark ML 中创建自定义 Transformer

python - 使用 NLTK 提取关系