我在检查词典中是否存在词干词时遇到问题。这是我正在做的一些情绪分析工作。所有我回来的都是这里的错误:
Traceback (most recent call last):
File "sentiment.py", line 369, in <module>
score += int(senti_word_dict.get(get_stem(word)))
TypeError: int() argument must be a string or a number, not 'NoneType'
这是我通过NLTK查找词干的方法的代码:
def get_stem(word):
st = SnowballStemmer("english")
stemmed_word = st.stem(word)
return '' if stemmed_word is None else stemmed_word
以下是针对字典检查该单词的代码:
for comment in all_comments:
score = 0
tokens = tokenize(comment)
for word in tokens:
if word in senti_word_dict:
score += int(senti_word_dict.get(get_stem(word)))
print(str(score)+" "+comment)
print('\n')
目前我只是得分。有没有一种方法可以将该词干作为字符串传递,以查看字典中的分数是什么?如果有什么我做错了或者可以做得更好让我知道!谢谢!
答案 0 :(得分:0)
您检查word
是否在senti_word_dict
。也许是这样。但是你干它(它变成一个不同的词!)并尝试用senti_word_dict.get
从字典中检索词干。如果词干不在词典中(为什么会出现?),get()
会返回None
。因此,错误。解决方案:首先干掉这个词然后再查找它。