🍱

osetiをimportしたらエラーを吐かれた話

2022/07/21に公開

oseti という Python で 感情分析 (Sentiment Analysis) を行うためのライブラリをimportしようとしたらエラーを吐かれたので解決策をメモ。

osetiを動かしてみると以下のエラーが出ました。

  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/oseti/__init__.py", line 2, in <module>
    from .oseti import Analyzer
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/oseti/oseti.py", line 8, in <module>
    import sengiri
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/sengiri/__init__.py", line 2, in <module>
    from .sengiri import tokenize
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/sengiri/sengiri.py", line 6, in <module>
    EMOJIS = set(emoji.UNICODE_EMOJI.keys())
AttributeError: module 'emoji' has no attribute 'UNICODE_EMOJI'

読んでみるとemojiというモジュールで怒られているらしいのでひとまずバージョンを2.0から1.7に下げてみます。

$pip install emoji==1.7     

すると別のエラーが

  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/oseti/oseti.py", line 109, in analyze
    for sentence in sengiri.tokenize(text):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/sengiri/sengiri.py", line 65, in tokenize
    result += _analyze_by_mecab(line, mecab_args)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/sengiri/sengiri.py", line 21, in _analyze_by_mecab
    (surface, features) = line.split('\t')
ValueError: too many values to unpack (expected 2)

どこかでmecab-python3のバージョンが0.7だと動くと聞いたのでこちらもバージョンを1.0.5から0.7に下げてみます。

$pip install mecab-python3==0.7

動きました。やったね。

バージョン依存には気をつけましょう。

Discussion