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