[PYTHON] Überblick über die Verarbeitung natürlicher Sprache und ihre Datenvorverarbeitung

Einführung

Bei der Systematisierung des maschinellen Lernens ist Know-how erforderlich, um die für die Datenvorverarbeitung erforderliche Zeit und Ressourcen zu berücksichtigen und beim Entwurf zu verwenden. Diesmal ein Überblick über die Datenvorverarbeitung für natürliche Sprachen und die Datenvorverarbeitung in chABSA-Datensatz, einem Implementierungsbeispiel für die Analyse der Emotionspolarität. Einführung der Ergebnisse der Leistungsüberprüfung basierend auf.

Beitragsliste

  1. Überblick über die Verarbeitung natürlicher Sprache und ihre Datenvorverarbeitung ... Dieser Beitrag
  2. Leistungsüberprüfung der Datenvorverarbeitung in der Verarbeitung natürlicher Sprache

Das Inhaltsverzeichnis dieses Beitrags lautet wie folgt.

1. Verarbeitung natürlicher Sprache und deren Datenvorverarbeitung

1.1 Was ist die Verarbeitung natürlicher Sprache?

Natürlich entwickelte Sprachen wie Japanisch und Englisch, mit denen Menschen täglich kommunizieren, werden als natürliche Sprachen bezeichnet. Im Gegensatz zu künstlichen Sprachen wie Programmiersprachen weisen natürliche Sprachen Mehrdeutigkeiten auf, die die Bedeutung oder Interpretation eines Satzes nicht eindeutig bestimmen.

Die Verarbeitung natürlicher Sprache bezieht sich darauf, dass ein Computer eine große Menge von Textdaten verarbeiten kann, die in natürlicher Sprache geschrieben sind, praktisch basierend auf der Mehrdeutigkeit von Wörtern oder einer Technologie für diesen Zweck. Beispiele für Anwendungen für die Verarbeitung natürlicher Sprache sind intelligente Lautsprecher, Websuchmaschinen, maschinelle Übersetzung, japanische Eingabesysteme und Analyse der emotionalen Polarität.

1.2 Was ist Datenvorverarbeitung der Verarbeitung natürlicher Sprache in einem maschinellen Lernsystem?

Bilddaten (eine Reihe von Pixelwerten) und Zeitreihendaten, die von verschiedenen Sensoren erfasst werden können, sind Daten, die als numerische Werte ausgedrückt werden können. Andererseits ist natürliche Sprache eine Reihe von Wörtern und kann nicht so wie sie ist als numerischer Wert behandelt werden.

Um die natürliche Sprache beim maschinellen Lernen zu handhaben, bei dem es sich um eine statistische Methode zum Extrahieren von Regeln aus Daten handelt, muss die natürliche Sprache auf irgendeine Weise in numerische Daten umgewandelt werden. Diese Umwandlung wird als Vektorisierung bezeichnet, und der durch Vektorisierung erhaltene Ausdruck als numerische Daten wird als Merkmalsgröße bezeichnet.

Die Vorverarbeitung in der Verarbeitung natürlicher Sprache umfasst die Konvertierung (Vektorisierung) von natürlicher Sprache, bei der es sich um Textdaten handelt, in Merkmalsgrößen, bei denen es sich um numerische Daten handelt, und die Verarbeitung wie Rauschentfernung und Zerlegung in Wortketten, die zuvor durchgeführt werden. Zeigen auf. Tabelle 1 zeigt den Ablauf der Vorverarbeitung im Bereich der Verarbeitung natürlicher Sprache.

Tabelle 1 Vorverarbeitung und Datenzustandsübergänge im Bereich der Verarbeitung natürlicher Sprache

Datenstatus Verarbeitungsklassifizierung Erläuterung
Rohdaten -
Reinigung Entfernen Sie unnötige Nicht-Textdaten wie HTML-Tags, die an die zu analysierenden Textdaten angehängt sind
Satz -
Teilen Teilen Sie Sätze nach Teilen auf und verwenden Sie sie als eine Reihe von Wörtern(Wort geteilt)Teilt
Wortzeichenfolge -
Normalisierung, Wortentfernung stoppen Vereinheitlichung von Notationsschwankungen, Entfernung bedeutungsloser Wörter zur Analyse
Für die Analyse erforderliche Wortzeichenfolge -
Vektorisierung Konvertieren Sie von Wortzeichenfolgen in numerische Daten
Merkmalsvektor -

2. Beispiel einer Vorbehandlung basierend auf einer Vorbehandlung der emotionalen Polaritätsanalyse

2.1 Auswahl von Anwendungsfällen für die Verarbeitung natürlicher Sprache

Einer der Anwendungsfälle der Verarbeitung natürlicher Sprache ist die Analyse der emotionalen Polarität, bei der die Qualität des Inhalts eines bestimmten Textes beurteilt und als Entscheidungshilfe verwendet wird. Beispielsweise wird erwartet, dass es in einer Vielzahl von Bereichen eingesetzt wird, beispielsweise in der Reputationsanalyse von Inhouse-Produkten auf SNS im B2C-Geschäft und in der Angemessenheitsanalyse von Krediten und Investitionen auf der Grundlage von Unternehmensleistungsinformationen für das Finanzgeschäft.

In diesem Beitrag konzentrieren wir uns auf die Analyse der emotionalen Polarität, die in einer Vielzahl von Branchen angewendet werden kann, und erläutern das Folgende anhand des chABSA-Datensatzes, einem Python-Implementierungsbeispiel für die im Internet veröffentlichte Analyse der emotionalen Polarität.

2.2 Übersicht über die abzuwickelnde Vorverarbeitung

Im chABSA-Datensatz sind die Wertpapierberichtsdaten für das Geschäftsjahr 2016 (XBRL-Format [^ 1] / 2.260 Unternehmen / ca. 7,9 GB) werden als Rohdaten behandelt. Um positive / negative Informationen zur emotionalen Polarität aus den Sätzen zu extrahieren, die die Erfolge in diesen Daten erklären, erstellen wir ein überwachtes Lernmodell unter Verwendung der Support Vector Machine (SVM). Die Verarbeitung des chABSA-Datensatzes kann grob in drei Teile unterteilt werden.

[^ 1]: Die Daten im XBRL-Format haben eine verschachtelte XML-Struktur, sodass Metadaten außerhalb der HTML-Formatdaten des vom Unternehmen veröffentlichten Wertpapierberichts hinzugefügt werden.

(1) Annotationsverarbeitung zum Erstellen von Trainingsdaten, um ein Modell zu erstellen, das positive / negative Beurteilungen vornimmt (2) Modellerstellung (Lernen) Verarbeitung basierend auf den in (1) erstellten Daten (3) Verarbeitung der Emotionspolaritätsanalyse unter Verwendung des in (2) erstellten Modells

Die Datenvorverarbeitung im Bereich der Verarbeitung natürlicher Sprache ist in der ersten Hälfte der Verarbeitung (1) und (2) (vor der Modellerstellung) enthalten. Tabelle 2 zeigt die im Prozess (1) und im Prozess (2) enthaltene Datenvorverarbeitung.

Tabelle 2 Datenvorverarbeitung im chABSA-Datensatz

Datenstatus Verarbeitungsklassifizierung Erläuterung
Rohdaten(XBRL-Format) -
Reinigung Extrahieren Sie die HTML-Daten des Abschnitts, der die Leistung des Wertpapierberichts darstellt, aus den Rohdaten im Xbrl-Format, bei dem es sich um eine Art XML handelt.
Satz(HTML-Format) -
Reinigung Entfernen von HTML-Tags
Satz -
Teilen Zerlegen Sie Sätze in Wortketten
Wortzeichenfolge -
Normalisierung, Wortentfernung stoppen -Ersetzen Sie die Nummer durch 0-Entfernen Sie leere Zeichen
Für die Analyse erforderliche Wortzeichenfolge -
Vektorisierung Konvertieren Sie von Wortzeichenfolgen in numerische Daten
Merkmalsvektor -

2.3 Schätzung des Datenvolumens

Beim maschinellen Lernen sind die Verarbeitungszeit und die erforderlichen Ressourcen für die Verarbeitung und Lernverarbeitung umso größer, je größer die zu verarbeitende Datenmenge ist. Daher ist es notwendig, die Menge der Rohdaten, die eingegeben werden sollen, im Voraus zu schätzen.

Der Inhalt und die Menge des Textes im Wertpapierbericht (GJ2016), bei dem es sich um die Rohdaten im chABSA-Datensatz handelt, variieren von Unternehmen zu Unternehmen. Der auf EDINET veröffentlichte Wertpapierbericht im XBRL-Format enthält separate Datendateien für jedes Unternehmen, und die Datendatei für ein Unternehmen lag innerhalb von 10 MB. Der chABSA-Datensatz verarbeitet insgesamt 2.260 Unternehmensdaten mit insgesamt ca. 7,9 GB Daten.

Wenn Sie sich nun die in Tabelle 2 gezeigte Verarbeitung ansehen, sehen Sie zwei Dinge:

Erstens ist es möglich, jede Unternehmensdatendatei einzeln und nacheinander zu verarbeiten, und es ist nicht erforderlich, Daten für alle Unternehmen gleichzeitig verarbeiten zu können. Zweitens wirken sich die Vorverarbeitungsergebnisse der Datendatei eines Unternehmens nicht auf die Verarbeitungsergebnisse der Datendatei eines anderen Unternehmens aus. Daher ist es möglich, sie ohne Berücksichtigung der Verarbeitungsreihenfolge separat zu verarbeiten.

Aus diesen Gründen ist es nicht erforderlich, einen Server mit einer großen Kapazität zu haben, der alle Daten gleichzeitig in den Speicher laden kann, und es ist möglich, die Geschwindigkeit zu erhöhen, indem der Parallelverarbeitungs- / verteilte Verarbeitungsmechanismus angewendet wird, soweit die Ressourcen dies zulassen. Ich verstehe das.

2.4 OSS-Auswahl für die Vorverarbeitung

Bei der Vorverarbeitung der Verarbeitung natürlicher Sprache sind die charakteristischen Schritte Division (wenn die zu behandelnde Sprache Japanisch ist) und Vektorisierung. Hier sind einige Beispiele für die OSS-Auswahl einzeln für diese Prozesse.

2.4.1 Über Minutenschreiben (Wortteilung)

Tabelle 3 zeigt eine typische Gruppierungsbibliothek (morphologischer Analysator). Jede Bibliothek verfügt über unterschiedliche interne Implementierungen und Entwicklungssprachen, aber was Sie tun können, ist nicht viel anders.

Tabelle 3 Hauptschreibbibliotheken (morphologischer Analysator)

# Bibliotheksname Erläuterung
1 MeCab Mainstream japanischer morphologischer Analysatoren. Ein japanisches Wörterbuch, das auf dem IPA-Korpus basiert, ist gleichzeitig für die Öffentlichkeit zugänglich. C.++Arbeitet mit hoher Geschwindigkeit durch Implementierung in
2 Janome Ein wörterbuchverkapselter morphologischer Analysator, der nur in Python implementiert ist. Entwickelt, um Python-Programmierern die Verwendung zu erleichtern
3 CaboCha Morphologischer Analysator mit SVM. Sie müssen Ihr eigenes japanisches Wörterbuch vorbereiten und es unter Berücksichtigung der Datenrechte entwickeln.

Da Janome im chABSA-Dataset verwendet wird, können Datenwissenschaftler Janome oder andere Segregationsbibliotheken während der Vorverarbeitung der Modellentwicklung auch aus Gründen wie der einfachen Bereitstellung in der Entwicklungsumgebung verwenden.

Wenn Sie von einem Datenwissenschaftler zusammen mit dem Modell ein Vorverarbeitungsprogramm erhalten, müssen Sie möglicherweise die Bibliothek ändern und dabei auf die Lizenz und Leistung der Wörterbuchdaten achten.

In "Leistungsüberprüfung der Datenvorverarbeitung in der Verarbeitung natürlicher Sprache", die später hochgeladen wird, werden die Änderungspunkte und der Leistungsunterschied gezeigt, wenn der von Janome geschriebene Teilungsschreibprozess durch die Verwendung von MeCab ersetzt wird.

2.4.2 Über die Vektorisierung

Die Methode zum Ausdrücken des Merkmalsvektors hängt weitgehend davon ab, wie das Modell erstellt wird. Daher wird die Vektorisierungsmethode des Datenwissenschaftlers grundsätzlich im Code reproduziert, sodass keine besonders empfohlene Bibliothek vorhanden ist.

Die meisten Vektorisierungen in den letzten Jahren basieren auf der Verteilungshypothese, dass "Wortbedeutungen durch umgebende Wörter gebildet werden". Unter diesen gibt es ein "zählbasiertes Verfahren", das einen Vektor nach Häufigkeit des Auftretens erzeugt, und ein "inferenzbasiertes Verfahren", das einen Gewichtsvektor verwendet, um das anwendbare Wort aus der Wortsequenzinformation abzuleiten. Die erstere Methode wird im chABSA-Datensatz übernommen. Word2vec ist ein typisches Beispiel für die letztere Methode.

2.4.3 Andere Schritte

Die meisten anderen Prozesse als die Teilungs- und Vektorisierungsschritte, wie z. B. Bereinigen und Normalisieren, werden durch datenformatabhängige Analysen wie XML oder Ersetzen von Zeichenfolgen ausgeführt.

Die zu diesem Zeitpunkt erforderlichen Funktionen sind die datenformatabhängige Analysefunktion und die Verarbeitungsfunktion für reguläre Ausdrücke, die in Programmiersprachen Standard ist. Daher wird auch für diese Schritte keine bestimmte Bibliothek empfohlen.

Zusammenfassung

――In diesem Beitrag habe ich dargelegt, was die Verarbeitung natürlicher Sprache ist und welche Art von Vorverarbeitung sie hat.

Recommended Posts

Überblick über die Verarbeitung natürlicher Sprache und ihre Datenvorverarbeitung
Leistungsüberprüfung der Datenvorverarbeitung in der Verarbeitung natürlicher Sprache
Arten der Vorverarbeitung in der Verarbeitung natürlicher Sprache und ihre Leistungsfähigkeit
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
■ [Google Colaboratory] Vorverarbeitung der Verarbeitung natürlicher Sprache & Janome
Antworten und Eindrücke von 100 Sprachverarbeitungsklopfen - Teil 1
Verarbeiten Sie den Namen der Yugioh-Karte in natürlicher Sprache - Yugiou Data Science 2. NLP
Antworten und Eindrücke von 100 Sprachverarbeitungsklopfen - Teil 2
[WIP] Vorverarbeiten von Notizen in der Verarbeitung natürlicher Sprache
Einfaches Auffüllen von Daten, die in der Verarbeitung natürlicher Sprache verwendet werden können
Datenbereinigung 3 Verwendung von OpenCV und Vorverarbeitung von Bilddaten
Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache
Python: Verarbeitung natürlicher Sprache
RNN_LSTM2 Verarbeitung natürlicher Sprache
Vorverarbeitung von Präfekturdaten
Analyse von Finanzdaten durch Pandas und deren Visualisierung (2)
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Analyse von Finanzdaten durch Pandas und deren Visualisierung (1)
Vor- und Nachbearbeitung von Pytest
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Verarbeitung natürlicher Sprache 3 Wortkontinuität
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
Anwendung von Python: Datenbereinigung Teil 3: Verwendung von OpenCV und Vorverarbeitung von Bilddaten
100 Sprachverarbeitung Knock-42: Anzeige der Phrase der betroffenen Person und der betroffenen Person
Knock-70 mit 100 Sprachverarbeitung (unter Verwendung von Stanford NLP): Abrufen und Formatieren von Daten
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
100 Sprachverarbeitung Knock-59: Analyse der S-Formel
Warum ist der verteilte Ausdruck von Wörtern für die Verarbeitung natürlicher Sprache wichtig?
Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
[Word2vec] Lassen Sie uns das Ergebnis der Verarbeitung von Unternehmensbewertungen in natürlicher Sprache visualisieren
Zusammenfassung der Mehrprozessverarbeitung der Skriptsprache
Vorverarbeitung von Wikipedia-Dump-Dateien und gemeinsame Nutzung großer Datenmengen mit MeCab
Lernen Sie die Grundlagen der Dokumentklassifizierung durch Verarbeitung natürlicher Sprache, Themenmodell
Ich habe 0 Jahre Programmiererfahrung und fordere die Datenverarbeitung mit Python heraus
Python: Vorverarbeitung beim maschinellen Lernen: Umgang mit fehlenden / Ausreißern / unausgeglichenen Daten
[Verarbeitung natürlicher Sprache] Extrahieren Sie Schlüsselwörter aus der Kakenhi-Datenbank mit MeCab-ipadic-neologd und termextract
Sprachverarbeitung 100 Knocks-44: Visualisierung abhängiger Bäume
100 Sprachverarbeitung Knock-22: Extraktion des Kategorienamens
100 Klopfen der Verarbeitung natürlicher Sprache Kapitel 1 (Vorbereitungsbewegung)
100 Sprachverarbeitung Knock-26: Entfernen von hervorgehobenem Markup
3. Verarbeitung natürlicher Sprache durch Python 2-1. Netzwerk für das gleichzeitige Auftreten
3. Verarbeitung natürlicher Sprache durch Python 1-1. Word N-Gramm
Trennung von Design und Daten in matplotlib
Ich habe versucht, natürliche Sprache mit Transformatoren zu verarbeiten.
Beispiel für eine effiziente Datenverarbeitung mit PANDAS
Praktische Warenmitteilung zur Verarbeitung natürlicher Sprache
Python: Deep Learning in der Verarbeitung natürlicher Sprache: Implementierung eines Antwortsatzauswahlsystems
3. Verarbeitung natürlicher Sprache durch Python 2-2. Koexistenznetzwerk [mecab-ipadic-NEologd]
[Kaggle] Vom Lesen der Daten bis zur Vorverarbeitung und Codierung
[Python] Ich habe mit der Verarbeitung natürlicher Sprache ~ Transformatoren ~ gespielt
Verwenden Sie Dekorateure, um eine erneute Ausführung der Datenverarbeitung zu verhindern
[Pandas] Grundlagen der Verarbeitung von Datumsdaten mit dt