"感情"という観点からNewsPicksのコメントを見る

## コメントの多様性という価値
[NewsPicks](https://newspicks.com/)が提供する最大の価値は何か？
私はそれはコメントだと思っています。

400万人を超えるユーザからの多種多様な意見、プロピッカーと呼ばれる各分野の専門家による解説や鋭い指摘、ときには記事を書いた本人による補足説明など、一つのニュースに対して実に様々なコメントが投稿されます。

「政府が○○を発表」、「△△社と××社が業務提携」など、単なる事実を伝えるだけのニュースであっても、NewsPicksではその事実に至った経緯や今後予想される展開、期待や不安といった多様性あふれるコメントが並ぶので、ニュースへの理解が深まったり、そんな考え方があるのかと新しい発見をすることができます。

## "感情"という観点からコメントを見る
そんなコメントの多様性に価値を感じているわけですが、数多く投稿されるコメント全てに目を通す時間があるわけではないので、やはりコメント欄の上の方の投稿だけに目が行きがちです。

それだけでも多様な意見に触れることはできますが、ニュースによっては批判的(あるいは肯定的)な意見ばかりが上位に並んでしまうケースもあります。

そこで、"感情"という観点からコメントを分類し、ポジティブなコメント、ネガティブなコメントといった形でコメントを抽出できれば、効率よく多様なコメントに触れることができるのではないかと考えました。

また、感情という観点でコメント全体の傾向を見ると、そのニュースがポジティブに受け取られているのかネガティブに受け取られているのかを知ることができ、新たな発見と理解につながるのではないかと思います。

## Google Natural Language API
コメントの感情分析にはGoogleの[Natural Language API](https://cloud.google.com/natural-language/?hl=ja)を使用しました。
テキストをAPIに渡すだけで、そのテキストの感情がポジティブなのかネガティブなのかを判定してくれるというものです。

APIの使い方についてはドキュメントを読んでいただくとして、ここではAPIが出力する分析結果の見方について簡単に説明したいと思います。

### 感情分析結果の解釈の仕方
APIにテキストを渡すと、以下の2つの値が出力されます。
[ドキュメント](https://cloud.google.com/natural-language/docs/basics?hl=ja#interpreting_sentiment_analysis_values)にわかりやすく書いてありますが、ここでもその意味を説明しておきます。

- スコア
  - テキストの感情が`-1.0(ネガティブ)`〜`+1.0(ポジティブ)`の範囲で表現される
- マグニチュード
  - テキストの感情の強度が`0.0`〜`∞`の値で表現される
  - テキスト内で"好き"や"嫌い"といった感情が表現されるたびに値が増加する。このため長いテキストではマグニチュードの値が大きくなる傾向にある

この2つの値により、テキストは大きく4つのタイプに分類することができます。

| 感情タイプ | 判定 |
|:-----------------|:------------------|
| ポジティブ | スコアが大きい(+1.0に近いほどポジティブ) |
| ネガティブ | スコアが小さい(-1.0に近いほどネガティブ) |
| ニュートラル | スコアが0近辺で、マグニチュードが小さい |
| ポジティブとネガティブの混合 | スコアが0近辺で、マグニチュードが大きい(ポジティブな感情とネガティブな感情でスコアが相殺されている) |

具体的にスコアがいくつ以上ならポジティブなのかというしきい値はユースケースによって異なります。
実際のテキストを人間が見て分類し、どのくらいの値であればポジティブと言えるのかを判断する作業が必要になります。

## コメントの感情分析を行う
### 分析対象の記事
せっかくなので多くのコメントが投稿された記事で分析をしてみます。
2019年にNewsPicksに掲載された記事の中で、最もコメント数の多かった2つの記事を取り上げたいと思います。
どちらも2019年を象徴するニュースですね。

1. [ヤフーとLINE、経営統合へ](https://newspicks.com/news/4381390)（1257コメント）
2. [「終身雇用守るの難しい」トヨタ社長が“限界”発言](https://newspicks.com/news/3890447)（1097コメント）

### 感情によるコメントの分類
すべてのコメントを感情分析してスコアとマグニチュードを出したら、各コメントがどの感情に分類されるのかを判定します。
今回は数十個程度のコメントを見て、以下のロジックで分類すると良さそうだと判断しました。

| 感情タイプ | 判定 |
|:-----------------|:------------------|
| ポジティブ | スコア >= 0.2 |
| ネガティブ | スコア <= -0.2 |
| ニュートラル | -0.2 < スコア < 0.2 AND マグニチュード < 1 |
| 混合 | -0.2 < スコア < 0.2 AND マグニチュード >= 1 |

## 分析結果と考察

### [ヤフーとLINE、経営統合へ](https://newspicks.com/news/4381390)

#### コメント全体の感情傾向
まずは記事に対するコメント全体の感情の傾向を見ていきたいと思います。

驚きを持って迎えられたYahoo!とLINEの経営統合発表。
コメントを眺めてみると、プロピッカーからは経営統合のメリデメについての冷静な意見、その他ユーザからは2つのビッグプレイヤーのタッグに対する比較的ポジティブな意見が並んでいるように見えます。

感情分析APIはどう判定したのでしょうか。
スコアとマグニチュードの分布はこのようになりました。

![chart.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/cafefac5-f243-d08d-cd4c-de75009c060e.png)

分布を見ると、ポジティブなコメント、ニュートラルなコメントが多いようです。

これだけだと定量的にわかりづらいので、コメントを感情タイプごとに分類し、その比率を出してみました。

![chart (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/48c63896-04f2-d97a-28de-c539f965cbfe.png)

ポジティブが42.1%と大きな割合を占めています。
また、ニュートラルが28.8%もあり、このニュースを冷静に見ているユーザが多いことが推測できます。

ところで、NewsPicksのコメントには"いいね":thumbsup:をつけることができます。
"いいね"をそのコメントへの共感と捉えると、"いいね"の数を加算することで、コメントしていないユーザの感情も反映することができると考えました。
具体的には、ポジティブなコメントに"いいね"が10ついていたら、ポジティブの数に10を加算することとします。

"いいね"を反映した結果はこちらです。

![chart (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/26541b33-9194-26e0-1baf-d8847824d900.png)

比率に大きな変化はありませんでした。
コメントあるいは"いいね"をしたユーザの半分近くはこのニュースをポジティブにとらえていると言えるでしょう。

#### 感情タイプごとの代表コメントを抽出
全体の傾向としてはポジティブなコメントが多いという結果となりましたが、ネガティブなコメント、ポジティブとネガティブの感情が入り混じったコメントもそれぞれ12.5%、20.7%あり、コメントに多様性があることがわかります。

アプリでコメント欄を見たときは、比較的ポジティブかまたは冷静に分析したコメントにしか触れることがなかったですが、感情タイプごとにコメントを抽出すればネガティブなコメントも含めた多様なコメントに効率良く触れることができます。

スコアとマグニチュードの分布から、各感情タイプに位置する点を選びます。
選び方に明確なロジックはありませんが、感情のこもったコメントを拾いたいのでマグニチュードの値が大きいものを選びました。

![chart.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/ff098b39-6975-07c8-2c21-5a3943fdf54a.png)

**ポジティブ**
> 全世代が毎日使ってるSNSってLINEくらいかな？
> 情報めっちゃ集まる気がするし、ソフトバンクの攻めが止まらない。
> 個人的には、孫さんが辞める気全くない感じが1番嬉しい。
> そうなったら面白いを実現するワクワクする経営者だもん。

**ネガティブ**
> 20191114
> LINE銀行とJscoreはどうなるんだろう
> SBGはそのうちメガバンクも飲み込むんじゃなかろうか

> 20191117
> その前にファンドでつまずくかな、景気の潮目も微妙だし

> PayPayとLINE Payで顧客シェア取るのはいいけどいつまで赤字でやってけるのかな。どうやって収益化するんだろ。還元率でとった顧客基盤は得がなくなればすぐ剥がれる。
> 給与振込が解禁されて個人が容易に逃げられなくなってからいろいろ薄く手数料かけるのかな。だとすると銀行の口座維持手数料と同じ構図のような気もするが。

**ニュートラル**
> 日本内で独禁法議論が必要ですね。

> DiDiなどのように、Visionファンドで投資した会社の日本展開が全部この会社にまずは行く形になる。
> 結果として、日本市場における競争がなくなる。

> 一方でGlobalに出るには今サービスが見えてない(既存LINE No.1シェアの国と地域以外)

> 次はSlackとかそういう企業を買うんだろうな。。。

**混合**
> 3000picksに届きそうだ。

> これはやはりすごいニュース。
> クローズドなLINEとオープンなYahoo
> ここが垂直で繋がったらどうなるんだろう。

> 垂直統合ブランドでトップの（勝手に思ってる）appleからヘッドハンティングしてきて、新しいブランドとして一気に訴求しても良いのではないか。

> 垂直ありきの話だけれど、でも横繋ぎだけだとユーザー的には重くなるだけっぽいからあんまり魅力はないかも。（LINEにzozo広告増えるとか、、、いらぬ）

> 色々と予想を裏切って欲しいなぁ。
> SoftBankという社名にたるデータがまた揃うわけですね。孫さん、すごい。笑

私はこのニュースを聞いたとき、LINE PayとPayPayが統合されてより便利になるのかな、ということと、日本のインターネット界の2大企業が手を組んだことへのなんとなくのワクワクくらいしか発想がなかったのですが、ここで挙げたコメントからはPayサービスの収益化という課題、独禁法への言及など、新たな気付きを得ることができました。

感情という観点からコメントを見ることの可能性を感じます。

### [「終身雇用守るの難しい」トヨタ社長が“限界”発言](https://newspicks.com/news/3890447)

#### コメント全体の感情傾向
続いてはこちらの記事です。
経団連会長の発言に引き続き、日本を代表する企業のトップからも同様の発言が出たことが話題となりました。

ざっとコメントを見てみると、NewsPicksらしく(?)発言に対しては好意的で、終身雇用を前提とした働き方をしている人たちを苦慮するコメントが多く見られます。
好意的に受け取りつつもネガティブな表現が入るという性質のコメントが多いですが、感情分析APIはどう判定したのでしょうか。

スコアとマグニチュードの分布、コメントの感情比率、"いいね"を反映したコメントの感情比率はこのようになりました。

![chart (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/965d340f-abf1-5e84-7821-a371de22cd3b.png)

![chart (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/eff28145-2565-84f3-3506-be5450e01c48.png)

![chart (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/3a01fcad-6e77-f743-3087-0c322e955b9a.png)

コメントの感情比率ではポジティブとネガティブが拮抗していますが、"いいね"を反映したコメントの感情比率ではネガティブなコメントがポジティブなコメントの1.5倍以上になります。

分析結果だけ見るとコメント全体の傾向としては比較的ネガティブであるということになりますが、上述したように本ニュースについては好意的に受け取られつつもネガティブな表現が入るコメントが多いため、「ネガティブ=終身雇用を守れないとはけしからん」ということではありません。

上記の結果はあくまでネガティブな表現のコメントが多いということだけを示しており、何に対してネガティブであるのかは実際のコメントを見て判断する必要があります。

#### 感情タイプごとの代表コメントを抽出
では実際どのようなコメントがポジティブ、ネガティブと判定されているのか。
各感情タイプの代表コメントを見てみたいと思います。

![chart__3_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/d3845ac0-195c-b3eb-8bbb-ee1d560d9a18.png)

**ポジティブ**
> グローバル企業を目指す日立・トヨタであれば、これまでが異常であった事はとっくに肌で感じていた事と思います。しかし、技術の積み上げや経験が最重要と思われる製造業代表であるトヨタからこのような声が出た事は、やはりさすがだなぁと驚きました。

> これまでの日本は製造業と抜群に良い相性を持つ国民性・文化で世界的な優位性を保ってきましたが、これからはそのお株も中国などに奪われ兼ねないと思っています。

> 良い所は素直に活かし、自分たちらしいビジネスモデルが提案出来ると良いですよね。。他人事ではなく、自分も考え続けようと思っています。

**ネガティブ**
> 終身雇用を信じる感覚が理解できない。
> 今の日本で何歳以上だと終身雇用にこだわってキャリア形成しているのだろうか。

> 終身雇用守れないのであれば、早く新卒一括採用なんてやめて若手社員の賃金をあげてほしい。

> アメリカ、中国からは確実に若手社員の待遇面で劣っており人材獲得競争に負けっぱなし。

> 社会保障もだけど、いつまで団塊世代守る政策に走っとんねんと呆れる。

**ニュートラル**
> 豊田社長の発言というインパクトは大きいですね。要は肩書きだけの、仕事に見合わないサラリーを払う余裕はなくなったということでしょうか。

> 会社の看板が無くても仕事を頼まれる人間になりたいものです。大企業でも、若くても、そういう人が今の実力に見合ったサラリーをもらう世の中になってほしいです。

**混合**
> 経団連会長の中西さんの発言に続き、今回はトヨタ社長の豊田章男さんの終身雇用についての発言。

> これも言い続けてきたことだが、終身雇用、年功序列、企業内労働組合、新卒一括採用、これらには良い点もあれば悪いところもある。ただやはり、制度疲労を起こしていると言わざるを得ない。昭和時代の象徴であり名残であり、平成は変化への過渡期だった。変わりたくても企業側もそこまでの勇気がなく、個人・社員も半信半疑だった。

> だけど、ついに企業も本音を言わざるを得なくなった。（遅い動きではあるものの）これは令和の時代の動きのひとつとなる。会社と社員が「親子関係」ではなく「対等なパートナー」関係をつくることが重要。それをトップマネジメントと人事部門が目を背けずにやる。そして、終身雇用「だけ」を変えても不十分なので、年功序列、企業内労働組合、新卒一括採用についても大改革を実行する。

> そして、個人側は「頑張れば会社が守ってくれる」と思わずに、そして、（入社当初は思っていなくても）その世界に染まらないように、自己認識や自分のやりたいことやありたい姿を考え続け、周囲を巻き込んで行動する。

> 昭和の「終身雇用」から、令和のキーワードは「終身信頼」。
> いつでもパートナー関係としてつきあっていく仲間だ。
> これがオープンイノベーションや出戻り採用のきっかけになる。

> 戦国時代の「落ち武者」ならぬ、大企業に「落ちサラリーマン」をつくらないようにしよう。やりたいことがやれる社会に。

ポジティブなコメントでは「終身雇用守れない発言」をしたことへの称賛があり、ネガティブなコメントでは終身雇用という制度そのものへの疑問の声が見られました。
他にもいくつかコメントを見ましたが、今回の記事におけるネガティブな感情というのは、「終身雇用守れない=けしからん」ではなく、終身雇用がもたらすマイナスな効果に対するもののようです。

感情の表現の仕方は違いつつも、終身雇用は不要であるというスタンスが共通しているところはNewsPicksらしいなと思いました。

### 分析結果と考察のまとめ
"感情"という観点からコメントを見ることで、多様性のある意見に効率よく触れられるという体験には一定の価値があるのではないかと個人的には思いました。
特に、ポジティブなコメントが多く並ぶ中でネガティブなコメントにも目を通すと、思いがけない発見があるのではないかと思います。

コメントの感情比率については、解釈の仕方に注意が必要だと気づきました。
「○○という発表・発言があった」という記事に対してネガティブなコメントが多く投稿されたからといって、その発表・発言自体がネガティブに受け取られているとは限りません。
どのような文脈でネガティブな表現がされているのかをしっかりと確認した上で、全体的な傾向を判断する必要があります。

## まとめ
"感情"という観点からコメントを見ることの可能性は感じられたものの、今回の分析には考慮が足りてない点が多数あります。

まず、感情分析APIが出力する結果と、人間がコメントを読んで判定した結果には乖離があることがあります。
今回使用したAPIは汎用的にモデル化されたものであり、精度を上げるためには自分でモデルを作る必要もあるかもしれません。

コメントの書き方にルールがないことも、分析を難しくしている要因です（分析のためにルールを決めるというのは本末転倒ですが）。
例えば、NewsPicksのコメントでは記事本文の文章を引用しているユーザが多く、コメントをそのまま分析APIに渡すだけでは引用文まで分析対象になってしまいます。
こうしたノイズをフィルタする事前処理も必要です。

また、感情タイプを分類するロジックも、もっと統計的な根拠のある方法でなければいけないかなと思っています。
今回は実際のコメントをいくつか読んで完全に主観的な分類ロジックでやりましたが、もっと良いやり方があるのではないかと思っています。

技術的に高度な課題が多く残っていますが、NewsPicksをより良いサービスとするべく、今後も感情分析の可能性を探っていきたいと思います。

明日は@ohidaさんの記事です。お楽しみに！！