"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.
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.
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/
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).
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 ...
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".
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".
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