Ich werde zum ersten Mal die Verarbeitung natürlicher Sprache durchführen. Es ist aufregend. Dieser Artikel ist [Qiita x COTOHA API aktueller Plan] Lassen Sie uns den Text mit COTOHA API analysieren! ](Https://zine.qiita.com/event/collaboration-cotoha-api/?utm_source=qiita&utm_medium=banner). ~~ Ich möchte zu viele Preise! ~~ Ich war pünktlich zum Posten.
Zunächst werde ich kurz vorstellen, was zu tun ist. Der folgende wurde ↓ gemacht
python3 bubuduke.py "Hetaxo"
"Sei nicht gut"
Ich werde einen Kyoto-Ventilübersetzer wie diesen herstellen. Bubu-Zuke ist köstlich! Yay!
--Versuchen Sie vorerst, die COTOHA-API zu verwenden (ich habe sie zum ersten Mal verwendet) --Was ist die Verarbeitung natürlicher Sprache?
Wenn Sie dies bemerken, haben Sie mit diesem Ablauf ein praktisches Werkzeug wie das oben beschriebene. Sehr leicht.
Registrieren Sie sich jetzt kostenlos unter hier. Senden Sie Ihre E-Mail-Adresse und erstellen Sie ein Konto. Melden Sie sich an, wenn Sie können. Dann sehen Sie diesen Bildschirm. (Werbung bisher)
Für diese Site werde ich die ID erst später verwenden, also ist dies das Ende.
Einfach ausgedrückt, um die Wörter (= natürliche Sprache) zu verarbeiten, die Menschen normalerweise verwenden. Nein, ist es nicht so wie es ist? Das Schwierige daran ist, dass ** natürliche Sprachen, insbesondere Japanisch, nicht genau definiert sind **.
"Nicht genau definiert" bedeutet, dass die Definition keine eindeutige Interpretation oder keinen eindeutigen Wert zuweist. Sie können sich hier mehrere Interpretationen für einen Satz vorstellen.
Betrachten Sie ein einfaches Beispiel. Wie folgt. Niemand denkt, dass Sie keine Kacke werfen sollten, wenn Sie dies sehen. Wenn Sie jedoch versuchen, diesen Satz wörtlich mit Pseudocode zu schreiben, sieht es so aus.
wenn Schuppen== "Toilettenpapier" then
Sie können vergießen
Das? Ich habe das Gefühl, ich kann es nicht ablegen.
Das Kyoto-Ventil, für das ich mich dieses Mal entschieden habe. Zum Beispiel so.
Oben ist der berühmte Bubu-Zuke. Bubu-zuke sollte Ocha-zuke in Kyoto Ben bedeuten. Trotzdem bedeutet der Rat, in Bubu zu beizen, dass Sie nach Hause gehen sollten. Ich verstehe nicht.
Lassen Sie mich Ihnen ein weiteres Beispiel geben.
Es tut mir leid, die Entgleisung ist lang. Es gibt viele andere ekelhafte Kyoto-Wörter, aber ich werde sie weglassen. Wenn Sie interessiert sind, finden Sie wahrscheinlich verschiedene hier. Kurz gesagt, ** Kyoto Ben ist heimtückisch und ist die Höhe von Wörtern, die nicht genau definiert sind. ** **.
Bei der Verarbeitung natürlicher Sprache werden Wörter und Syntax anhand von Informationen aus diesen natürlichen Sprachen verarbeitet. Schließlich erkläre ich nur die natürliche Sprache. Von nun an werden wir eine natürliche Sprache namens Japanisch verarbeiten und einen Bot implementieren, der auf einen solch heimtückischen Kyoto-Ventil- "Stil" antworten kann.
Ignorieren Sie den Teil, der den Bot vorerst ausmacht, und fahren Sie mit der Verarbeitung natürlicher Sprache fort. ~~ Um ehrlich zu sein, das ist die Essenz, also musst du nichts anderes lesen. ~~ Die Essenz stammt von hier, aber COTOHA war so erstaunlich, dass es bald endete.
Akzeptieren Sie die Eingabe vorerst und versuchen Sie, sie leicht zu verarbeiten. Dies ist eine Demo, die Sätze empfängt und nur die Nomenklatur zurückgibt. Ich bezog mich auf Meisterwerk. Die Leistung von Library ist so unvollständig, dass dies ohne Wissen möglich ist. Stellen Sie zuerst die Bibliothek.
pip install git+https://github.com/obilixilido/cotoha-nlp.git
samplecode1.py
from cotoha_nlp.parse import Parser
parser = Parser("Client ID",
"Client secret",
"https://api.ce-cotoha.com/api/dev/nlp",
"https://api.ce-cotoha.com/v1/oauth/accesstokens"
)
s = parser.parse(input())
print(" ".join([token.form for token in s.tokens if token.pos in ["Substantiv"]]))
Ich werde es später noch einmal veröffentlichen, aber ich habe den Beispielcode auf GitHub veröffentlicht. Schauen Sie also auch dort nach. Lassen Sie uns diesen Code ausführen. Wenn Sie in der Reihenfolge "Python-Dateiname Zeichenkette" eingeben, wird das Ergebnis der Verarbeitung der Zeichenkette zurückgegeben.
python samplecode1.py Frühling ist Akebono. Ja, lass uns nach Kyoto gehen.
Dann wird es zurückkommen.
>>Frühling Akebono Kyoto
Was denken Sie. Mit so viel Code konnte ich eine gute Verarbeitung natürlicher Sprache durchführen. Es ist zu gefährlich. ~~ Ich verstehe nichts. ~~
Als nächstes möchte ich mit der Implementierung des Kyoto Benfu-Bots beginnen. Wenn es eine japanische Übersetzung gibt, die der extrahierten Nomenklatur entspricht, geben Sie das Kyoto-Ventil zurück. Hier ist der Ablauf für gewöhnliche japanische Eingaben.
Ich werde kratzen, also werde ich eine kleine Bibliothek einrichten.
pip3 install requests
pip3 install beautifulsoup4
bubuduke.py
from cotoha_nlp.parse import Parser
import requests
from bs4 import BeautifulSoup
import re
parser = Parser("Client ID",
"Client secret",
"https://api.ce-cotoha.com/api/dev/nlp",
"https://api.ce-cotoha.com/v1/oauth/accesstokens"
)
# input
s = parser.parse(input())
# get nouns
nouns = [token.form for token in s.tokens if token.pos in ["Substantiv"]]
# web scraping
r = requests.get('https://iirou.com/kazoekata/')
soup = BeautifulSoup(r.content, "html.parser")
block = soup.find_all("p")
# output
for noun in nouns:
for tag in block:
if noun in str(tag):
#Schneiden Sie das Kyoto-Ventil im Inneren des starken Etiketts aus
output = re.findall('<strong>.*</strong>', str(tag))
out = output[0]
out = out.replace("<strong>", "")
out = out.replace("</strong>", "")
print(out)
Sofort ausführen.
python bubuduke.py "Nervig"
Der heimtückische Kyoto Ben ist zurück!
>>"Junge Dame, du kannst gut Klavier spielen w"
Dies ist das Ende des Teils zur Verarbeitung natürlicher Sprache. Nächstes Mal mache ich einfach einen Bot. Das Genre wird sich ändern und dieser Artikel endet hier.
Ich möchte es zu einem LINE-Bot machen. Ich möchte die Genauigkeit noch etwas verbessern. Ich möchte Wörter aufgreifen, die nicht genau übereinstimmen. Bisher gibt es nur sehr wenige Wörter, die übereinstimmen. Ich werde das nächste Mal wieder darüber schreiben.
Repository des diesmal verwendeten Codes Referenz Schließlich ist die offizielle Referenz die beste für jede Sprache, Bibliothek, jedes Framework usw.
Vielen Dank für das Lesen bis zum Ende. ~~ Ich möchte zu viele Preise ~~ LGTM bitte. Wenn LGTM dies nicht akzeptiert dieser Bereich Bitte beziehen Sie sich darauf.
Recommended Posts