LoginSignup
2215
809

More than 3 years have passed since last update.

オレ プログラム ウゴカス オマエ ゲンシジン ナル

Last updated at Posted at 2019-02-12

ガイヨウ

オレ オマエ ゲンシジンスル プログラム カイタ
ゲンシジン ジョシ ツカワナイ
ゲンゴショリ スル ジョシ ケス
ゲンシジン カンジ ヒラガナ シラナイ
ゼンブ カタカナ スル

サンプル

$ python3 genshijin.py "大いなる力には大いなる責任が伴う"
オオイナル チカラ オオイナル セキニン トモナ ウ

カンキョウ

マック
パイソン
コトハ アピ

ジッソウ

オレ コウブン カイセキ スル
ジョシ ケス カタカナ スル
オマエ ゲンシジン ナル
トモダチ

コード

オマエ ココ クリック テンカイ スル
genshijin.py

import requests
import json
import sys

BASE_URL = "https://api.ce-cotoha.com/api/dev/"
CLIENT_ID = "オマエ アイディ イレル"
CLIENT_SECRET = "オマエ シークレット イレル"


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 parse(sentence, access_token):
    base_url = BASE_URL
    headers = {
        "Content-Type": "application/json",
        "charset": "UTF-8",
        "Authorization": "Bearer {}".format(access_token)
    }
    data = {
        "sentence": sentence,
        "type": "default"
    }
    r = requests.post(base_url + "nlp/v1/parse",
                      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)
    parse_document = parse(document, 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"])

    print(' '.join(result_list))

ライブラリ ツカウ コード カンタン ナル

オマエ ココ クリック テンカイ スル
genshi.py
from cotoha_nlp.parse import Parser

parser = Parser("オマエ アイディ",
  "オマエ シークレット",
  "https://api.ce-cotoha.com/api/dev/nlp",
  "https://api.ce-cotoha.com/v1/oauth/accesstokens"
)
s = parser.parse(input())

print(" ".join([token.kana for token in s.tokens if token.pos not in  ["格助詞","連用助詞","引用助詞","終助詞"]]))

ツカウ トキ ライブラリ ヒツヨウ

$ pip install git+https://github.com/obilixilido/cotoha-nlp.git
$ echo "私は今日母を焼き肉にした" | python genshi.py
ワタシ キョウ ハハ ヤキニク シ タ

ケッカ

$ python3 genshijin.py "菜の花や月は東に日は西に"
ナノハナ ツキ ヒガシ ヒ ニシ
$ python3 genshijin.py "天は人の上に人を造らず人の下に人を造らず"
テン ヒト ウエ ヒト ツク ラ ズ ヒト シタ ヒト ツク ラ ズ
$ python3 genshijin.py "雄弁は銀沈黙は金"
ユウベン ギン チンモク カネ
$ python3 genshijin.py "人民の人民による人民のための政治"
ジンミン ジンミン ジンミン タメ セイジ
$ python3 genshijin.py "母ちゃんがタイ人と結婚して苗字がルーマチャイ・ホーマチャイになった"
カアチャン タイ ジン ケッコン シ テ ミョウジ ルーマチャイホーマチャイ ナ ッ タ

マトメ

ミンナ ゲンシジン ナッタ
トモダチ






オマケ

漢字……残ス……。
我……魏延……ナル……!
$ python3 gien.py "我は劉備の夢を叶えたい!"
我……劉備……夢……叶エ……タイ……!

クリック……展開……スル……。
gien.py
import requests
import json
import sys

BASE_URL = "https://api.ce-cotoha.com/api/dev/nlp/"
CLIENT_ID = "我……アイディ……入レル"
CLIENT_SECRET = "シークレット……入レル……!"


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 parse(sentence, access_token):
    base_url = BASE_URL
    headers = {
        "Content-Type": "application/json",
        "charset": "UTF-8",
        "Authorization": "Bearer {}".format(access_token)
    }
    data = {
        "sentence": sentence,
        "type": "default"
    }
    r = requests.post(base_url + "v1/parse",
                      headers=headers,
                      data=json.dumps(data))
    return r.json()

def hira_to_kata(strj):
    return "".join([chr(ord(ch) + 96) if ("ぁ" <= ch <= "ん") else ch for ch in strj])

if __name__ == "__main__":
    document = "我は劉備の夢を叶えたい"
    args = sys.argv
    if len(args) >= 2:
        document = str(args[1])

    access_token = auth(CLIENT_ID, CLIENT_SECRET)
    parse_document = parse(document, 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(hira_to_kata(token["form"]))


    print('……'.join(result_list))


2215
809
88

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
2215
809