0

語幹が付けられた単語が辞書に存在するかどうかを確認する際に問題が発生しています。これは、私が行っている感情分析作業のためのものです。私が戻ってきたのは、ここにあるこのエラーだけです:

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')

今のところ、私はスコアを取得しています。その語幹を付けた単語を文字列として渡して、辞書にあるスコアを確認する方法はありますか? 私が間違っていること、またはもっとうまくできることがあれば、私に知らせてください!ありがとう!

4

1 に答える 1

0

にあるかどうかを確認wordsenti_word_dictます。おそらくそうです。しかし、その後、それをステム (別の単語になります!) で辞書からステムを取得しようとしますsenti_word_dict.get。語幹が辞書にない場合 (なぜあるべきなのか?)、 をget()返しますNone。したがって、エラー。解決策: 最初に語幹を絞ってから、調べてください。

于 2017-03-05T06:09:44.780 に答える