[PYTHON] Sie werden in 100 Tagen Ingenieur. ――Tag 66 ――Programmieren ――Über die Verarbeitung natürlicher Sprache

Klicken Sie hier bis gestern

Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Über Wahrscheinlichkeit 1

Sie werden in 100 Tagen Ingenieur - Tag 59 - Programmierung - Über Algorithmen

Sie werden in 100 Tagen Ingenieur --- Tag 53 - Git - Über Git

Sie werden in 100 Tagen Ingenieur - Tag 42 - Cloud - Über Cloud-Dienste

Sie werden in 100 Tagen Ingenieur - Tag 36 - Datenbank - Über die Datenbank

Sie werden Ingenieur in 100-Tage-24-Python-Grundlagen der Python-Sprache 1

Sie werden in 100 Tagen Ingenieur - Tag 18 - JavaScript - Grundlagen von JavaScript 1

Sie werden in 100 Tagen Ingenieur - 14. Tag - CSS - CSS-Grundlagen 1

Sie werden in 100 Tagen Ingenieur - Tag 6 - HTML - HTML-Grundlagen 1

Ab diesem Zeitpunkt geht es um die Verarbeitung natürlicher Sprache.

Was ist die Verarbeitung natürlicher Sprache?

Sprachen, die Menschen spontan benutzt haben, wie Englisch und Japanisch, werden "natürliche Sprachen" genannt.

Andererseits werden künstliche Sprachen, die auf Regeln wie "Programmiersprache" basieren, als "formale Sprachen" bezeichnet, um sie zu unterscheiden.

Was ist "natürliche Sprachverarbeitung"? Lassen Sie den Computer die "natürliche Sprache" verarbeiten, die Menschen täglich verwenden. Es bezieht sich auf eine Reihe von Technologien.

Viele Techniken sind in der "Verarbeitung natürlicher Sprache" enthalten.

Wichtige Technologien zur Verarbeitung natürlicher Sprache

Das technische System in der Verarbeitung natürlicher Sprache ist so.

Name Inhalt
Morphologische Analyse Eine Methode zur Aufteilung in morphologische Elemente und zur Unterscheidung des Teils jedes morphologischen Elements
Parsing Eine Methode, um in morphologische Elemente zu unterteilen und die Beziehungen zwischen ihnen und den syntaktischen Beziehungen durch Zeichnen zu klären.
Semantische Analyse Eine Methode zur Interpretation der Bedeutung eines Satzes unter Verwendung eines Konzeptwörterbuchs usw.
Kontextanalyse Eine Methode, um die Verbindung mehrerer Sätze zu überprüfen

Bei der Verarbeitung von Japanisch mit einem Computer ist die morphologische Analyse eine grundlegende Technik. Da sich die Sprache von Tag zu Tag ändert, ist es für Computer schwierig, damit umzugehen.

Weil Menschen sprachliche Informationen nicht vollständig verarbeiten, sondern aus einer Vielzahl von Interpretationen "vernünftige" Interpretationen machen. Die "Gültigkeit" wird auf einem Computer schwierig zu implementieren.

Es ist ziemlich schwierig, mehr als eine semantische Analyse durchzuführen, und zukünftige Forschungen werden erwartet.

Über morphologische Analyse

Formelementanalyse`` trennt Sätze in die kleinste Einheit von Wörtern, die als morphologische Elemente bezeichnet werden. Es ist eine Methode, um den Teil jeder Morphologie zu unterscheiden.

** Trennung **

Es ist eine Schreibweise mit einem Leerzeichen zwischen Wörtern wie auf Englisch. Watashi Ga Hentai Tod Ich hatte Lewd Tod

** Englische morphologische Analyse **

Sehr einfach in Sprachen wie Englisch, in denen Wörter durch Leerzeichen getrennt sind Das Verfahren zur morphologischen Analyse in englischer Sprache ist nachstehend zusammengefasst.

1.Machen Sie den ganzen Satz niedriger und verhindern Sie, dass Wörter durch die Position des Wortes unterschieden werden

2.it's und don'Geteilte Abkürzungen wie t (it's → it 's 、 don't → do n't)

3.Trennen Sie den Punkt am Ende des Satzes vom vorherigen Wort (Mr..Trennen Sie keine Punkte, die nicht mit dem Ende der Sätze zusammenhängen, für die verwendet wird

4.Durch Raum teilen

** Japanische morphologische Analyse **

Im Gegensatz zu Englisch hat Japanisch nur wenige Leerzeichen und Sie können die Unterbrechungen in Wörtern nicht sehen. Daher ist es notwendig, die Unterteilung nach Regeln auf Wörterbuchbasis unter Verwendung eines dedizierten "Wörterbuchs" in Betracht zu ziehen.

Wenn Sie Ihre eigene morphologische Analyse durchführen, müssen Sie diese Teilungsregel selbst festlegen und implementieren.

Für die japanische morphologische Analyse wurden mehrere "Bibliotheken" entwickelt. Es ist üblich, dies für die morphologische Analyse zu verwenden.

Eine typische Bibliothek heißt "MeCab".

https://ja.wikipedia.org/wiki/MeCab

Es gibt auch eine Bibliothek namens "janome" in der Python-Sprache.

https://mocobeta.github.io/janome/

Bei Implementierung unter Verwendung einer solchen Bibliothek kann eine morphologische Analyse relativ einfach durchgeführt werden.

Der Mechanismus der Bibliothek hier wird in diesem Artikel erläutert. Blick hinter die Kulissen der japanischen morphologischen Analyse! Wie MeCab morphologisch analysiert

Die Grundidee ist, ein "Gitter" zu bauen und den besten "Pfad" auszuwählen.

Ein "Gitter" ist eine "mögliche wortbrechende Lösung".

Ich denke, das Folgende ist ein leicht verständliches Beispiel, daher werde ich darauf verweisen.

Referenz: https://techlife.cookpad.com/entry/2016/05/11/170000

Dies ist "Gitter", und wir werden den "optimalen Pfad" basierend auf den "Kosten" auswählen.

Die "Kosten" hängen von dem "Wörterbuch" ab, das für die morphologische Analyse verwendet wird.

In der allgemeinen morphologischen Analyse wird das "NAIST-Wörterbuch" verwendet. Darin sind die berechneten Werte "Auftrittskosten" und "Verkettungskosten" aufgeführt. Es scheint, dass der "Kosten" -Wert für den "Korpus" daraus berechnet wird.

Es scheint, dass dieser "Pfad" mit dem niedrigsten "Kostenwert" das Ergebnis einer morphologischen Analyse ist.

Wenn es in diesem Wörterbuch nicht vorhanden ist, wird die richtige Nomenklatur natürlich in gewöhnliche Wörter unterteilt. Es ist wichtig, ein "Wörterbuch" zu führen, um die morphologische Analyse korrekt durchführen zu können.

Neu geschaffene Wörter werden manchmal als "unbekannte Wörter" bezeichnet, aber in der Arbeit der morphologischen Analyse Die Korrespondenz mit solchen "unbekannten Wörtern" und die Pflege von "Wörterbüchern" wird den größten Teil der Entwicklungsarbeit in Anspruch nehmen.

Wenn Sie ein Unternehmen sind, das sich mit der Verarbeitung natürlicher Sprache befasst, haben Sie eine große Anzahl von Wörtern selbst registriert Wir bauen eine Datenbank auf, um "unbekannte Wörter" zu verarbeiten.

Informationen zur Syntaxanalyse

"Syntaxanalyse" wird auch "Abhängigkeitsanalyse" genannt und ist eine Art Technologie zur Verarbeitung natürlicher Sprache. Nach der Aufteilung des Satzes in morphologische Elemente wird die Änderungsbeziehung zwischen Wörtern analysiert.

Es gibt eine berühmte Bibliothek namens "CaboCha".

https://taku910.github.io/cabocha/

Es ist nicht geeignet, zu lange Sätze zu analysieren, und es ist notwendig, in kurzen Sätzen zu denken.

Das Ergebnis der Analyse sieht so aus.

Ichiro füllte die Löcher von Jiro mit Kartoffeln, die er in Hokkaido gekauft hatte.

Ichiro-------------D
Jiro-D         |
Hat gemacht-D       |
In dem Loch-------D
In Hokkaido-D   |
Gekauft-D |
Kartoffel-D
Ausgestopft

Die Abhängigkeitsanalyse ist eine Technik, die verwendet werden kann, wenn Sie die Bedeutung eines Satzes analysieren möchten. Ich denke, es kann verwendet werden, um die grammatikalische Struktur zu analysieren und die Bedeutung von Sätzen zu klären.

Wörter, die häufig in der Verarbeitung natürlicher Sprache vorkommen

Reguläre Ausdrücke

Dies ist eine Ausdrucksmethode zum Ausdrücken mehrerer Zeichenfolgen in einem Format. Es wird häufig verwendet, wenn eine große Anzahl von Sätzen nach bestimmten Regeln verarbeitet wird.

Hier klicken für Details Sie werden in 100 Tagen Ingenieur - Tag 46 - Programmierung - Über reguläre Ausdrücke

N-Gram

Eine Textteilungsmethode, die eine beliebige Zeichenfolge oder ein beliebiges Dokument in aufeinanderfolgende n Zeichen unterteilt. Wenn "n" 1 ist, ist "Uni-Gramm", wenn "2" "Bi-Gramm" ist Fall 3 heißt "Tri-Gramm".

Zeichenbasiert

# unigram
'jetzt', 'Tag', 'Ist', 'ich', 'ich', 'Himmel', 'Qi'

# bigram
'heute', 'Tag', 'Ja', 'Gut', 'Himmel', 'Wetter'

# trigram
'heute', 'Ja ja', 'Ist gut', 'Guter Himmel', 'Gutes Wetter'

Wenn es wortbasiert ist, handelt es sich um eine Verkettung von "n" Wörtern, die morphologisch analysiert wurden.

# unigram
'heute', 'Ist', 'Gut', 'Wetter'

# bigram
'heute', 'Ist gut', 'Gutes Wetter'

# trigram
'Gut heute', 'Schönes Wetter'

** Wortvektor **

Nach dem Teilen eines Satzes in Wörter werden die Wörter den Spalten der Tabelle zugewiesen und in Daten konvertiert. Wenn es ein Wort gibt, sind die Daten 1, andernfalls 0.

[1,0,0,0,0,0,1,1,1],
[1,0,0,0,0,0,1,1,0], ...

TF-IDF

tf-idf ist eine Art Gewichtung für Wörter in einem Dokument und wird in Feldern wie dem Abrufen von Informationen und der Zusammenfassung von Sätzen verwendet. Berechnungen basieren auf dem "Wortvektor" und werden verwendet, um die Seltenheit von Wörtern zu bestimmen.

Zusammenfassung

Die Verarbeitung natürlicher Sprache ist eines der schwierigsten Forschungsgebiete, aber die Gebiete, in denen die Forschung nicht vorangekommen ist Im Gegenteil, es ist auch ein Bereich mit vielen Möglichkeiten.

Japanisch zu lernen ist besonders schwierig und wo man den Teil implementiert, der die Bedeutung analysiert Es ist sehr schwierig, also müssen Sie sich hinsetzen und an Ihrer Forschung arbeiten.

Wenn Sie interessiert sind, lernen wir die Verarbeitung natürlicher Sprache.

34 Tage, bis Sie Ingenieur werden

Informationen zum Autor

HP von Otsu py: http://www.otupy.net/

Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter: https://twitter.com/otupython

Recommended Posts

Sie werden in 100 Tagen Ingenieur. ――Tag 66 ――Programmieren ――Über die Verarbeitung natürlicher Sprache
Sie werden in 100 Tagen Ingenieur. ――Tag 67 ――Programmieren ――Über morphologische Analyse
In 100 Tagen sind Sie Ingenieur. ――Tag 71 ――Programmieren ――Über das Schaben 2
In 100 Tagen sind Sie Ingenieur. ――Tag 74 ――Programmieren ――Über das Schaben 5
In 100 Tagen sind Sie Ingenieur. ――Tag 73 ――Programmieren ――Über das Schaben 4
In 100 Tagen sind Sie Ingenieur. ――Tag 75 ――Programmieren ――Über das Schaben 6
In 100 Tagen sind Sie Ingenieur. ――Tag 68 ――Programmieren ――Über TF-IDF
In 100 Tagen sind Sie Ingenieur. ――Tag 70 ――Programmieren ――Über das Schaben
In 100 Tagen sind Sie Ingenieur. ――Tag 81 ――Programmieren ――Über maschinelles Lernen 6
In 100 Tagen sind Sie Ingenieur. ――Tag 82 ――Programmieren ――Über maschinelles Lernen 7
In 100 Tagen sind Sie Ingenieur. ――Tag 79 ――Programmieren ――Über maschinelles Lernen 4
In 100 Tagen sind Sie Ingenieur. ――Tag 76 ――Programmieren ――Über maschinelles Lernen
In 100 Tagen sind Sie Ingenieur. ――Tag 80 ――Programmieren ――Über maschinelles Lernen 5
In 100 Tagen sind Sie Ingenieur. ――Tag 78 ――Programmieren ――Über maschinelles Lernen 3
Sie werden in 100 Tagen Ingenieur. ――Tag 84 ――Programmieren ――Über maschinelles Lernen 9
In 100 Tagen sind Sie Ingenieur. ――Tag 83 ――Programmieren ――Über maschinelles Lernen 8
In 100 Tagen sind Sie Ingenieur. ――Tag 77 ――Programmieren ――Über maschinelles Lernen 2
In 100 Tagen sind Sie Ingenieur. ――Tag 85 ――Programmieren ――Über maschinelles Lernen 10
Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Wahrscheinlichkeit 1
Sie werden in 100 Tagen Ingenieur. ――Tag 65 ――Programmieren ――Über Wahrscheinlichkeit 3
Sie werden in 100 Tagen Ingenieur. ――Tag 64 ――Programmieren ――Über Wahrscheinlichkeit 2
Sie werden in 100 Tagen Ingenieur - Tag 86 - Datenbank - Über Hadoop
In 100 Tagen sind Sie Ingenieur. ――Tag 60 ――Programmieren ――Über Datenstruktur und Sortieralgorithmus
Sie werden in 100 Tagen Ingenieur. ――Tag 24 ―― Python ―― Grundlagen der Python-Sprache 1
Sie werden in 100 Tagen Ingenieur. ――Tag 30 ―― Python ―― Grundlagen der Python-Sprache 6
Sie werden in 100 Tagen Ingenieur. ――Tag 25 ―― Python ―― Grundlagen der Python-Sprache 2
Sie werden in 100 Tagen Ingenieur - 29. Tag - Python - Grundlagen der Python-Sprache 5
Sie werden in 100 Tagen Ingenieur - Tag 33 - Python - Grundlagen der Python-Sprache 8
Sie werden in 100 Tagen Ingenieur - 26. Tag - Python - Grundlagen der Python-Sprache 3
Sie werden in 100 Tagen Ingenieur - Tag 32 - Python - Grundlagen der Python-Sprache 7
Sie werden in 100 Tagen Ingenieur - 28. Tag - Python - Grundlagen der Python-Sprache 4
Sie werden in 100 Tagen Ingenieur - 27. Tag - Python - Python-Übung 1
Sie werden in 100 Tagen Ingenieur - Tag 34 - Python - Python-Übung 3
Sie werden in 100 Tagen Ingenieur - 31. Tag - Python - Python-Übung 2
Sie werden in 100 Tagen Ingenieur - Tag 35 - Python - Was Sie mit Python tun können
[WIP] Vorverarbeiten von Notizen in der Verarbeitung natürlicher Sprache
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen
Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache
Ich habe ein Einführungsbuch über die Verarbeitung natürlicher Sprache gelesen
Modell unter Verwendung eines Faltungsnetzwerks in der Verarbeitung natürlicher Sprache
Leistungsüberprüfung der Datenvorverarbeitung in der Verarbeitung natürlicher Sprache
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Python: Verarbeitung natürlicher Sprache
RNN_LSTM2 Verarbeitung natürlicher Sprache
Arten der Vorverarbeitung in der Verarbeitung natürlicher Sprache und ihre Leistungsfähigkeit
[Verarbeitung natürlicher Sprache] Ich möchte einen Ingenieur treffen, der seinen Job wechselt (oder kurz zuvor).
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Verarbeitung natürlicher Sprache 3 Wortkontinuität
Eine Geschichte über den Versuch von LT, die Verarbeitung natürlicher Sprache und die Abhängigkeitsanalyse in einem Augenblick von einem leeren Ort aus live zu codieren
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
Überlegen Sie ernsthaft, welche Sprache in der Programmierausbildung und in der Programmierausbildung verwendet werden soll.
Fallstudie zur Verarbeitung natürlicher Sprache: Worthäufigkeit in 'Anne mit einem E'
Kann ich in einem Online-Kurs an der AI Academy KI-Ingenieur werden?
Werden Sie bald KI-Ingenieur! Lernen Sie in wenigen Tagen umfassend Python / KI / Maschinelles Lernen / Deep Learning / Statistische Analyse!