[PYTHON] Vorbereitung zum Starten der Verarbeitung natürlicher Sprache

In diesem Artikel werde ich die Gliederung vorstellen, dass diese Art von Arbeit bei der Verarbeitung natürlicher Sprache ausgeführt wird.

Morphologische Analyse

Die morphologische Analyse ist die Aufgabe, Sätze in Wörter zu zerlegen. Schlagen Sie den Teil des Wortes nach und bringen Sie das Verwendungsformular zum ursprünglichen Formular zurück. Zum Beispiel wird der Ausdruck "eine Prüfung ablegen, die Ihrer Körpergröße entspricht" wie folgt analysiert.

Höhe Nase, allgemein, *, *, *, *, Höhe, Minotake, Minotake Ni-Unterstützung, Fallunterstützung, Allgemein, *, *, *, Ni, Ni, Ni Matching Verb, Unabhängigkeit, *, *, 5. Dan / Wa-Zeilenerinnerung, kontinuierliche Verbindung, Matching, ah, ah Ta Hilfsverb, *, *, *, spezielles ta, Grundform, ta, ta, ta Prüfungsnomenklatur, Sahen Connection, *, *, *, *, Prüfung, Juken, Juken

MeCab wird zur morphologischen Analyse verwendet. https://taku910.github.io/mecab/ Dies ist weit verbreitet, weist jedoch einige Schwächen in Bezug auf neue Wörter und Fachbegriffe auf, da Wörter mehr als erforderlich unterteilt werden, z. B. die Änderung der "administrativen Ernährungsberaterprüfung" in "Management / Ernährung / Person / Prüfung". Für neue Wörter wurde ein häufig aktualisiertes Wörterbuch namens mecab-ipadic-NEologd veröffentlicht, um die Schwächen von MeCab auszugleichen. https://github.com/neologd/mecab-ipadic-neologd Darüber hinaus erstelle ich ein neues Wortwörterbuch, das lokal analysiert werden soll, und verwende es, indem ich verschiedene Dinge hinzufüge.

Ich möchte JUMAN ++ wegen seiner hohen Genauigkeit verwenden. http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN++ Wenn "Ausländerregierung" von MeCab verarbeitet wird, wird sie zu "Ausländer / Karotte / Regierung", in JUMAN ++ wird sie jedoch als "Ausländer / Macht" analysiert. Die Funktion besteht darin, dass Sie Ihre Analysefähigkeiten durch maschinelles Lernen verbessern können. Ich konnte den Fehler jedoch nicht beheben, als ich JUMAN ++ mit Boost erstellte. Ich frage mich, ob MeCab so verwendet wird, wie es ist.

Vorverarbeitung

Bei Text mit HTML-Tags müssen Sie die Tags entfernen. Wenn Sie vor der Anwendung auf die morphologische Analyse keine Vorverarbeitung durchführen, werden ① und i außerdem als häufige Schlüsselwörter angezeigt und Wörter mit derselben Bedeutung werden separat aggregiert.

Emoticon

Es ist ein Dämonentor. Das Studium der Gesichtszüge ist tatsächlich ein tiefgreifendes Studium mit jahrzehntelanger Geschichte. Wenn Sie interessiert sind, lesen Sie bitte die Besonderheit im Journal der Society of Artificial Intelligence Vol. 32 Nr. 3 (2017/05). https://www.ai-gakkai.or.jp/vol32_no3/ Ich habe das Gesichtszeichenwörterbuch richtig aufgenommen und es meinem Wörterbuch hinzugefügt, um den Tee schlammig zu machen, aber die Abdeckungsrate ist nicht hoch. Abhängig vom zu analysierenden Text kann es erforderlich sein, direkt mit dem Emblem zu arbeiten.

Normalisierung

Dies ist ein Prozess, um zu verhindern, dass ähnliche Wörter mit derselben Bedeutung separat aggregiert werden. Volle Breite, halbe Breite, Groß- und Kleinschreibung (z. B. Qiita, QIITA, Qiita, QIITA) Notation ausrichten (Beispiel: High 3, High 3, High School, dritte Klasse, High 3, High Third Grade) Abkürzungen ausrichten (z. B. Hirodai, Hiroshima University, Hiroshima University)

Zahlen

Der Umgang mit Zahlen kann von der Art des Dokuments abhängen. Im normalen Kontext können Sie alle Nummern löschen. Auf der anderen Seite ist es für Sportaufzeichnungen und andere Elemente, bei denen Zahlen Schlüsselwörter sind, besser, Zahlen als Zahlen zu behandeln. In diesem Fall besteht das Problem darin, dass MeCab die Zahl mit dem Dezimalpunkt in verschiedene Wörter unterteilt, z. B. den ganzzahligen Teil, den Periodenteil und den Bruchteil. In diesem Fall muss ein Prozess durchgeführt werden, um den numerischen Wert wiederherzustellen, nachdem die morphologische Analyse sofort durchgeführt wurde.

Stoppen Sie die Wortentfernung

Ein Stoppwort ist ein Wort, das in einem beliebigen Dokument vorkommt, z. B. "Ich" oder "Ist". Ich schließe nicht unabhängige Wörter und Wörter aus, die häufig in dem zu analysierenden Dokument als Stoppwörter erscheinen.

Andere

Chemische Formeln, mathematische und physikalische Formeln, URLs, Produktcodes, Modellnummern usw. sollten von der Phrasenanalyse ausgeschlossen werden. Wenn Sie beispielsweise MeCab einfach die chemische Formel von Phenol (C6H5OH) geben, sieht es so aus.

C Nomen,Allgemeines,*,*,*,*,*
6 Nomenklatur,Nummer,*,*,*,*,*
H Nomen,Allgemeines,*,*,*,*,*
5 Nomenklatur,Nummer,*,*,*,*,*
OH Substantiv,Proprietäre Nomenklatur,Organisation,*,*,*,*

Dies kann überhaupt nicht als Phenol erkannt werden. Darüber hinaus ist es oft bedeutungslos, englische Sätze und Programmcodes mit derselben Methode wie Japanisch zu analysieren.

Dokumentvektorisierung

Vektorisieren Sie das Dokument mit den im Dokument enthaltenen Wörtern als Hinweise (Doc2Vec). Ähnliche Dokumente sollten ähnliche Vektoren haben. Doc2Vec ist in einer Bibliothek namens gensim enthalten. https://radimrehurek.com/gensim/

Einmal zu einem Vektor gemacht, ist es möglich, ähnliche Dokumente zu kombinieren. Es gibt auch eine Methode namens Themenanalyse, die später beschrieben wird, um ähnliche Dokumente zusammenzustellen. In einigen Fällen werden Themenanalyse und Vektorisierung zusammen verwendet. Ich möchte auch hier verschiedene Versuche und Irrtümer machen.

Themenanalyse

Es klassifiziert automatisch Dokumente, die morphologisch analysiert wurden, und unterteilt sie in eine bestimmte Anzahl von Themen. Dies kann auch mit Gensim erfolgen. Gensim sollte Angst haben.

BERT Dies ist ein Modell zur Verarbeitung natürlicher Sprache, das Google im letzten Jahr angekündigt hat. Ich möchte es verwenden, habe es aber überhaupt nicht untersucht. Ich werde von nun an lernen.

Recommended Posts

Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Python: Verarbeitung natürlicher Sprache
RNN_LSTM2 Verarbeitung natürlicher Sprache
Lose Artikel für diejenigen, die mit der Verarbeitung natürlicher Sprache beginnen möchten
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 4 Kommentar
Verarbeitung natürlicher Sprache für vielbeschäftigte Menschen
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
[Python] Versuchen Sie, Ramen-Shops durch Verarbeitung natürlicher Sprache zu klassifizieren
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
[Einführung in RasPi4] Umgebungskonstruktion, Mecab des Verarbeitungssystems für natürliche Sprache usw. .. .. ♪
Fassen Sie mit tf.data.Dataset api zusammen, wie Text (Verarbeitung natürlicher Sprache) vorverarbeitet wird
Natürliche Sprache: ChatBot Part2-Sequenz zu Sequenz Aufmerksamkeit
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)
3. Verarbeitung natürlicher Sprache durch Python 2-1. Netzwerk für das gleichzeitige Auftreten
[WIP] Vorverarbeiten von Notizen in der Verarbeitung natürlicher Sprache
3. Verarbeitung natürlicher Sprache durch Python 1-1. Word N-Gramm
Ich habe versucht, natürliche Sprache mit Transformatoren zu verarbeiten.
Praktische Warenmitteilung zur Verarbeitung natürlicher Sprache
100 Sprachverarbeitungsklopfen 03 ~ 05
100 Sprachverarbeitungsklopfen (2020): 40
100 Sprachverarbeitungsklopfen (2020): 32
100 Sprachverarbeitungsklopfen (2020): 47
100 Sprachverarbeitungsklopfen (2020): 22
100 Sprachverarbeitungsklopfen (2020): 26
100 Sprachverarbeitungsklopfen (2020): 34
100 Sprachverarbeitungsklopfen (2020): 28
100 Sprachverarbeitungsklopfen (2020): 42
100 Sprachverarbeitungsklopfen (2020): 29
100 Sprachverarbeitungsklopfen (2020): 49
100 Sprachverarbeitungsklopfen 06 ~ 09
100 Sprachverarbeitungsklopfen (2020): 43
100 Sprachverarbeitungsklopfen (2020): 24
100 Sprachverarbeitungsklopfen (2020): 45
100 Sprachverarbeitungsklopfen (2020): 10-19
100 Sprachverarbeitungsklopfen (2020): 30
100 Sprachverarbeitungsklopfen (2020): 00-09
100 Sprachverarbeitungsklopfen (2020): 31
100 Sprachverarbeitungsklopfen (2020): 38
100 Sprachverarbeitungsklopfen (2020): 48
100 Sprachverarbeitungsklopfen (2020): 44
100 Sprachverarbeitungsklopfen (2020): 41
100 Sprachverarbeitungsklopfen (2020): 37
100 Sprachverarbeitung klopfen 00 ~ 02
100 Sprachverarbeitungsklopfen (2020): 23
100 Sprachverarbeitungsklopfen (2020): 33
100 Sprachverarbeitungsklopfen (2020): 20
100 Sprachverarbeitungsklopfen (2020): 27
100 Sprachverarbeitungsklopfen (2020): 46
100 Sprachverarbeitungsklopfen (2020): 21
3. Verarbeitung natürlicher Sprache mit Python 1-2. So erstellen Sie einen Korpus: Aozora Bunko
100 Sprachverarbeitungsklopfen (2020): 36
Python unerfahrene Person versucht, 100 Sprachverarbeitung 14-16 zu klopfen
Vorbereitung zum Versuch "Data Science 100 Knock (Strukturierte Datenverarbeitung)"
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen
Python unerfahrene Person versucht, 100 Sprachverarbeitung 07-09 zu klopfen
Python unerfahrene Person versucht, 100 Sprachverarbeitung 10 ~ 13 zu klopfen