1. yukinoi
Changes in body
Source | HTML | Preview
@@ -1,17 +1,20 @@
+# はじめに
[東北大学の乾・鈴木研究室のページで公開されている日本語評価極性辞書](http://www.cl.ecei.tohoku.ac.jp/index.php?Open%20Resources%2FJapanese%20Sentiment%20Polarity%20Dictionary)を使ったSentiment Analysis (いわゆるネガポジ判定) ライブラリ [oseti](https://github.com/ikegami-yukino/oseti) を公開しました。これは日本語評価極性辞書を用いて文の評価極性 (ポジティブ/ネガティブ) のスコアを計算するものです。
何番煎じかって感じはありますけど、自分のPCの中にだけずっとあるのはもったいないので公開しました。
+※バージョンv0.2 (2019/10/7公開) からの変更点を追加しました。
+
## インストール
```
pip install oseti
```
このライブラリはMeCabを利用しているためMeCabのインストールも必要です。MeCab本体は以下のURLからダウンロードできます。
http://taku910.github.io/mecab/
-あとは依存モジュールとして`neologdn`と`mecab-python-windows`あるいは`mecab-python3==0.7`がインストールされます。
+あとは依存モジュールとして`neologdn`と`mecab-python-windows`あるいは`mecab-python3`や`sengiri`がインストールされます。
## 使い方
```python
@@ -24,5 +27,24 @@
# => [0.3333333333333333, 1.0]
```
テキストを入れると文ごとの評価極性のスコアが出ます。スコアの値は[-1, 1]でプラス値が大きいほどポジティブで、マイナス値が大きいほどネガティブとなります。
スコアの計算は、単語あるいは用言ごとにポジティブ (+1) あるいはネガティブ (-1) のラベルが付いた辞書を使い、それにマッチすると1あるいは-1の極性値が加えられ、`極性値の総和 / マッチした単語・用言の数`でスコアを出します。たとえば`遅刻したけど楽しかったし嬉しかった。`という文では、遅刻 (-1)、楽しい (+1)、嬉しい (+1) となり極性値の総和は`1`で、マッチした数は`3`なので`1 / 3 = 0.3333`となります。
なお、「ない」や「ぬ」といった否定表現があると極性値を反転させます。
+
+## バージョンv0.2 (2019/10/7公開) からの変更点
+
+```py
+
+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` メソッドではその単語がポジティブ/ネガティブ判定されたのかという情報も出力されます。デバッグ用に役立つかもしれません。