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
Das Inhaltsverzeichnis dieses Beitrags lautet wie folgt.
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.
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 | - |
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.
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 | - |
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.
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.
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.
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.
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.
――In diesem Beitrag habe ich dargelegt, was die Verarbeitung natürlicher Sprache ist und welche Art von Vorverarbeitung sie hat.
Recommended Posts