Python 3.x 如何使用sentiwordnet获取synet的分数名称

Python 3.x 如何使用sentiwordnet获取synet的分数名称,python-3.x,Python 3.x,我有一个字符串,我想使用sentiword net获得每个单词的pos/neg分数。这是我的密码: from nltk.corpus import sentiwordnet as swn from nltk.tokenize import word_tokenize text = "good bad. work hard" word_tokens = word_tokenize(text) for i in word_tokens: synsets=list(swn.senti_sy

我有一个字符串,我想使用sentiword net获得每个单词的pos/neg分数。这是我的密码:

from nltk.corpus import sentiwordnet as swn
from nltk.tokenize import word_tokenize

text = "good bad. work hard"
word_tokens = word_tokenize(text)
for i in word_tokens:
     synsets=list(swn.senti_synsets(i))
     print(synsets[0])
我的输出有错误:

<good.n.01: PosScore=0.5 NegScore=0.0>
<bad.n.01: PosScore=0.0 NegScore=0.875>
Traceback (most recent call last):
  File "C:\Python34\test2.py", line 20, in <module>
    print(synsets[0])
IndexError: list index out of range

回溯(最近一次呼叫最后一次):
文件“C:\Python34\test2.py”,第20行,在
打印(同步集[0])
索引器:列表索引超出范围
知道为什么吗?
提前感谢

您需要将synset声明为list并将所有结果附加到它。这将有助于:

synsets = list()
text = "good bad. work hard"
word_tokens = word_tokenize(text)
for i in word_tokens:
    synsets.append(list(swn.senti_synsets(i)))
    print(synsets[0])

您需要将synset声明为list并将所有结果附加到它。这将有助于:

synsets = list()
text = "good bad. work hard"
word_tokens = word_tokenize(text)
for i in word_tokens:
    synsets.append(list(swn.senti_synsets(i)))
    print(synsets[0])

很明显,
synset
对于
“work”
来说是一个空列表?不,work的值是0(),我认为列表的长度有问题,但我不知道为什么?当我打印所有synset时,它会打印每个单词的所有synset。但是我只想要第一个语法集。显然,
synset
是一个空的列表,用于
“work”
?不,work的值是0(),我认为列表的长度有问题,但我不知道为什么?当我打印所有语法集时,它会打印每个单词的所有语法集。但我只想要第一个语法集。