[PYTHON] Als ich untersuchte, ob die COTOHA-API Mansai verstehen konnte, war dies vernünftig.

Einführung

Dieser Artikel wurde in Qiita x COTOHA API Present Plan eingegeben.

Was ist die COTOHA-API?

Dieser Service bietet Technologie zur Verarbeitung natürlicher Sprache und Spracherkennungs- / Synthesetechnologie, die die seit mehr als 40 Jahren von NTT Communications bereitgestellten Forschungsergebnisse der NTT-Gruppe nutzen, damit sie problemlos mit APIs verwendet werden können.

Die Verarbeitung natürlicher Sprache wie die syntaktische Analyse und die Extraktion eindeutiger Ausdrücke sowie die charakteristische "Zusammenfassung" und "Benutzerattributschätzung" können ebenfalls verwendet werden.

■ Serviceeinführungslink https://api.ce-cotoha.com/contents/index.html

Was ist Milk Boy?

Milk Boy ist eine männliche Lachkombination von Yoshimoto Kogyo. Im Juli 2007 gegründet. 2019 M-1-Champion.

Auf der ersten Stufe der M-1, basierend auf dem Thema "Cornflakes", werden wir in einer leichten Interaktion die Merkmale vorstellen, die wahrscheinlich Cornflakes entsprechen und die wahrscheinlich nicht anwendbar sind. Aufgezeichnet "681 Punkte", die höchste Punktzahl aller Zeiten! Klicken Sie hier für Material

=== Ausgelassen, weil es nicht mit Technologie zusammenhängt ===

Ich habe untersucht

Es ist endlich das Hauptthema. Das Genie dieses Milchjungen erzeugt Lachen, indem es "Eigenschaften, die wahrscheinlich auf das Objekt zutreffen" und "Eigenschaften, die wahrscheinlich nicht zutreffen" wiederholt. Vielleicht kann dieser Manga von AI verstanden werden, das heißt von COTOHA, der gut darin ist, Bedeutung zu lesen.

** Lassen Sie uns zuerst authentifizieren ** ・ Die COTOHA-API verfügt über einen kostenlosen Entwicklerplan. Registrieren Sie sich daher zuerst. ・ Beziehen Sie die Client-ID und das Client-Geheimnis vom Portal

#COTOHA API-Authentifizierung mit Python

import requests,json

def authorization():
    cotoha_url_auth = "https://api.ce-cotoha.com/v1/oauth/accesstokens"
    headers = {"Content-Type" : "application/json"}
    data = {
        "grantType" : "client_credentials",
        "clientId" : cotoha_clientId,          #Benutzerspezifische Werte hier
        "clientSecret" : cotoha_clientSecret   #Benutzerspezifische Werte hier
    }

    res = requests.post(cotoha_url_auth, headers=headers, json=data)
    token = json.loads(res.text)["access_token"]
    #print("COTOHA API authentifiziert")
    
    return token #Geben Sie die Zeichenfolge des Zugriffstokens zurück und beenden Sie den Vorgang

** Versuchen Sie es mit der Ähnlichkeitsbeurteilungs-API ** Dieses Mal werde ich ** "Ähnlichkeitsbeurteilung" ** in der COTOHA-API verwenden

Was ist ein Ähnlichkeitsurteil? Eine RESTful-API, die die semantische Ähnlichkeit zwischen zwei Anweisungen berechnet. Die Ähnlichkeit wird im Definitionsbereich von 0-1 ausgegeben und je näher sie an 1 liegt, desto größer ist die Ähnlichkeit zwischen den beiden Sätzen. Da die Ähnlichkeit anhand der semantischen Informationen der im Satz enthaltenen Wörter berechnet wird, kann die Ähnlichkeit zwischen Texten mit unterschiedlichen Wörtern geschätzt werden.

#Ähnlichkeitsurteil
def similar(sentence1, sentence2, token):
    url =  "https://api.ce-cotoha.com/api/dev" + "/nlp/v1/similarity"
    header = {
        "Content-Type" : "application/json;charset=UTF-8",
        "Authorization" : "Bearer "  +token
    }
    data = {
        "s1" : sentence1,
        "s2" : sentence2
    }
    req = requests.post(url, headers = header, json = data)
    return req.text

Verwenden Sie für "Token" die Ausgabe des Zugriffstokens, die von der vorherigen Authentifizierung ausgegeben wurde. Wenn Sie zwei Sätze nebeneinander stellen und anfordern, wird die Ähnlichkeit zurückgegeben.

Beispiel: ("Ich kann gut trainieren", "Ich liebe Sport") ⇒ Ähnlichkeit: {'Ergebnis': {'Punktzahl': 0,94150746}, 'Status': 0, 'Nachricht': 'OK'}

Obwohl es fast keine gleichen Wörter gibt, ist diese Übereinstimmungsrate ...! Toll!

** Jetzt ist es Zeit, die Cornflakes zu beurteilen ** Die Einführung ist länger geworden, aber indem Sie die beiden oben genannten kombinieren und leicht verarbeiten, Ich habe eine Funktion erstellt, um zu beurteilen, ob der Eingabesatz eine Kegelflocke ist.

#Kegelflockenfunktion
def cornflake(sentence, obj = "Cornflakes"):
    try: 
        token = authorization()
        sim = float(json.loads(similar(obj, sentence, token))["result"]["score"])
        if sim>0.4:
            rep = "Es," + obj + "Ist es nicht!(Ähnlichkeitsgrad:{:.2f})".format(sim)
        else:
            rep = "Hona" + obj + "(Ähnlichkeit):{:.2f})".format(sim)
    except:
        rep = "Während einer API-Anforderung ist ein Fehler aufgetreten"
    return rep

Ich machte. Wenn Sie das Argument "obj" angeben, können Sie vergeblich andere als Kegelflocken beurteilen.

** Untersuchung starten **

** Hinweis: Ab hier ist die Geschichte von "Milk Boy" enthalten. Bitte seien Sie vorsichtig! !! ** ** **

Ich werde gemeinsam über Ihr Lieblingsfrühstück nachdenken. Sagen Sie mir bitte, welche Funktionen Sie gesagt haben.

Cornflake (" süß und knusprig und mit Milch essen ")

Ausgabe: 'Das sind Cornflakes! (Ähnlichkeit: 0,74)'

cornflake (" Oh, das ist gut für die letzte Mahlzeit, bevor du stirbst. ")

Ausgabe: 'Hona Cornflakes (Ähnlichkeit: 0,25)'

Cornflake (" Ich weiß nicht, warum das Fünfeck des Ernährungsgleichgewichts so breit ist. ")

Ausgabe: 'Hona Cornflakes (Ähnlichkeit: 0,16)'

cornflake (" Ich kann das Gesicht des Produzenten nicht sehen, wenn ich esse. ") Ausgabe: 'Das sind Cornflakes! (Ähnlichkeit: 0,56)'

Cornflake (" Okan sagt Chinesisch im Genre. ")

Ausgabe: 'Hona Cornflakes (Ähnlichkeit: 0,15)'

Ergebniskommentar

** Ich fühle mich wie Cornflakes. .. .. ** ** ** Das diesmal verwendete Ähnlichkeitsurteil ist nur * "Bestimmen der semantischen Ähnlichkeit zwischen Sätzen" , aber es * * Bestimmen, ob es die Eigenschaften des Objekts aufweist oder nicht ". Aber es scheint ** faire Genauigkeit ** zu sein. (Ich habe verschiedene andere Dinge als die oben genannten ausprobiert, aber insgesamt war die Ähnlichkeit eher gering.

Wenn Sie darüber nachdenken, bedeuten "Cornflakes" und "breites Fünfeck des Nährstoffgleichgewichts" nicht dasselbe, also ist das richtig. .. ..

Ochi

cornflake (" Es scheint ein Unternehmen zu geben, das starke Dienstleistungen auf Japanisch anbietet "," NTT ")

Ausgabe: 'Das ist NTT! (Ähnlichkeit: 0,44)'

Vielen Dank.

Recommended Posts

Als ich untersuchte, ob die COTOHA-API Mansai verstehen konnte, war dies vernünftig.
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, das Telefon klingeln zu lassen, als es auf dem IoT-Post veröffentlicht wurde
Ich habe versucht, die Syntax zu bewerten, die mit der COTOHA-API zu humorvoll und humorvoll war.
Als ich die von Django generierte Abfrage überprüfte, wurde sie in großer Anzahl ausgegeben
Wenn ich das Webapi crawle, das beim Rendern angezeigt wird, wurde es mit CORS abgespielt
Was ich getan habe, als ich wütend war, es mit der Option enable-shared einzufügen
Eine Geschichte, als ich IntelliJ unter Linux verwendete und kein Japanisch eingeben konnte
Pythons lru_cache war langsam (ich habe es untersucht, weil ich es falsch verstanden habe)
Als ich den AtCoder Beginner Contest ausprobierte, war es ein schreckliches Ergebnis, also schaue ich zurück
[Erste COTOHA-API] Ich habe versucht, die alte Geschichte zusammenzufassen
Ich habe es in der Sprache Go geschrieben, um das SOLID-Prinzip zu verstehen
PyTorchs Buch war schwer zu verstehen, deshalb habe ich es ergänzt