忙しい人のための自然言語処理

#忙しい人のための概要
[オレ プログラム ウゴカス オマエ ゲンシジン ナル](https://qiita.com/Harusugi/items/f499e8707b36d0f570c4)の記事に触発されて、言語処理を試してみました。
いにしえのネタである「忙しい人向けシリーズ」[^1]が好きなので、[COTOHA API](https://api.ce-cotoha.com/contents/index.html)の要約APIを使って、有名どころの歌を忙しい人向けにしてみました。

※注意書き
以下コードの出力結果(黒背景部分)に要約された歌詞が出てきますが、著作権法第32条に従い言語処理の研究目的で使用しています。(要約APIの仕様上、適宜「。」で区切っています(後述))
また、著作権法48条に従って、曲のタイトルと作詞者名を記事下部に明記しています。

###例: 忙しい人のための『粉雪』[^2]

```bash
$ python3 youyaku.py < konayuki.txt
ララライ。粉雪。心まで白く染められたなら。
```
さすがに「来ねぇ」とかになったりはしないようですが、出現回数が多そうなところが出てて納得感(?)ありますね！

#環境
Python 3.6.9

#実装
COTOHA APIの[要約API](https://api.ce-cotoha.com/contents/reference/apireference.html#summarization)を利用して3行に要約します。
コードはほとんど[ゲンシジン](https://qiita.com/Harusugi/items/f499e8707b36d0f570c4)の記事を参考に書いていますが、BASE_URL書き換えたり、要約用にパラメータ変えたりしています。また、歌詞をそのまま与えると全然要約してくれなかったので、改行など歌詞の所々で適宜「。」を入れています。

##コード

<details><summary>ここをクリックすると展開します。</summary><div>

```python:youyaku.py

import requests
import json
import sys

BASE_URL = "https://api.ce-cotoha.com/api/dev/"
CLIENT_ID = "COTOHA APIで取得したIDを入力"
CLIENT_SECRET = "COTOHA APIで取得したパスワードを入力"


def auth(client_id, client_secret):
    token_url = "https://api.ce-cotoha.com/v1/oauth/accesstokens"
    headers = {
        "Content-Type": "application/json",
        "charset": "UTF-8"
    }

    data = {
        "grantType": "client_credentials",
        "clientId": client_id,
        "clientSecret": client_secret
    }
    r = requests.post(token_url,
                      headers=headers,
                      data=json.dumps(data))
    return r.json()["access_token"]


def summary(document, access_token, sent_len):
    base_url = BASE_URL
    headers = {
        "Content-Type": "application/json",
        "charset": "UTF-8",
        "Authorization": "Bearer {}".format(access_token)
    }
    data = {
        "document": document,
        "sent_len": sent_len
    }
    r = requests.post(base_url + "nlp/beta/summary",
                      headers=headers,
                      data=json.dumps(data))
    return r.json()


if __name__ == "__main__":
    document = "歌詞をここに記載"
    args = sys.argv
    if len(args) >= 2:
        document = str(args[1])

    access_token = auth(CLIENT_ID, CLIENT_SECRET)
    summary_document = summary(document, access_token, 3)
    result_list = list()
    for chunks in summary_document['result']:
      result_list.append(chunks)

    print(''.join(result_list))

```
</div>

#結果

『音頭「水戸黄門」あゝ人生に涙あり』[^3]

```bash
$ python3 youyaku.py < mitokomon.txt
泣くのがいやならさあ歩け。人生涙と笑顔あり。何かを求めて生きようよ。
```

『ドラえもんのうた』[^4]

```bash
$ python3 youyaku.py < doraemon.txt
みんなみんなみんな かなえてくれる。アンアンアン。とってもだいすきドラえもん。
```

『それが大事』[^5]

```bash
$ python3 youyaku.py < soregadaiji.txt
負けない事・投げ出さない事・逃げ出さない事・信じ抜く事。駄目になりそうな時。それが一番大事。
```

『ガッチャマンの歌』[^6]

```bash
$ python3 youyaku.py < gachaman.txt
ガッチャマン。飛べ。行け。
```

『摩訶不思議アドベンチャー』[^7]

```bash
$ python3 youyaku.py < makafushigi.txt
DRAGONBALL。try。fly。
```

『勇者王誕生!』[^8]

```bash
$ python3 youyaku.py < yushaou.txt
ガガガッ。ガオガイガー!。ガガガガッ。
```

#まとめ
様々な名曲を要約してみました。
良い歌は短くしても深い

[^1]: [ニコニコ大百科:忙しい人向けシリーズ](https://dic.nicovideo.jp/a/%E5%BF%99%E3%81%97%E3%81%84%E4%BA%BA%E5%90%91%E3%81%91%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA)
[^2]: 『粉雪』作詞:藤巻亮太
[^3]: 『音頭「水戸黄門」あゝ人生に涙あり』作詞:山上路夫
[^4]: 『ドラえもんのうた』作詞:楠部工
[^5]: 『それが大事』作詞:立川俊之
[^6]: 『ガッチャマンの歌』作詞:竜の子プロダクション文芸部
[^7]: 『摩訶不思議アドベンチャー』作詞:森由里子
[^8]: 『勇者王誕生!』作詞:米たにヨシトモ