LoginSignup
6
1

More than 5 years have passed since last update.

COTOHA APIを使ってゲンシジン語と現代人語の対訳JSONを作る

Last updated at Posted at 2019-02-17

必要なもの

  • COTOHA API
  • Python 3 (Python 3.7.2でやりました)
  • 現代人語で書かれたテキスト(1センテンスが1行になっているものが望ましい)

現代人語で書かれたテキスト

Meros.txt
佳き友は、気をきかせて教えてやった。
メロス、君は、まっぱだかじゃないか。
早くそのマントを着るがいい。

この記事では上の三行でやります。
もっと多くのテキストは「構文解析のために1センテンス1行のテキストを作る」で作ってます。

対訳JSONの作り方

  1. 上の三行をMeros.txtとして保存する。
  2. COTOHA APIのアカウントを取得する。
  3. オレ プログラム ウゴカス オマエ ゲンシジン ナル」中のコードをgenshijin.pyとし、CLIENT_ID, CLIENT_SECRETを記入して保存しておく。
  4. 次のコードを動かす
make_json.py

from genshijin import auth, parse, CLIENT_ID, CLIENT_SECRET
from json import dumps

f = open('Meros.txt')
lines = f.read()
f.close()

access_token = auth(CLIENT_ID, CLIENT_SECRET)
l = []

for line in lines.splitlines():
  parse_document = parse(line, access_token)
  result_list = list()
  for chunks in parse_document['result']:
    for token in chunks["tokens"]:
      if token["pos"] != "格助詞" and token["pos"] != "連用助詞" and token["pos"] != "引用助詞" and token["pos"] != "終助詞":
        result_list.append(token["kana"])

  d = {}
  d['utsusemi'] = line
  d['genshijin'] = ' '.join(result_list)
  l.append(d)

print (dumps(l, ensure_ascii=False, indent=2))

実行結果

[
  {
    "utsusemi": "佳き友は、気をきかせて教えてやった。",
    "genshijin": "ヨ キ トモ  キ キカセ テ オシエ テ ヤ ッ タ "
  },
  {
    "utsusemi": "「メロス、君は、まっぱだかじゃないか。",
    "genshijin": " メロス  キミ  マッパダカ "
  },
  {
    "utsusemi": "早くそのマントを着るがいい。",
    "genshijin": "ハヤク ソノ マント キ ル ガ イ イ "
  }
]

《走れメロス》全文の対訳JSON

https://dazai-cotoha.herokuapp.com/reading/json/Meros.jsonにあります。御自由にお使いください。

6
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1