我如何在字典中搜索 nltk 词干?
How can I search a dictionary for a nltk stem?
我在检查词典中是否存在词干词时遇到问题。这是我正在做的一些情绪分析工作。我得到的只是这里的错误:
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')
目前我只是得到分数。有没有一种方法可以将该词干词作为字符串传递,以查看字典中的分数?如果我做错了什么或可以做得更好,请告诉我!谢谢!
您检查 word
是否在 senti_word_dict
中。也许是。但随后你将它词干化(它变成了一个不同的词!)并尝试使用 senti_word_dict.get
从字典中检索词干。如果词干不在字典中(为什么它应该是?),get()
returns a None
。因此,错误。解决办法:先把词干出来再查。
我在检查词典中是否存在词干词时遇到问题。这是我正在做的一些情绪分析工作。我得到的只是这里的错误:
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')
目前我只是得到分数。有没有一种方法可以将该词干词作为字符串传递,以查看字典中的分数?如果我做错了什么或可以做得更好,请告诉我!谢谢!
您检查 word
是否在 senti_word_dict
中。也许是。但随后你将它词干化(它变成了一个不同的词!)并尝试使用 senti_word_dict.get
从字典中检索词干。如果词干不在字典中(为什么它应该是?),get()
returns a None
。因此,错误。解决办法:先把词干出来再查。