Help us understand the problem. What is going on with this article?

日本語評価極性辞書を利用したPython用Sentiment Analysisライブラリ oseti を公開しました

はじめに

東北大学の乾・鈴木研究室のページで公開されている日本語評価極性辞書を使ったSentiment Analysis (いわゆるネガポジ判定) ライブラリ oseti を公開しました。これは日本語評価極性辞書を用いて文の評価極性 (ポジティブ/ネガティブ) のスコアを計算するものです。

何番煎じかって感じはありますけど、自分のPCの中にだけずっとあるのはもったいないので公開しました。

※バージョンv0.2 (2019/10/7公開) からの変更点を追加しました。

インストール

pip install oseti

このライブラリはMeCabを利用しているためMeCabのインストールも必要です。MeCab本体は以下のURLからダウンロードできます。
http://taku910.github.io/mecab/

あとは依存モジュールとしてneologdnmecab-python-windowsあるいはmecab-python3sengiriがインストールされます。

使い方

import oseti

analyzer = oseti.Analyzer()
analyzer.analyze('天国で待ってる。')
# => [1.0]
analyzer.analyze('遅刻したけど楽しかったし嬉しかった。すごく充実した!')
# => [0.3333333333333333, 1.0]

テキストを入れると文ごとの評価極性のスコアが出ます。スコアの値は[-1, 1]でプラス値が大きいほどポジティブで、マイナス値が大きいほどネガティブとなります。
スコアの計算は、単語あるいは用言ごとにポジティブ (+1) あるいはネガティブ (-1) のラベルが付いた辞書を使い、それにマッチすると1あるいは-1の極性値が加えられ、極性値の総和 / マッチした単語・用言の数でスコアを出します。たとえば遅刻したけど楽しかったし嬉しかった。という文では、遅刻 (-1)、楽しい (+1)、嬉しい (+1) となり極性値の総和は1で、マッチした数は3なので1 / 3 = 0.3333となります。
なお、「ない」や「ぬ」といった否定表現があると極性値を反転させます。

バージョンv0.2 (2019/10/7公開) からの変更点

analyzer.count_polarity('遅刻したけど楽しかったし嬉しかった。すごく充実した!')
# => [{'positive': 2, 'negative': 1}, {'positive': 1, 'negative': 0}])
analyzer.count_polarity('そこにはいつもと変わらない日常があった。')
# => [{'positive': 0, 'negative': 0}]

count_polarity methodでは、ポジティブ/ネガティブ表現の数のみを返却します。文単位でなく文書単位の極性値を測りたい場合や、違った手法でスコアリングしたい場合に向いています。

analyzer.analyze_detail('お金も希望もない!')
# => [{'positive': [], 'negative': ['お金-NEGATION', '希望-NEGATION'], 'score': -1.0}])
analyzer.analyze_detail('お金がないわけではない')
# => [{'positive': ['お金'], 'negative': [], 'score': 1.0}]

analyze_detail メソッドではどの単語がポジティブ/ネガティブ判定されたのかという情報も出力されます。デバッグ用に役立つかもしれません。

yukinoi
自然言語処理とかPythonについて書きます。
http://ikegami-yukino.github.io
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした