#忙しい人のための概要
オレ プログラム ウゴカス オマエ ゲンシジン ナルの記事に触発されて、言語処理を試してみました。
いにしえのネタである「忙しい人向けシリーズ」1が好きなので、COTOHA APIの要約APIを使って、有名どころの歌を忙しい人向けにしてみました。
※注意書き
以下コードの出力結果(黒背景部分)に要約された歌詞が出てきますが、著作権法第32条に従い言語処理の研究目的で使用しています。(要約APIの仕様上、適宜「。」で区切っています(後述))
また、著作権法48条に従って、曲のタイトルと作詞者名を記事下部に明記しています。
###例: 忙しい人のための『粉雪』2
$ python3 youyaku.py < konayuki.txt
ララライ。粉雪。心まで白く染められたなら。
さすがに「来ねぇ」とかになったりはしないようですが、出現回数が多そうなところが出てて納得感(?)ありますね!
#環境
Python 3.6.9
#実装
COTOHA APIの要約APIを利用して3行に要約します。
コードはほとんどゲンシジンの記事を参考に書いていますが、BASE_URL書き換えたり、要約用にパラメータ変えたりしています。また、歌詞をそのまま与えると全然要約してくれなかったので、改行など歌詞の所々で適宜「。」を入れています。
##コード
ここをクリックすると展開します。
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))
#結果
『音頭「水戸黄門」あゝ人生に涙あり』3
$ python3 youyaku.py < mitokomon.txt
泣くのがいやならさあ歩け。人生涙と笑顔あり。何かを求めて生きようよ。
『ドラえもんのうた』4
$ python3 youyaku.py < doraemon.txt
みんなみんなみんな かなえてくれる。アンアンアン。とってもだいすきドラえもん。
『それが大事』5
$ python3 youyaku.py < soregadaiji.txt
負けない事・投げ出さない事・逃げ出さない事・信じ抜く事。駄目になりそうな時。それが一番大事。
『ガッチャマンの歌』6
$ python3 youyaku.py < gachaman.txt
ガッチャマン。飛べ。行け。
『摩訶不思議アドベンチャー』7
$ python3 youyaku.py < makafushigi.txt
DRAGONBALL。try。fly。
『勇者王誕生!』8
$ python3 youyaku.py < yushaou.txt
ガガガッ。ガオガイガー!。ガガガガッ。
#まとめ
様々な名曲を要約してみました。
良い歌は短くしても深い