[PYTHON] Ich habe versucht, die COTOHA-API zu berühren

Einführung

Artikel mit COTOHA API, einschließlich Kotoha Api Ich habe viel gesehen, also habe ich beschlossen, es zu berühren, während ich mich darauf bezog. Sie benötigen ein Konto, um die API verwenden zu können. Wenn Sie interessiert sind, erstellen Sie bitte eines. (Ich konnte es in kürzerer Zeit verwenden.) In diesem Artikel verwenden wir diese API, um das Ergebnis der morphologischen Analyse zu erhalten.

Zunächst die Authentifizierung

import requests
import json

BASE_URL = "https://api.ce-cotoha.com/api/dev/nlp/"
CLIENT_ID = "CLIENT_ID" #Geben Sie die ausgestellte ID ein
CLIENT_SECRET = "CLIENT_SECRET" #Geben Sie das ausgegebene Geheimnis ein


#Zugriffstoken erhalten
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"]


if __name__ == "__main__":
    access_token = auth(CLIENT_ID, CLIENT_SECRET)
    # print(access_token)

Ich frage mich, ob Sie das Zugriffstoken ausgeben möchten (vorerst auskommentiert), aber Sie können die API aufrufen, indem Sie das Token authentifizieren und abrufen.

Morphologische Analyse (Syntaxanalyse)

import requests
import json
import sys

BASE_URL = "https://api.ce-cotoha.com/api/dev/nlp/"
CLIENT_ID = "CLIENT_ID"  #Geben Sie die ausgestellte ID ein
CLIENT_SECRET = "CLIENT_SECRET"  #Geben Sie das ausgegebene Geheimnis ein


#Zugriffstoken erhalten
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"]


#Morphologische Analyse
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()


if __name__ == "__main__":
    document = "Prüfung"
    args = sys.argv
    if len(args) >= 2:
        document = str(args[1])

    access_token = auth(CLIENT_ID, CLIENT_SECRET)
    parse_document = parse(document, access_token)
    print(parse_document)

Diesmal habe ich die Syntaxanalyse-API verwendet, aber wenn sie unter [hier] verfügbar ist (https://api.ce-cotoha.com/contents/reference/apireference.html#parsing), können Sie sie sofort verwenden. Ich werde.

Lauf

python parse.py ich bin ein Vogel

Ergebnis

{'result': [{'chunk_info': {'id': 0, 'head': 1, 'dep': 'D', 'chunk_head': 0, 'chunk_func': 1, 'links': []}, 'tokens': [{'id': 0, 'form': 'ich', 'kana': 'ich', 'lemma': 'ich', 'pos': 'Substantiv', 'features': ['代Substantiv'], 'dependency_labels': [{'token_id': 1, 'label': 'case'}], 'attributes': {}}, {'id': 1, 'form': 'Ist', 'kana': 'C.', 'lemma': 'Ist', 'pos': 'Konsekutivassistent', 'features': [], 'attributes': {}}]}, {'chunk_info': {'id': 1, 'head': -1, 'dep': 'O', 'chunk_head': 0, 'chunk_func': 1, 'links': [{'link': 0, 'label': 'aobject'}], 'predicate': []}, 'tokens': [{'id': 2, 'form': 'Vogel', 'kana': 'Vogel', 'lemma': 'Vogel', 'pos': 'Substantiv', 'features': [], 'dependency_labels': [{'token_id': 0, 'label': 'nmod'}, {'token_id': 3, 'label': 'cop'}], 'attributes': {}}, {'id': 3, 'form': 'ist', 'kana': 'Tod', 'lemma': 'ist', 'pos': 'Beurteilung', 'features': ['halt'], 'attributes': {}}]}], 'status': 0, 'message': ''}

abschließend

Das Erhalten eines Kontos verlief reibungslos und es war bequem, es sofort zu verwenden. Die morphologische Analyse ist ein Bereich von persönlichem Interesse, den ich in der tatsächlichen Arbeit erleben kann. Derzeit registriere ich mich kostenlos, also für Entwickler, aber ich interessiere mich auch für das Fachbegriff-Wörterbuch und die Erweiterungen von für Enterprise. Daher möchte ich es gerne berühren, wenn sich eine Gelegenheit ergibt. Ich würde gerne etwas mit der COTOHA-API machen, aber ich kann mir keine Ideen einfallen lassen, weil ich nicht die Kreativität habe ... Ich möchte etwas posten, sobald ich daran denken kann.

Recommended Posts

Ich habe versucht, die COTOHA-API zu berühren
Ich habe Teslas API berührt
[Erste COTOHA-API] Ich habe versucht, die alte Geschichte zusammenzufassen
jupyter ich habe es berührt
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, eine Quip-API zu erstellen
Ich habe die Naro-Roman-API 2 ausprobiert
Ich habe versucht, Python zu berühren (Installation)
Ich habe die neuartige API von Naruro ausprobiert
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, die COTOHA-API zu berühren
Spielen Sie mit Dajare mithilfe der COTOHA-API
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, die Syntax zu bewerten, die mit der COTOHA-API zu humorvoll und humorvoll war.
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe eine Web-API erstellt
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich habe versucht, die BigQuery-Speicher-API zu verwenden
Ich habe versucht, die COTOHA-API zu verwenden (es gibt auch Code auf GitHub).
Ich habe versucht zu debuggen.
Ich habe versucht, die Qiita-API von Anfang an zu aktivieren
Ich habe versucht, beim Trocknen der Wäsche zu optimieren
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, Pythons GUI-Bibliothek "PySimple GUI" zu berühren.
Qiita Job Ich habe versucht, den Job zu analysieren
LeetCode Ich habe versucht, die einfachen zusammenzufassen
Ich habe versucht, das Problem des Handlungsreisenden umzusetzen
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Mit COTOHA habe ich versucht, den emotionalen Verlauf des Laufens von Meros zu verfolgen.
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe versucht, PredNet zu lernen
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe versucht, das Spiel in der J League vorherzusagen (Datenanalyse)
Ich habe versucht, SVM zu organisieren.
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, PCANet zu implementieren
Ich habe versucht, die Qiita-API zu berühren
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
Ich habe die Changefinder-Bibliothek ausprobiert!
Ich habe versucht, unsere Dunkelheit mit der Chatwork-API aufzudecken
Ich habe versucht, Pytest in die eigentliche Schlacht zu bringen
[Python] Ich habe versucht, die Top 10 der Lidschatten grafisch darzustellen
Ich habe versucht, Linux wieder einzuführen
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, SparseMatrix zusammenzufassen