LoginSignup
85

More than 5 years have passed since last update.

ML-Askでテキストの感情分析

Last updated at Posted at 2017-02-10

ちゃお……†

今回は感情分析ライブラリML-Askについて紹介します。

ML-Askができること

感情の推定

2,100語の辞書によるパターンマッチングで{喜, 怒, 哀, 怖, 恥, 好, 厭, 昂, 安, 驚}の10種類の感情を推定します。この2,100語は、感情表現辞典に基づいているそうです。

感情の強さ

間投詞、擬態語、がさつな言葉、顔文字、「!」や「?」の数で感情の強さを推定します。

ネガポジ分類

推定された感情から文を{ネガティブ、ポジティブ、ニュートラル}の3種類に分類します。

文脈の考慮

Contextual Valence Shifters (CVS) という概念に基づいて, 文脈を考慮した感情推定を行います. たとえば, 「好きとは言えない」という文の場合、「好き」が否定されているので、「好き」の逆の感情である「厭」だと推定します。

活性的かどうか

推定された感情を元に文が{ACTIVE, NEUTRAL, PASSIVE}であるかの分類します。たとえば、「昂」はACTIVEで、「哀」はPASSIVEです。

ML-AskのPython実装

Python 2系、3系どちらにも対応しています。

開発用リポジトリ

https://github.com/ikegami-yukino/pymlask
Contributions are welcome!

インストール

pip install pymlask

※MeCabがないと動きません

使い方


from mlask import MLAsk
emotion_analyzer = MLAsk()
emotion_analyzer.analyze('彼のことは嫌いではない!(;´Д`)')
# => {'text': '彼のことは嫌いではない!(;´Д`)',
#     'emotion': defaultdict(<class 'list'>,{'yorokobi': ['嫌い*CVS'], 'suki': ['嫌い*CVS'], 'iya': ['嫌']}),
#     'orientation': 'mostly_POSITIVE',
#     'activation': 'ACTIVE',
#     'emoticon': ['(;´Д`)'],
#     'intension': 2,
#     'intensifier': {'exclamation': ['!'], 'emotikony': ['(;´Д`)']},
#     'representative': ('yorokobi', ['嫌い*CVS'])
#     }

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
85