[PYTHON] Lassen Sie uns die Verarbeitung natürlicher Sprache mit der COTOHA-API genießen

Genießen Sie die Verarbeitung natürlicher Sprache

"Verarbeitung natürlicher Sprache" macht Spaß! !!

Natürlich kann es schwierig sein, aber es macht mehr Spaß, es macht einfach Spaß.

Ich möchte darüber als Ausgangspunkt für solch einen Spaß schreiben.

Was möchten Sie mit der Verarbeitung natürlicher Sprache tun? Was kann ich tun?

Japanisch und andere Dinge, die normalerweise im Gespräch verwendet werden, werden "** natürliche Sprache **" genannt.

Bitte denken Sie, dass "** natürliche Sprache / Verarbeitung " " verarbeiten " soll, " natürliche Sprache **" in eine Form, die auf einem Computer einfach zu handhaben ist.

Zum Beispiel gibt es "** numerische Daten **", die für einen Computer leicht zu verstehen sind. Es kann numerisch ausgedrückt werden, z. B. "EC-Standortverkäufe", "Temperatur" und "Verkehrsaufkommen". "Numerische Daten" sind mit Formeln und Computern einfach zu handhaben, sodass Sie dies problemlos tun können.

...... Wenn Sie mit "** natürliche Sprache **", dh "Konversation", "SNS-Sätzen", "Roman" und "Texten", etwas Ähnliches tun könnten, würde es keinen Spaß machen. Ist es?

Zum Beispiel

――Versuchen Sie, die Texte Ihres Lieblingskünstlers und Ihres Lieblingsromanes (irgendwie) in Daten umzuwandeln und eine Grafik zu zeichnen ――Vergleichen Sie die Linien Ihres Lieblings-Mangas

Texte, Zeitungen, Wikipedia, Materialien für Ihren Lieblingsanime einstellen, alles ist in Ordnung. Wenn Sie also verschiedene Dinge mit "Text" als Material analysieren, finden Sie möglicherweise etwas Interessantes.

Ist es nicht irgendwie aufregend? Ich werde das machen! !!

** Ergänzung: Was ist wieder natürliche Sprache? ** ** ** "Natürliche Sprache" ist ein Begriff, der sich auf "natürliche (Entwicklungs-) Sprache" bezieht, die sich auf natürliche Weise für die alltägliche Kommunikation entwickelt hat. Andererseits gibt es auch eine "künstliche Sprache (formale Sprache)", und die vertraute ist die "Programmsprache". Dies ist eine Sprache, die "künstlich" für einen bestimmten Zweck geschaffen wurde. Der große Unterschied besteht darin, dass "natürliche Sprache" eine sehr vage Grammatik- und Wortbedeutung hat und verschiedene Ausdrücke zulässt, während "künstliche Sprache (formale Sprache)" eine klare Bedeutung und keine Mehrdeutigkeit hat. .. Diese "Mehrdeutigkeit" wird sehr weit gefasst, da sie vom Lebensstil und der Kultur jedes Menschen abhängt, aber das ist auch die Schwierigkeit und der Genuss der Verarbeitung natürlicher Sprache.

Verlassen wir uns auf die API!

Obwohl es interessant klingt, war "Verarbeitung natürlicher Sprache" nicht so einfach ... in der Vergangenheit ... ja, aber jetzt ist es einfach.

Es ist eine sehr praktische Welt, und wenn Sie sich auf eine externe API verlassen, können Sie mit einer Verknüpfung nur den unterhaltsamen Teil erreichen.

Zu den Diensten, die die Verarbeitung in natürlicher Sprache ermöglichen, gehören AWS, Azure und viele Cloud-Dienste. Dieses Mal verwenden wir jedoch die ** COTOHA API **, einen japanischen Hersteller, der in der japanischen Verarbeitung stark ist.

COTOHA API https://api.ce-cotoha.com/

Lass uns trotzdem spielen

Die Einführung war lang, aber es ist am besten, Spaß zu haben und zu spielen. Die Hauptsache, die ich in dieser Qiita vermitteln möchte, ist, Spaß zu haben.

Dieses Mal werde ich die Details der Programmierung weglassen. Ich schreibe in Python, das heutzutage sehr beliebt ist, damit es schnell und einfach gemacht werden kann. Kleben Sie es einfach auf Jupyter oder so und es wird funktionieren!

Registrieren Sie sich zunächst auf der COTOHA API-Website, um verschiedene Informationen zu erhalten.

Bitte geben Sie Ihr Bestes nur hier, indem Sie sich die Startanleitung unter https://api.ce-cotoha.com/contents/gettingStarted.html ansehen. Es ist etwas einfacher zu bedienen, Sie können es kostenlos testen und im Gegensatz zu anderen Cloud-Diensten müssen Sie von Anfang an keine Kreditkarte eingeben, damit Sie sicher spielen können.

Wenn Sie sich erfolgreich registrieren können, können Sie die für die Ausführung erforderlichen Informationen auf dem Startbildschirm des Kontos abrufen (siehe unten).

image.png

Der Rest ist einfach. Ersetzen Sie den ★ -Teil im folgenden Code durch den oben angegebenen Wert und führen Sie Python aus.

##############################
#★ Schreiben Sie mit der Zeichenfolge im Dashboard der COTOHA-API neu
##############################
api_base_url = 'https://api.ce-cotoha.com/api/dev/'
client_id = '************'
client_secret = '************'
access_token_url = 'https://api.ce-cotoha.com/v1/oauth/accesstokens'

##############################
#★ Geben Sie den Text ein, den Sie analysieren möchten
##############################
text = 'Es tut mir leid, dass ich geboren wurde.'

##############################
import requests
import json

#Bekomme Token
headers = { "Content-Type" : "application/json" }
data = { "grantType":"client_credentials", "clientId":client_id, "clientSecret":client_secret }
r = requests.post(access_token_url, data=json.dumps(data), headers=headers)
bearer_token = r.json()["access_token"]

#Benutzerattribute abrufen
headers = { "Content-Type" : "application/json;charset=UTF-8", "Authorization":"Bearer "+bearer_token }
data = { "sentence":text }
url = api_base_url + "nlp/v1/sentiment"
r = requests.post(url, data=json.dumps(data), headers=headers)

r.json()

Wenn Sie es versuchen, erhalten Sie das folgende Ergebnis.

{'message': 'OK',
 'result': {'emotional_phrase': [{'emotion': 'traurig', 'form': 'Es tut mir Leid'}],
  'score': 0.21369802583055023,
  'sentiment': 'Negative'},
 'status': 0}

Dies ist ein Beispiel mit der Emotionsanalyse-API von COTOHA.

** Emotionsanalyse ** Beurteilen Sie die Gefühle des Schriftstellers, wenn Sie einen Satz als positiv oder negativ schreiben. Es erkennt auch bestimmte Emotionen im Text, wie "angenehm" oder "überrascht".

Das Ergebnis der Analyse des berühmten Satzes "** Es tut mir leid, dass ich geboren wurde. **" wird wie folgt zusammengefasst.

emotion  : 'traurig'
sentiment: 'Negative'

Dieser eine Satz drückt ** Emotion ** von ** Traurigkeit ** aus und das Ergebnis ist, dass der gesamte Satz ** Negativ ** ist.

Ich konnte den unbeschreiblichen natürlichen Satz "Es tut mir leid, geboren zu werden" durch "Verarbeitung natürlicher Sprache" in benutzerfreundliche Daten umwandeln.

Dies ist ein Schritt in Richtung "Verarbeitung natürlicher Sprache".

Bitte versuchen Sie es, indem Sie verschiedene Sätze eingeben. Ich denke, das Ergebnis wird sehr interessant sein ...

Lass uns ein bisschen mehr spielen

Versuchen Sie nun, den folgenden Code auszuführen.

Als nächstes analysieren wir mehrere Texte gleichzeitig, indem wir mehrere Texte in Form eines Arrays in die öffnenden "Texte" einfügen.

Versuchen Sie es auf die gleiche Weise wie im vorherigen Beispiel.

##############################
#★ Schreiben Sie mit der Zeichenfolge im Dashboard der COTOHA-API neu
##############################
api_base_url = 'https://api.ce-cotoha.com/api/dev/'
client_id = '************'
client_secret = '************'
access_token_url = 'https://api.ce-cotoha.com/v1/oauth/accesstokens'

##############################
#★ Geben Sie den Text ein, den Sie analysieren möchten
##############################
texts = [
    'Ich bin eine Katze.',
    'Es gibt noch keinen Namen.',
    'Ich habe keine Ahnung, wo ich geboren wurde.',
    'Ich erinnere mich, wie ich an einem dunklen und feuchten Ort geweint habe.',
    'Ich habe hier zum ersten Mal Menschen gesehen.',
    'Außerdem hörte ich später, dass es die schlimmste Rasse von Menschen namens Shosei war.',
    'Dieser Student ist eine Geschichte, die uns manchmal fängt und kocht und isst.',
    'Allerdings habe ich damals nichts gedacht, also fand ich es nicht besonders beängstigend.',
    'Es fühlte sich einfach flauschig an, als es auf seine Handfläche gelegt und angehoben wurde.',
    'Es ist wahrscheinlich der Beginn eines sogenannten Menschen, dass er sich ein wenig auf seiner Handfläche beruhigt und das Gesicht des Schülers sieht.',
    'Das Gefühl, das ich zu dieser Zeit für seltsam hielt, bleibt bestehen. Das Gesicht, das mit den ersten Haaren verziert werden sollte, ist rutschig und sieht aus wie eine Medikamentendose.',
    'Danach habe ich viele Katzen getroffen, aber ich habe noch nie ein einziges Rad getroffen.',
    'Nicht nur das, die Mitte des Gesichts steht zu hervor.',
    'Dann blase ich manchmal Rauch aus dem Loch.',
    'Ich war so krank und sehr schwach.',
    'Ich habe endlich gelernt, dass dies eine Zigarette ist, die Menschen trinken.'
]

##############################
print("sentiment,score")

import requests
import json

#Bekomme Token
headers = { "Content-Type" : "application/json" }
data = { "grantType":"client_credentials", "clientId":client_id, "clientSecret":client_secret }
r = requests.post(access_token_url, data=json.dumps(data), headers=headers)
bearer_token = r.json()["access_token"]

#Benutzerattribute abrufen
headers = { "Content-Type" : "application/json;charset=UTF-8", "Authorization":"Bearer "+bearer_token }

for text in texts:
    data = { "sentence":text }
    url = api_base_url + "nlp/v1/sentiment"
    r = requests.post(url, data=json.dumps(data), headers=headers)
    r_json = r.json()
    print( "{},{}".format( r_json['result']['sentiment'], r_json['result']['score'] ) )

Wenn Sie es versuchen, erhalten Sie das folgende Ergebnis.

sentiment,score
Neutral,0.3753601806177662
Neutral,0.28184469062696865
Neutral,0.3836848869293042
Negative,0.39071316583764915
Neutral,0.3702709760069095
Negative,0.513838361667319
Neutral,0.47572556634191593
Negative,0.6752951176068892
Neutral,0.42154746899352424
Positive,0.14142126089599155
Neutral,0.4397035866256947
Neutral,0.3335122613499773
Neutral,0.36874320529074195
Neutral,0.3721780539113525
Negative,0.19851456636071463
Neutral,0.4334376882848198

Wenn Sie sich den Code ansehen, können Sie sich das vorstellen, aber dies ist eine Zusammenfassung der Ergebnisse der Analyse des Beginns von Natsume Sosekis "Ich bin eine Katze" Satz für Satz.

Sie können verschiedene Diagramme zeichnen, indem Sie die damit erzielten Ergebnisse in Excel lesen und damit spielen.

Zum Beispiel sieht es so aus. Es ist nicht interessant, einen zu haben, deshalb habe ich auch "Human Disqualification" von Osamu Tadashi aufgelistet.

Die Oberseite ist "Ich bin eine Katze" und die Unterseite ist "menschliche Disqualifikation".

image.png

Es ist interessant, sie so zu arrangieren ...

"Ich bin eine Katze" fährt mit dem Gefühl fort, zwischen ** negativ ** und ** neutral ** hin und her zu gehen, während "menschliche Disqualifikation" flattert. Die Bandbreite der Emotionen, die zwischen ** Negativ ** und ** Positiv ** hin und her gehen, ist erstaunlich.

Ich habe nur die ersten 10 Sätze gemacht, aber ich habe das Gefühl, dass ich mehr Dinge sehen kann, wenn ich dies in vollständigen Sätzen, nach Kapiteln versuche und jedes Werk und jeden Schriftsteller vergleiche.

Wenn es bis zu diesem Zeitpunkt in Daten konvertiert werden kann, können verschiedene statistische Daten analysiert werden, z. B. der "Durchschnitt" und die "Verteilung".

schließlich

Wie war es? Es scheint, dass Sie etwas tun können, das leichter Spaß macht, als Sie denken.

Zum Beispiel hat die COTOHA-API viele andere APIs wie "Alter und Geschlecht aus Sätzen schätzen" und "Teile extrahieren (Verben und Nomenklatur)". Natürlich können verschiedene Daten in Azure, AWS, IBM Cloud usw. konvertiert werden. Interessant sind auch die Personality Insights von IBM Cloud. Sie können aus dem Text eine Persönlichkeitsdiagnose erstellen.

Durch die Verwendung der "Verarbeitung natürlicher Sprache" auf diese Weise können verschiedene Sätze auf einem Computer einfach zu handhaben sein.

Sobald es in eine Form gebracht ist, die einfach zu handhaben ist, sind verschiedene Anwendungen möglich.

Analysieren und verbessern Sie den Text auf der Website, um den CVR zu erhöhen, SNS zu analysieren und für Marketingzwecke zu verwenden, Essays zu analysieren, Eindrücke zu lesen und Ergebnisse zu bewerten, um zu analysieren, welche Art von Text eine hohe Punktzahl aufweist ... ….

Extrahieren Sie verschiedene Daten aus Aufsätzen und Leseimpressionen und verwenden Sie sie als "erklärende Variablen", legen Sie die Bewertung als "objektive Variable" fest und führen Sie eine Regressionsanalyse durch. Wenn Sie einen schönen Entscheidungsbaum schreiben, können Sie möglicherweise eine hohe Punktzahl anstreben ...!

Auch ohne die schwierigen Dinge (die schwierigen Dinge werden von den Spezialisten erledigt, die die Dienstleistungen erbringen!), Macht es Spaß, verschiedene Dinge in der "natürlichen Sprache" spielen zu können, die Sie gewohnt sind. Ich hoffe, dass dieses Qiita der erste Schritt in der Verarbeitung natürlicher Sprache ist! !!

Recommended Posts

Lassen Sie uns die Verarbeitung natürlicher Sprache mit der COTOHA-API genießen
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
3. Verarbeitung natürlicher Sprache durch Python 2-1. Netzwerk für das gleichzeitige Auftreten
Ich habe versucht, natürliche Sprache mit Transformatoren zu verarbeiten.
Fassen Sie mit tf.data.Dataset api zusammen, wie Text (Verarbeitung natürlicher Sprache) vorverarbeitet wird
3. Verarbeitung natürlicher Sprache durch Python 2-2. Koexistenznetzwerk [mecab-ipadic-NEologd]
Python: Verarbeitung natürlicher Sprache
[Python] Ich habe mit der Verarbeitung natürlicher Sprache ~ Transformatoren ~ gespielt
RNN_LSTM2 Verarbeitung natürlicher Sprache
Lassen Sie die COTOHA-API die schwierigen Dinge tun - Einführung in das "Lernen mit" der Verarbeitung natürlicher Sprache -
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Verarbeitung natürlicher Sprache 3 Wortkontinuität
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 4 Kommentar
100 Sprachverarbeitungsklopfen mit Python (Kapitel 1)
Verarbeitung natürlicher Sprache für vielbeschäftigte Menschen
100 Sprachverarbeitungsklopfen mit Python (Kapitel 3)
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
Natürliche Sprache: ChatBot Part1-Twitter API Corpus
Erstellen Sie mit BERT + LightGBM + optuna ganz einfach ein Modell für die Verarbeitung natürlicher Sprache
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
Fallstudie zur Verarbeitung natürlicher Sprache: Worthäufigkeit in 'Anne mit einem E'
[Word2vec] Lassen Sie uns das Ergebnis der Verarbeitung von Unternehmensbewertungen in natürlicher Sprache visualisieren
Ich habe mit GiNZA v3.1 Kapitel 4 100 Sprachverarbeitungsklopfen 2020 durchgeführt
Verarbeiten Sie den Namen der Yugioh-Karte in natürlicher Sprache - Yugiou Data Science 2. NLP
100 Klopfen der Verarbeitung natürlicher Sprache Kapitel 1 (Vorbereitungsbewegung)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 2)
[WIP] Vorverarbeiten von Notizen in der Verarbeitung natürlicher Sprache
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 1)
Spielen Sie mit Dajare mithilfe der COTOHA-API
[Verarbeitung natürlicher Sprache] Extrahieren Sie Schlüsselwörter aus der Kakenhi-Datenbank mit MeCab-ipadic-neologd und termextract
Praktische Warenmitteilung zur Verarbeitung natürlicher Sprache
3. Verarbeitung natürlicher Sprache mit Python 1-2. So erstellen Sie einen Korpus: Aozora Bunko
Sprachverarbeitung 100 Klopfen-88: 10 Wörter mit hoher Ähnlichkeit
Ich habe versucht, mit der Bibliothek GiNZA zur Verarbeitung natürlicher Sprache eindeutige Ausdrücke zu extrahieren
3. Verarbeitung natürlicher Sprache durch Python 3-1. Wichtiges Tool zur Wortextraktion TF-IDF-Analyse [Originaldefinition]
Erste Schritte mit Python mit 100 Klopfen bei der Sprachverarbeitung
100 Sprachverarbeitung Knock-90 (mit Gensim): Lernen mit word2vec
Twittern Sie regelmäßig mit der Twitter-API in Go-Sprache
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen
100 Sprachverarbeitung Knock-95 (mit Pandas): Bewertung mit WordSimilarity-353
Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache
100 Sprachverarbeitungsklopfen 03 ~ 05
100 Sprachverarbeitungsklopfen (2020): 40
100 Sprachverarbeitungsklopfen (2020): 32
100 Sprachverarbeitungsklopfen (2020): 35
100 Sprachverarbeitungsklopfen (2020): 39
100 Sprachverarbeitungsklopfen (2020): 22
100 Sprachverarbeitungsklopfen (2020): 26
100 Sprachverarbeitungsklopfen (2020): 34
100 Sprachverarbeitungsklopfen (2020): 28
100 Sprachverarbeitungsklopfen (2020): 42