我有一篇评论文字,我想定义它是正面还是负面。我正在使用sentiwordnet获取评论中每个单词的分数。我的问题是因为每个单词都有多个synset我只想要第一个: 例如:
swn.senti_synsets('slow')
[SentiSynset('decelerate.v.01'), SentiSynset('slow.v.02'), \
SentiSynset('slow.v.03'), SentiSynset('slow.a.01'), SentiSynset('slow.a.02'), \
SentiSynset('slow.a.04'), SentiSynset('slowly.r.01'), SentiSynset('behind.r.03')]
我想要第一个SentiSynset('decelerate.v.01')
这是我的代码:
Text = " I love the movie but hate the music"
word_tok = word_tokenize(Text)
for i in word_tok :
g = nltk.tag.pos_tag([i])
for word, tag in g:
if tag.startswith('JJ'):
new = 'a'
elif tag.startswith('V'):
new = 'v'
elif tag.startswith('R'):
new = 'r'
else:
new =''
if new != '':
synsets = list(swn.senti_synsets(word, new))
b = synsets[0]
首先我对文本进行标记,然后我获取每个单词的标记并将其更改为Sentiwordnet识别的标记。如果单词是形容词/副词/动词,我希望他们的第一个synset得到pos / neg分数。 当我运行这个脚本时,我收到错误
Traceback (most recent call last):
File "C:\Python34\test2.py", line 39, in <module>
b = synsets[0]
IndexError: list index out of range
任何人都可以在我的代码中看到我的错误吗? 提前致谢