ニュース記事の感情分析（ネガポジ判定ないし極性判定とも）

# はじめに

過去の記事（[※1](https://qiita.com/Blaster36/items/4bf54b129f506f814a6c)）で自然言語処理をする機会が増えてますとお伝えしてました。
いろいろと手を出してて、**感情分析**（ネガポジ判定ないし極性判定とも）にもチャレンジしてもいたり。。。
> この2～3か月くらい、筆者は仕事でデータ収集（BeautifulSoupやSeleniumを使ったWebスクレイピング）と自然言語処理（MeCabを使った形態素解析とgensim使った単語の分散表現と感情分析）をする機会が増えてます。

本稿では、「**livedoor NEWSに対して感情分析をする**」過程をCode交えて紹介してゆく。

## 感情分析とは

感情分析とは、とある文章に込めた**想い（感情）**がポジティブかネガティブかを、文章に含まれる単語軍から推定（分類）するタスクです。
東北大学でも関連研究に取り組まれており、資材（日本語評価極性辞書[^1][^2]）も公開されております。

本稿で利用するレポジトリはこちらです。

https://huggingface.co/daigo/bert-base-japanese-sentiment

https://huggingface.co/cl-tohoku/bert-base-japanese-whole-word-masking

また、ハンズオンはこちらです。

https://github.com/ydaigo/BERT_HANDSON/blob/master/BERT_HANDS_ON.ipynb

## 本稿で紹介すること

- 使った環境
- 感情分析の進め方（ニュース記事を例に）

## 本稿で紹介しないこと

- BERTの全般
- ニュース記事のスクレイピング

（筆者の過去投稿を参照いただけると。。。）
2022年1月1日の話題のニュース記事を予め取得しCSVファイルに出力して利用します。

https://qiita.com/Blaster36/items/f631727cd270abc57993

# まずは、環境の準備

:::note info
筆者は、NGCカタログイメージを取得し、コンテナ起動しています。
:::

以下、NGCカタログイメージ[^3]の取得コマンドです。

```shell:
$ docker pull nvcr.io/nvidia/pytorch:20.11-py3
```

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch

以下、PythonとPythonライブラリ群のVer情報です。

```shell:
$ python -V
Python 3.6.10 :: Anaconda, Inc.
$ python -m pip --version
pip 20.2.4 from /opt/conda/lib/python3.6/site-packages/pip (python 3.6)
$ pip list | grep -i torch
pytorch-transformers          1.1.0
torch                         1.8.0a0+17f8c32
torchtext                     0.8.0a0
torchvision                   0.8.0a0
$ pip list | grep -i transformers
pytorch-transformers          1.1.0
transformers                  3.0.2
$ mecab -v
mecab of 0.996
```

# それでは、ニュース記事の感情分析に挑戦！

:::note info
筆者は、NGCカタログイメージからコンテナ起動し、Google ChromeからJupyterLabに接続して実行しています。
:::

Codeを順に紹介してゆきます。

#### 1. ハンズオンに倣って、BERTモデルとMeCab辞書で感情分析器をインスタンス化

```python
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained("/home/jovyan/bert-base-japanese-sentiment")
tokenizer = AutoTokenizer.from_pretrained("/home/jovyan/bert-base-japanese-whole-word-masking", word_tokenizer_type="mecab", mecab_kwargs={"mecab_option": "-d /home/jovyan/mecab/ipadic -r /dev/null"})

sentiment_analyzer = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
```

#### 2. ニュース記事のCSVファイルをDataFrameに読込み

```python
import pandas as pd

# CSVファイルからDataFrameを生成
df = pd.read_csv('livedoor_news/livedoor_news_topic_2022-01-01.csv', encoding='utf-8')
df.head(5)
```

中身はこんな感じ。

<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>url</th>
      <th>id</th>
      <th>title</th>
      <th>summary</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>https://news.livedoor.com/topics/detail/214452...</td>
      <td>21445293</td>
      <td>「うる星やつら」が36年ぶりにTVアニメ化 フジ・ノイタミナ枠で</td>
      <td>フジテレビの深夜アニメ枠「ノイタミナ」で放送されるとのこと</td>
    </tr>
    <tr>
      <th>1</th>
      <td>https://news.livedoor.com/topics/detail/214463...</td>
      <td>21446393</td>
      <td>「コミケ」の献血に長蛇の列で大盛況「オタクの鑑」など感心の声</td>
      <td>東京都赤十字血液センターはTwitterで長蛇の列の様子を掲載し、感謝</td>
    </tr>
    <tr>
      <th>2</th>
      <td>https://news.livedoor.com/topics/detail/214474...</td>
      <td>21447477</td>
      <td>「逃走中」HIKAKINが逃走成功で150万円獲得 視聴者から祝福の声</td>
      <td>賞金である150万円を獲得することとなり「やった〜！」と歓喜</td>
    </tr>
    <tr>
      <th>3</th>
      <td>https://news.livedoor.com/topics/detail/214458...</td>
      <td>21445857</td>
      <td>声優の飯田里穂が一般人との結婚を報告「あたたかく見守っていただけたら」</td>
      <td>ツイッターでは直筆書面にて「一般の方と入籍いたしました」と伝えている</td>
    </tr>
    <tr>
      <th>4</th>
      <td>https://news.livedoor.com/topics/detail/214453...</td>
      <td>21445372</td>
      <td>餅がのどに詰まったら4分勝負、やるべき3つの対処法 NG行動は？</td>
      <td>人間は窒息すると4分で脳に影響が出るため、その場での対処が重要だという</td>
    </tr>
  </tbody>
</table>
</div>

#### 3. ニュース記事タイトルを対象に感情分析

```python
result = [sentiment_analyzer(title)[0] for title in df['title'].to_list()]
for x, y in zip(result, df['title'].to_list()):
    x.update({'title': y})
```

#### 4. 感情分析結果（戻り：Dict型）のリストからDataFrameを生成し、ニュース記事のDataFrameと結合

```python
df = pd.merge(df, pd.DataFrame(result), on='title')
df.head(5)
```

中身はこんな感じ。

<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>url</th>
      <th>id</th>
      <th>title</th>
      <th>summary</th>
      <th>label</th>
      <th>score</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>https://news.livedoor.com/topics/detail/214452...</td>
      <td>21445293</td>
      <td>「うる星やつら」が36年ぶりにTVアニメ化 フジ・ノイタミナ枠で</td>
      <td>フジテレビの深夜アニメ枠「ノイタミナ」で放送されるとのこと</td>
      <td>ポジティブ</td>
      <td>0.877783</td>
    </tr>
    <tr>
      <th>1</th>
      <td>https://news.livedoor.com/topics/detail/214463...</td>
      <td>21446393</td>
      <td>「コミケ」の献血に長蛇の列で大盛況「オタクの鑑」など感心の声</td>
      <td>東京都赤十字血液センターはTwitterで長蛇の列の様子を掲載し、感謝</td>
      <td>ポジティブ</td>
      <td>0.848410</td>
    </tr>
    <tr>
      <th>2</th>
      <td>https://news.livedoor.com/topics/detail/214474...</td>
      <td>21447477</td>
      <td>「逃走中」HIKAKINが逃走成功で150万円獲得 視聴者から祝福の声</td>
      <td>賞金である150万円を獲得することとなり「やった〜！」と歓喜</td>
      <td>ポジティブ</td>
      <td>0.826164</td>
    </tr>
    <tr>
      <th>3</th>
      <td>https://news.livedoor.com/topics/detail/214458...</td>
      <td>21445857</td>
      <td>声優の飯田里穂が一般人との結婚を報告「あたたかく見守っていただけたら」</td>
      <td>ツイッターでは直筆書面にて「一般の方と入籍いたしました」と伝えている</td>
      <td>ポジティブ</td>
      <td>0.924203</td>
    </tr>
    <tr>
      <th>4</th>
      <td>https://news.livedoor.com/topics/detail/214453...</td>
      <td>21445372</td>
      <td>餅がのどに詰まったら4分勝負、やるべき3つの対処法 NG行動は？</td>
      <td>人間は窒息すると4分で脳に影響が出るため、その場での対処が重要だという</td>
      <td>ポジティブ</td>
      <td>0.862354</td>
    </tr>
  </tbody>
</table>
</div>

#### 5. ポジティブ判定のニュース記事をスコア（ポジティブ度合い）の高い順にソートして表示

```python
df[df['label'] == 'ポジティブ'].sort_values('score', ascending=False)
```

結果はこんな感じ。「ぱっと見た感じネガティブな気もしたけど、ポジティブに判定される記事もあるんだな」という印象。

<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>url</th>
      <th>id</th>
      <th>title</th>
      <th>summary</th>
      <th>label</th>
      <th>score</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>30</th>
      <td>https://news.livedoor.com/topics/detail/214459...</td>
      <td>21445980</td>
      <td>声優・井上麻里奈が青二プロダクションへ移籍「さらに精進して参ります」</td>
      <td>「シグマ・セブンの皆様には感謝の気持ちで一杯」と前事務所に感謝</td>
      <td>ポジティブ</td>
      <td>0.962433</td>
    </tr>
    <tr>
      <th>13</th>
      <td>https://news.livedoor.com/topics/detail/214446...</td>
      <td>21444622</td>
      <td>天皇陛下と雅子さまがともに新年のビデオメッセージ 全文を紹介</td>
      <td>陛下は、新型コロナウイルスや、発生から10年を迎えた東日本大震災に言及</td>
      <td>ポジティブ</td>
      <td>0.943239</td>
    </tr>
    <tr>
      <th>20</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446256</td>
      <td>ロイヤルホスト“苺”スイーツ発売へ！　贅沢なパフェ＆ケーキなど全5種類が登場</td>
      <td>ファミリーレストラン「ロイヤルホスト」は、1月12日（水）から、季節の…</td>
      <td>ポジティブ</td>
      <td>0.934567</td>
    </tr>
    <tr>
      <th>12</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446720</td>
      <td>ピンク可愛い ガーナ新作アイス</td>
      <td>ロッテはチョコレート「ガーナ」ブランドの新作アイスクリーム「ガーナチョ…</td>
      <td>ポジティブ</td>
      <td>0.930231</td>
    </tr>
    <tr>
      <th>37</th>
      <td>https://news.livedoor.com/topics/detail/214460...</td>
      <td>21446051</td>
      <td>「うる星やつら」が新作アニメ化 ラム役の声優・上坂すみれがコメント</td>
      <td>ヒロイン・ラム役を上坂すみれ、主人公・諸星あたる役を神谷浩史が担当</td>
      <td>ポジティブ</td>
      <td>0.929826</td>
    </tr>
    <tr>
      <th>24</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446472</td>
      <td>たこ壺に入った人気駅弁の「ひっぱりだこ飯」ドライカレーに</td>
      <td>神戸の老舗駅弁メーカー淡路屋（本社、神戸市東灘区）は1月7日、名物駅弁…</td>
      <td>ポジティブ</td>
      <td>0.926005</td>
    </tr>
    <tr>
      <th>26</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444730</td>
      <td>マイナポイント第2弾が本日（1月1日）スタート　当初は限定展開</td>
      <td>マイナンバーカードの取得・利用促進を目的とした「マイナポイント」事業の…</td>
      <td>ポジティブ</td>
      <td>0.925518</td>
    </tr>
    <tr>
      <th>3</th>
      <td>https://news.livedoor.com/topics/detail/214458...</td>
      <td>21445857</td>
      <td>声優の飯田里穂が一般人との結婚を報告「あたたかく見守っていただけたら」</td>
      <td>ツイッターでは直筆書面にて「一般の方と入籍いたしました」と伝えている</td>
      <td>ポジティブ</td>
      <td>0.924203</td>
    </tr>
    <tr>
      <th>34</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444437</td>
      <td>「ぐるナイ おもしろ荘」優勝は人力舎所属のピン芸人・ゆめちゃん</td>
      <td>日本エレキテル連合、おかずクラブ、ぺこぱといったブレイク芸人の登竜門…</td>
      <td>ポジティブ</td>
      <td>0.917474</td>
    </tr>
    <tr>
      <th>28</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444423</td>
      <td>アニメ『魔法科高校の劣等生』続編制作決定　特報映像も公開</td>
      <td>アニメ『魔法科高校の劣等生』の続編が制作されることが決定した。12月31…</td>
      <td>ポジティブ</td>
      <td>0.913538</td>
    </tr>
    <tr>
      <th>15</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446073</td>
      <td>古川登志夫＆平野文『うる星やつら』新作アニメ化で喜び「楽しみにしてるっちゃ！」</td>
      <td>『週刊少年サンデー』（小学館）で連載されていた漫画『うる星やつら』（…</td>
      <td>ポジティブ</td>
      <td>0.910654</td>
    </tr>
    <tr>
      <th>6</th>
      <td>https://news.livedoor.com/article/detail/21447...</td>
      <td>21447352</td>
      <td>三大流星群のひとつ「しぶんぎ座流星群」 1月3日深夜が見頃</td>
      <td>三大流星群のひとつ「しぶんぎ座流星群」 1月3日深夜が見頃2022/01/01 20:0…</td>
      <td>ポジティブ</td>
      <td>0.906668</td>
    </tr>
    <tr>
      <th>31</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444198</td>
      <td>「SUMMER SONIC 2022」8月20日、21日に東京と大阪で開催へ</td>
      <td>音楽フェス『SUMMER SONIC 2022』が今年8月20、21日に東京と大阪で開催さ…</td>
      <td>ポジティブ</td>
      <td>0.895463</td>
    </tr>
    <tr>
      <th>27</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446129</td>
      <td>Amazonプライムビデオ1月の新作：「約束のネバーランド」「今日から俺は!!劇場版」「銀魂...</td>
      <td>幅広い作品ラインアップが魅力のAmazon Prime Videoでは、毎月、新作の配信…</td>
      <td>ポジティブ</td>
      <td>0.886706</td>
    </tr>
    <tr>
      <th>21</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444375</td>
      <td>「ジャニーズカウントダウン」でサプライズ、相葉雅紀が登場</td>
      <td>ジャニーズ事務所所属のアイドルグループが多数出演する年越しライブ「ジャ…</td>
      <td>ポジティブ</td>
      <td>0.886215</td>
    </tr>
    <tr>
      <th>0</th>
      <td>https://news.livedoor.com/topics/detail/214452...</td>
      <td>21445293</td>
      <td>「うる星やつら」が36年ぶりにTVアニメ化 フジ・ノイタミナ枠で</td>
      <td>フジテレビの深夜アニメ枠「ノイタミナ」で放送されるとのこと</td>
      <td>ポジティブ</td>
      <td>0.877783</td>
    </tr>
    <tr>
      <th>9</th>
      <td>https://news.livedoor.com/topics/detail/214456...</td>
      <td>21445695</td>
      <td>大阪城とUSJを結ぶ遊覧船 2023年春にも定期運航が始まる見通し</td>
      <td>23年春に大阪城公園の船着き場が完成する見込みで、これを活用して運航する</td>
      <td>ポジティブ</td>
      <td>0.876632</td>
    </tr>
    <tr>
      <th>19</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446116</td>
      <td>仮面ライダー図鑑、期間限定で“寅年”仕様に　タイガにオーズにゼロワン　ジオウは“平成34年”に</td>
      <td>仮面ライダーシリーズ公式ポータルサイトの人気コンテンツ「仮面ライダー…</td>
      <td>ポジティブ</td>
      <td>0.872462</td>
    </tr>
    <tr>
      <th>4</th>
      <td>https://news.livedoor.com/topics/detail/214453...</td>
      <td>21445372</td>
      <td>餅がのどに詰まったら4分勝負、やるべき3つの対処法 NG行動は？</td>
      <td>人間は窒息すると4分で脳に影響が出るため、その場での対処が重要だという</td>
      <td>ポジティブ</td>
      <td>0.862354</td>
    </tr>
    <tr>
      <th>23</th>
      <td>https://news.livedoor.com/topics/detail/214462...</td>
      <td>21446237</td>
      <td>ニューイヤー駅伝で創部51年目のホンダが初優勝 6区で逆転首位</td>
      <td>2区23位に落ちたが、6区でトップになり4時間51分04秒の記録で優勝した</td>
      <td>ポジティブ</td>
      <td>0.861704</td>
    </tr>
    <tr>
      <th>36</th>
      <td>https://news.livedoor.com/topics/detail/214442...</td>
      <td>21444220</td>
      <td>12星座×血液型で見る2022年最強運ランキング 1位〜48位発表</td>
      <td>1位は魚座×AB型で、思い切ったチャレンジが幸運を呼び寄せそう、とのこと</td>
      <td>ポジティブ</td>
      <td>0.861353</td>
    </tr>
    <tr>
      <th>25</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444170</td>
      <td>映画「キングダム2」正式タイトル発表、スーパーティザーPVも解禁</td>
      <td>2022年のはじまりとともに、実写映画『キングダム』の続編・パート2のタ…</td>
      <td>ポジティブ</td>
      <td>0.850540</td>
    </tr>
    <tr>
      <th>1</th>
      <td>https://news.livedoor.com/topics/detail/214463...</td>
      <td>21446393</td>
      <td>「コミケ」の献血に長蛇の列で大盛況「オタクの鑑」など感心の声</td>
      <td>東京都赤十字血液センターはTwitterで長蛇の列の様子を掲載し、感謝</td>
      <td>ポジティブ</td>
      <td>0.848410</td>
    </tr>
    <tr>
      <th>14</th>
      <td>https://news.livedoor.com/article/detail/21445...</td>
      <td>21445327</td>
      <td>23歳差の”恋心” ダニエル・ラドクリフがヘレナ・ボナム・カ&amp;#12540;タ&amp;#12540...</td>
      <td>俳優のダニエル・ラドクリフ（３２）は、「ハリ&amp;#12540;・ポッタ&amp;#12540;…</td>
      <td>ポジティブ</td>
      <td>0.836254</td>
    </tr>
    <tr>
      <th>7</th>
      <td>https://news.livedoor.com/topics/detail/214467...</td>
      <td>21446778</td>
      <td>身長や挙動テスト 経験者が語る「逃走中」のハンターの採用条件</td>
      <td>ハンターの第1条件は身長180センチ以上で、モデルによく声がかかるという</td>
      <td>ポジティブ</td>
      <td>0.836040</td>
    </tr>
    <tr>
      <th>17</th>
      <td>https://news.livedoor.com/article/detail/21447...</td>
      <td>21447460</td>
      <td>YouTube『Johnny′s Gaming Room』が本格始動　“参戦”メンバー13人を発表</td>
      <td>ジャニーズのゲーム好きが集うYouTubeチャンネル『Johnny's Gaming Room…</td>
      <td>ポジティブ</td>
      <td>0.832476</td>
    </tr>
    <tr>
      <th>35</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444428</td>
      <td>JR山陰線で倒木 約90人が車中泊</td>
      <td>12月31日深夜、京都府内のJR山陰線で特急「きのさき17号」など列車3本が…</td>
      <td>ポジティブ</td>
      <td>0.829401</td>
    </tr>
    <tr>
      <th>2</th>
      <td>https://news.livedoor.com/topics/detail/214474...</td>
      <td>21447477</td>
      <td>「逃走中」HIKAKINが逃走成功で150万円獲得 視聴者から祝福の声</td>
      <td>賞金である150万円を獲得することとなり「やった〜！」と歓喜</td>
      <td>ポジティブ</td>
      <td>0.826164</td>
    </tr>
    <tr>
      <th>32</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446689</td>
      <td>『土方のスマホ』“正月の陣”放送決定　賀来賢人が坂本龍馬役</td>
      <td>俳優の窪田正孝が土方歳三を演じ、昨年9月から10月にかけてNHK総合で放送…</td>
      <td>ポジティブ</td>
      <td>0.825295</td>
    </tr>
    <tr>
      <th>29</th>
      <td>https://news.livedoor.com/topics/detail/214466...</td>
      <td>21446653</td>
      <td>JR松江駅で女性がけが 刃物を手にした男を現行犯逮捕</td>
      <td>警察が現場に駆けつけたところ、けがをしている女性を発見</td>
      <td>ポジティブ</td>
      <td>0.816801</td>
    </tr>
    <tr>
      <th>11</th>
      <td>https://news.livedoor.com/topics/detail/214466...</td>
      <td>21446661</td>
      <td>「笑点」5年7カ月ぶりの新メンバーは桂宮治 正月特番内で発表</td>
      <td>大喜利新メンバーとして、桂宮治が加わることが発表された</td>
      <td>ポジティブ</td>
      <td>0.796677</td>
    </tr>
    <tr>
      <th>22</th>
      <td>https://news.livedoor.com/topics/detail/214454...</td>
      <td>21445446</td>
      <td>滋賀の県道高架下で焼けた遺体発見 仰向けの状態で死後数日が経過</td>
      <td>遺体は仰向けの状態で、死後数日経過しているという</td>
      <td>ポジティブ</td>
      <td>0.781807</td>
    </tr>
    <tr>
      <th>8</th>
      <td>https://news.livedoor.com/topics/detail/214474...</td>
      <td>21447412</td>
      <td>「ニューイヤー駅伝」優勝旗は授与されず 2021年王者の富士通が紛失</td>
      <td>表彰式では優勝旗の授与はなく、優勝杯や賞状などがHondaに贈られた</td>
      <td>ポジティブ</td>
      <td>0.772829</td>
    </tr>
    <tr>
      <th>10</th>
      <td>https://news.livedoor.com/topics/detail/214455...</td>
      <td>21445513</td>
      <td>鉛筆全体でHBの売り上げが激減 書写以外の小学校の授業ではBや2B推奨</td>
      <td>1999年はHBが43％、2Bが22％だったが、2019年には2Bが51％、HBが20％に</td>
      <td>ポジティブ</td>
      <td>0.743005</td>
    </tr>
  </tbody>
</table>
</div>

#### 6. ネガティブ判定のニュース記事をスコア（ネガティブ度合い）の高い順にソートして表示

```python
df[df['label'] == 'ネガティブ'].sort_values('score', ascending=False)
```

結果はこんな感じ。「ネガティブに判定されるのも納得」という印象。
感情分析器がポジティブ判定を出しがちなのか、お正月というタイミングなのか、ネガティブ判定のニュース記事は少ないような。。。

<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>url</th>
      <th>id</th>
      <th>title</th>
      <th>summary</th>
      <th>label</th>
      <th>score</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>18</th>
      <td>https://news.livedoor.com/article/detail/21444...</td>
      <td>21444511</td>
      <td>マルフォイ役で知られるトム・フェルトン 母親から禁止されたこと</td>
      <td>「ハリー・ポッター」シリーズのドラコ・マルフォイ役などで知られる俳優の…</td>
      <td>ネガティブ</td>
      <td>0.926198</td>
    </tr>
    <tr>
      <th>33</th>
      <td>https://news.livedoor.com/topics/detail/214463...</td>
      <td>21446317</td>
      <td>オミクロン株、千葉で初の市中感染か 2週間以内の海外渡航歴のない2人感染</td>
      <td>2人とも2週間以内の海外渡航歴などがないため、市中感染の疑いがあるという</td>
      <td>ネガティブ</td>
      <td>0.670254</td>
    </tr>
    <tr>
      <th>5</th>
      <td>https://news.livedoor.com/article/detail/21446...</td>
      <td>21446976</td>
      <td>都内で６人のどに餅詰まらせ搬送…２人死亡</td>
      <td>元日の１月１日、東京都内で６人が餅をのどに詰まらせて救急搬送され、この…</td>
      <td>ネガティブ</td>
      <td>0.652022</td>
    </tr>
    <tr>
      <th>16</th>
      <td>https://news.livedoor.com/article/detail/21445...</td>
      <td>21445030</td>
      <td>2022年の年明けを告げる　初日の出</td>
      <td>あけましておめでとうございます!2022年がスタートしました。太平洋側は晴…</td>
      <td>ネガティブ</td>
      <td>0.582705</td>
    </tr>
  </tbody>
</table>
</div>

# まとめ

公開されたBERTモデルを利用して、ニュース記事を感情分析する方法を紹介しました。
簡単に利用できるのにもかかわらず、その結果は想像以上に納得感のあるものと思いました。

[^1]: Open Resources【公開資源】https://www.nlp.ecei.tohoku.ac.jp/research/open-resources/
[^2]: 日本語評価極性辞書 http://www.cl.ecei.tohoku.ac.jp/Open_Resources-Japanese_Sentiment_Polarity_Dictionary.html
[^3]: PyTorch Release 20.11 https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel_20-11.html#rel_20-11