COTOHA でキーワードの抽出


COTOHA API Portal の使用例です。

参考ページ

APIリファレンス
キーワード抽出

青空文庫の新見南吉の赤い蝋燭からキーワードを抽出します。

ルビの除去には次のページのプログラムを使いました。
青空文庫からPythonで本文を取得したい

key_word.py
#! /usr/bin/python3
# -*- coding:utf-8 -*-
#
#   key_word.py
#
#                       Feb/22/2020
# ----------------------------------------------------------------------
import sys
import json
import requests
# ----------------------------------------------------------------------
from get_config import get_config_proc
from get_token import get_token_proc
# ----------------------------------------------------------------------
def file_to_str_proc(file_in):
    str_out = ""
    try:
        fp_in = open(file_in,encoding='utf-8')
        str_out = fp_in.read()
        fp_in.close()
    except Exception as ee:
        sys.stderr.write("*** error *** file_to_str_proc ***\n")
        sys.stderr.write(str (ee))
#
    return  str_out
# ----------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")

file_in = sys.argv[1]
doc = file_to_str_proc(file_in)
config = get_config_proc()
access_token = get_token_proc(config)
#
#
headers={
    "Content-Type": "application/json",
    "Authorization": "Bearer " + access_token
    }
#
data = {
    "document": doc,
    "type": "default"
    }

str_json = json.dumps(data)
url = config['DEVELOPER_API_BASE_URL'] + "v1/keyword"
try:
    rr=requests.post(url,headers=headers,data=str_json)
    dict_aa = json.loads(rr.text)
    llx = len(dict_aa['result'])
    sys.stderr.write("llx(result) = %d\n" % llx)
#
    for unit in dict_aa['result']:
        print(unit['form'],"\t",unit['score'])
except Exception as ee:
    sys.stderr.write("*** error *** in requests.post ***\n")
    sys.stderr.write(str(ee) + "\n")
#
sys.stderr.write("*** 終了 ***\n")
# ----------------------------------------------------------------------

get_config.py get_token.py はこちら
COTOHA API で構文解析

akai_rousoku.txt
山から里の方へ遊びにいった猿が一本の赤い蝋燭を拾いました。赤い蝋燭は沢山あるものではありません。それで猿は赤い蝋燭を花火だと思い込んでしまいました。
 猿は拾った赤い蝋燭を大事に山へ持って帰りました。
 山では大へんな騒になりました。何しろ花火などというものは、鹿にしても猪にしても兎にしても、亀にしても、鼬にしても、狸にしても、狐にしても、まだ一度も見たことがありません。その花火を猿が拾って来たというのであります。
「ほう、すばらしい」
「これは、すてきなものだ」
 鹿や猪や兎や亀や鼬や狸や狐が押合いへしあいして赤い蝋燭を覗きました。すると猿が、
「危い危い。そんなに近よってはいけない。爆発するから」といいました。
 みんなは驚いて後込しました。
 そこで猿は花火というものが、どんなに大きな音をして飛出すか、そしてどんなに美しく空にひろがるか、みんなに話して聞かせました。そんなに美しいものなら見たいものだとみんなは思いました。
「それなら、今晩山の頂上に行ってあそこで打上げて見よう」と猿がいいました。みんなは大へん喜びました。夜の空に星をふりまくようにぱあっとひろがる花火を眼に浮べてみんなはうっとりしました。
 さて夜になりました。みんなは胸をおどらせて山の頂上にやって行きました。猿はもう赤い蝋燭を木の枝にくくりつけてみんなの来るのを待っていました。
 いよいよこれから花火を打上げることになりました。しかし困ったことが出来ました。と申しますのは、誰も花火に火をつけようとしなかったからです。みんな花火を見ることは好きでしたが火をつけにいくことは、好きでなかったのであります。
 これでは花火はあがりません。そこでくじをひいて、火をつけに行くものを決めることになりました。第一にあたったものは亀でありました。
 亀は元気を出して花火の方へやって行きました。だがうまく火をつけることが出来たでしょうか。いえ、いえ。亀は花火のそばまで来ると首が自然に引込んでしまって出て来なかったのでありました。
 そこでくじがまたひかれて、こんどは鼬が行くことになりました。鼬は亀よりは幾分ましでした。というのは首を引込めてしまわなかったからであります。しかし鼬はひどい近眼でありました。だから蝋燭のまわりをきょろきょろとうろついているばかりでありました。
 遂々猪が飛出しました。猪は全く勇しい獣でした。猪はほんとうにやっていって火をつけてしまいました。
 みんなはびっくりして草むらに飛込み耳を固くふさぎました。耳ばかりでなく眼もふさいでしまいました。
 しかし蝋燭はぽんともいわずに静かに燃えているばかりでした。

実行結果

$ ./key_word.py akai_rousoku.txt
*** 開始 ***
llx(result) = 5
猿      135.52966
蝋燭   83.9601
花火   78.08584
亀      43.078
火      42.81965
*** 終了 ***