• 23
    いいね
  • 0
    コメント

ちゃお……†

今回は感情分析ライブラリ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'])
#     }