用NLTK找出否定副词

2024-09-30 14:19:53 发布

您现在位置:Python中文网/ 问答频道 /正文

因为形容词和动词都能用否定前缀表达消极情绪,所以我需要从我现有的数百万个句子中找出这样的短语。例如“我不擅长这个。”是一个否定句,即使“好”是一个积极的词。在

我用nltk标记所有的句子。但是我怎样才能过滤掉否定的前缀呢?大多数否定前缀如no,not都被标记为副词“RB”。这是不是意味着我可以用所有带标记的副词作为否定前缀?而且,我所拥有的数据是巨大的,这使得我很难想出一个否定前缀的列表。在


Tags: 数据no标记列表not动词句子nltk
1条回答
网友
1楼 · 发布于 2024-09-30 14:19:53

NLTK有一个用于sentiwordnet的API,但这可能对您的任务没有帮助。Sentiwordnet有它的扭结。E、 g

>>> from nltk.corpus import sentiwordnet as swn
# Kind of useful.
>>> swn.senti_synsets('happy', 'a')
[SentiSynset('happy.a.01'), SentiSynset('felicitous.s.02'), SentiSynset('glad.s.02'), SentiSynset('happy.s.04')]
>>> swn.senti_synsets('happy', 'a')[0].synset.definition()
u'enjoying or showing or marked by joy or pleasure'
>>> swn.senti_synsets('happy', 'a')[0].pos_score()
0.875
>>> swn.senti_synsets('happy', 'a')[0].neg_score()
0.0
>>> swn.senti_synsets('happy', 'a')[0].obj_score()
0.125

# Not very useful...
>>> swn.senti_synsets('slow', 'a')
>>> swn.senti_synsets('slow', 'a')[0].synset.definition()
u'not moving quickly; taking a comparatively long time'
>>> swn.senti_synsets('slow', 'a')[0].pos_score()
0.0
>>> swn.senti_synsets('slow', 'a')[0].neg_score()
0.0
>>> swn.senti_synsets('slow', 'a')[0].obj_score()
1.0

NLTK http://www.nltk.org/howto/sentiment.html中还有VADER algorithm

^{pr2}$

相关问题 更多 >