[PYTHON] Modell unter Verwendung eines Faltungsnetzwerks in der Verarbeitung natürlicher Sprache

Einführung

In letzter Zeit hat die Verarbeitung natürlicher Sprache unter Verwendung des Convolutional Neural Network (CNN) Aufmerksamkeit erregt. Im Vergleich zu RNN ist CNN einfacher zu parallelisieren, und mithilfe der GPU kann die Faltungsberechnung mit hoher Geschwindigkeit durchgeführt werden, sodass der Vorteil einer überwältigend hohen Verarbeitungsgeschwindigkeit besteht.

Dieser Artikel ist eine Zusammenstellung von Modellen, die Faltungs-Neuronale Netze in der Verarbeitung natürlicher Sprache verwenden. Wir hoffen, dies wird Ihnen helfen, den Fortschritt der Forschung zur Verarbeitung natürlicher Sprache mit CNN aus der Vogelperspektive zu betrachten.

Satzklassifizierung (Reputationsanalyse, Themenklassifizierung, Fragetypklassifizierung)

Convolutional Neural Networks for Sentence Classification(2014/08) Ein Artikel, der ein CNN vorschlägt, das eine Satzklassifizierung wie Reputationsanalyse und Fragetypklassifizierung durchführt. スクリーンショット 2017-02-03 5.39.48.png

Insbesondere werden Sätze als eine Folge von Wortvektoren dargestellt, und Merkmale werden unter Verwendung von CNN extrahiert und klassifiziert. In dem Artikel wird berichtet, dass die Leistung durch Verwendung des vorgelernten Wortvektors verbessert wurde (Google News mit word2vec gelernt). Es ist interessant, dass jeder der beiden Kanäle einen Wortvektor darstellt, einer wird während des Lernens aktualisiert und der andere wird nicht aktualisiert, um die Leistung zu verbessern. Bei der Bewertung von sieben Dokumentenklassifizierungsaufgaben, einschließlich Reputationsanalyse und Fragetypklassifizierung, ergaben vier von sieben Aufgaben die besten Ergebnisse aller Zeiten.

Die Implementierung von Theano durch den Autor und die Implementierung von TensorFlow durch Denny Britz von Google Brain: https://github.com/yoonkim/CNN_sentence https://github.com/dennybritz/cnn-text-classification-tf

Eine kurze Erklärung und Implementierung auf Japanisch von ichiroex [Chainer] Klassifizierung von Dokumenten nach Faltungsnetzwerken

Deep Convolutional Neural Networks for Sentiment Analysis of Short Texts(2014/08) Ein Artikel mit dem Vorschlag von CNN (CharSCNN), der den Ruf von Filmkritiken und Twitter analysiert. スクリーンショット 2017-02-03 5.42.02.png

Die Reputationsanalyse für Kurztexte wie Twitter hat das Problem, dass es schwierig ist, weil die Kontextinformationen begrenzt sind. Um dieses Problem zu lösen, haben wir die Leistung verbessert, indem wir zusätzlich zu den normalerweise in der Reputationsanalyse verwendeten Vektordarstellungen auf Wortebene Vektordarstellungen auf Zeichenebene erstellt und diese zum Erhalten von Satzvektordarstellungen verwendet haben. Ich habe das gemacht. Experimente mit Datensätzen für Filmkritiken (SSTb) und Twitter (STS) haben zu besseren Ergebnissen geführt als frühere Methoden.

Die Implementierung von hogefugabar: https://github.com/hogefugabar/CharSCNN-theano

Ich habe auch einen Kommentar geschrieben: Emotionale Analyse von Tweets durch tiefes Lernen

#TAGSPACE: Semantic Embeddings from Hashtags(2014/10) Ein Artikel, der ein CNN vorschlägt, das kurze Textausdrücke mithilfe von Hash-Tags lernt, die in SNS als Lehrer verwendet werden. スクリーンショット 2017-02-03 5.47.14.png

Insbesondere wird unter Verwendung von CNN die Bewertung für das Paar von Hash-Tags ausgegeben, die dem eingegebenen Text entsprechen, und der Ausdruck des Textes wird beim Ranking der Hash-Tags gelernt. Als Ergebnis der Bewertung durch Hash-Tag-Vorhersage und Dokumentempfehlungsaufgabe war das Ergebnis besser als die Basismethode.

Effective Use of Word Order for Text Categorization with Convolutional Neural Networks(2014/12) Ein Artikel, der ein CNN für die Textklassifizierung unter Berücksichtigung der Wortreihenfolge vorschlägt. スクリーンショット 2017-02-03 5.59.33.png

Es gibt verschiedene Aufgaben bei der Klassifizierung von Dokumenten, aber bei Aufgaben wie der Reputationsanalyse kann keine hohe Leistung erzielt werden, wenn nicht die Wortreihenfolge berücksichtigt wird. Um dieses Problem zu lösen, schlagen wir ein CNN vor, das Dokumente unter Berücksichtigung der Wortreihenfolge klassifizieren kann. Insbesondere geben die meisten CNN-Methoden das Einbetten von Wörtern als Eingabe ein, aber in dieser Studie werden hochdimensionale One-Hot-Vektoren eingegeben, um das Einbetten in einen kleinen Textbereich zu lernen. Als Ergebnis des Vergleichs der drei Datensätze im Zusammenhang mit der Reputationsanalyse (einschließlich IMDB) und der Themenklassifizierung mit der SOTA-Methode wurde die Wirksamkeit der vorgeschlagenen Methode gezeigt.

Implementiert vom Autor des Papiers: http://riejohnson.com/cnn_download.html

Semi-supervised Convolutional Neural Networks for Text Categorization via Region Embedding(2015/04) スクリーンショット 2017-02-03 5.48.32.png

Eine Geschichte, die einen halbüberwachten Lernrahmen vorschlug, der CNN für die Textklassifizierung verwendet. In dem herkömmlichen Modell wurde die vorgelernte Worteinbettung für die Eingabe der Faltungsschicht verwendet, aber in dieser Untersuchung wird die Einbettung aus einem kleinen Textbereich ohne Lehrer gelernt und als Teil der Eingabe der Faltungsschicht in das überwachte CNN verwendet. Experimente mit Reputationsanalyse (IMDB, Elec) und Themenklassifizierung (RCV1) zeigten eine höhere Leistung als frühere Studien.

Implementiert vom Autor des Papiers: http://riejohnson.com/cnn_download.html

Character-level Convolutional Networks for Text Classification(2015/09) スクリーンショット 2017-02-03 5.43.09.png

Eine Geschichte über die Verwendung eines Faltungsnetzwerks auf Zeichenebene für die Textklassifizierung. Wir erhöhen die Daten, indem wir Wörter im Text durch Synonyme mit einer Cissolus ersetzen. Der Vergleich wird mit Bogen, Bag-of-Ngram, Bag-of-Means als traditionelle Methode und wortbasiertem CNN und LSTM als Deep-Learning-Methode durchgeführt. Acht Datensätze wurden erstellt und mit der Basismethode verglichen, und einige Datensätze zeigten Wirksamkeit.

Lua Implementierung durch den Autor: https://github.com/zhangxiangxiao/Crepe

A Sensitivity Analysis of (and Practitioners' Guide to) Convolutional Neural Networks for Sentence Classification(2015/10) スクリーンショット 2017-02-03 5.46.08.png

Das CNN-Modell liefert gute Ergebnisse bei der Satzklassifizierung, erfordert jedoch einen Experten, um die Architektur zu bestimmen und Hyperparameter festzulegen. Ich bin mir nicht sicher, welche Konsequenzen diese Änderungen haben werden, daher habe ich sie mit weiteren CNNs überprüft. Schließlich gibt er praktische Ratschläge zum Festlegen der Modellarchitektur und der Hyperparameter bei der Klassifizierung von Sätzen mit CNN.

Serienkennzeichnung (Partizipationskennzeichnung, Erkennung eindeutiger Ausdrücke, Chunking)

Natural Language Processing (almost) from Scratch(2011/03) スクリーンショット 2017-02-03 5.52.26.png

Eine Geschichte, die ein neuronales Netzwerk vorschlug, das das Markieren von Teilwörtern, das Chunking, das Extrahieren eindeutiger Ausdrücke und die Zuweisung semantischer Rollen lernen kann. Obwohl die Leistung durch einfaches Training niedriger als der Benchmark war, wurde gezeigt, dass ein guter Wortvektor zur Leistungsverbesserung beiträgt, indem das Sprachmodell im Voraus unter Verwendung unbeschrifteter Daten trainiert wird. Darüber hinaus wurde gezeigt, dass die Leistung weiter verbessert werden kann, indem Parameter zwischen Modellen zum Lösen jeder Aufgabe und zum Durchführen von Multitasking-Lernen ausgetauscht werden.

Zusammenfassungsfolie auf Japanisch: Verarbeitung natürlicher Sprache (fast) von Grund auf neu (6. Deep Learning Study Group Material; Sakaki)

Learning Character-level Representations for Part-of-Speech Tagging(2014/07) スクリーンショット 2017-02-03 5.51.27.png

Eine Geschichte über das Markieren von Teilwörtern mit CNN (CharWNN). Insbesondere haben wir eine Vektordarstellung von Wörtern durch Integrieren von Einbettungen auf Wortebene und Zeichenebene erstellt und eine CNN erstellt, die die Teilbewertung durch Eingabe des konstruierten Vektors ausgibt. Experimente mit Datensätzen für Englisch und Portugiesisch (WSJ und Mac-Morpho) führten zu SOTA-Ergebnissen.

Sprachmodell

Language Modeling with Gated Convolutional Networks(2016/12) スクリーンショット 2017-02-03 9.05.21.png

Es wird gesagt, dass CNN bei der Aufgabe des Sprachmodells eine Genauigkeit erreicht hat, die gleich oder höher als LSTM ist. Das gefaltete Ergebnis wird von einem GRU-ähnlichen Mechanismus verarbeitet, damit frühere Informationen nicht verloren gehen. Das Google Billion Word-Dataset hat die gleiche Genauigkeit wie LSTM, die Berechnungseffizienz wurde jedoch um das 20-fache verbessert.

Implementiert von TensorFlow: Language-Modeling-GatedCNN

abschließend

Der folgende Twitter-Account bietet eine Zusammenfassung der neuesten Papierinformationen zu maschinellem Lernen, Verarbeitung natürlicher Sprache und Computer Vision. Wir warten darauf, dass Sie uns folgen, da wir interessante Inhalte für diejenigen liefern, die diesen Artikel lesen. arXivTimes

Referenz

Recommended Posts

Modell unter Verwendung eines Faltungsnetzwerks in der Verarbeitung natürlicher Sprache
[Sprachverarbeitung 100 Schläge 2020] Kapitel 8: Neuronales Netz
Versuchen Sie es mit TensorFlow-Part 2-Convolution Neural Network (MNIST).
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
Erstellt ein Bildunterscheidungsmodell (cifar10) unter Verwendung eines Faltungs-Neuronalen Netzwerks
3. Verarbeitung natürlicher Sprache durch Python 2-2. Koexistenznetzwerk [mecab-ipadic-NEologd]
Eine andere Stilkonvertierungsmethode unter Verwendung des Convolutional Neural Network
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen
Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache
Python: Verarbeitung natürlicher Sprache
Implementieren Sie das Convolutional Neural Network
RNN_LSTM2 Verarbeitung natürlicher Sprache
Erfahrung mit faltbaren neuronalen Netzen
Leistungsüberprüfung der Datenvorverarbeitung in der Verarbeitung natürlicher Sprache
Implementierung eines Faltungs-Neuronalen Netzwerks mit nur Numpy
Probieren Sie das Buch "Einführung in die Entwicklung natürlicher Anwendungen in 15 Schritten" aus - Kapitel 3 Schritt 09 Memo "Identifier by Neural Network"
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Verarbeitung natürlicher Sprache 3 Wortkontinuität
Implementierung eines neuronalen Netzwerks in Python
Verwenden des Python-Modus in der Verarbeitung
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
Arten der Vorverarbeitung in der Verarbeitung natürlicher Sprache und ihre Leistungsfähigkeit
Versuchen Sie, ein neuronales Netzwerk in Python aufzubauen, ohne eine Bibliothek zu verwenden
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
Japanische Verarbeitung natürlicher Sprache mit Python3 (4) Emotionsanalyse durch logistische Regression
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 4 Kommentar
100 Sprachverarbeitung Knock Kapitel 1 in Python
Verarbeitung natürlicher Sprache für vielbeschäftigte Menschen
100 Sprachverarbeitung Knock-76 (mit Scicit-Learn): Beschriftung
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
Natürliche Sprache: Word2Vec Part3 - CBOW-Modell
Einfaches Klassifizierungsmodell mit neuronalem Netz
Erstellen Sie mit BERT + LightGBM + optuna ganz einfach ein Modell für die Verarbeitung natürlicher Sprache
Was ist das Convolutional Neural Network?
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
100 Sprachverarbeitung Knock 2020 Kapitel 8: Neuronales Netz
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
Sprachverarbeitung 100 Knocks-31 (mit Pandas): Verben
100 Sprachverarbeitung Knock-73 (mit Scikit-Learn): Lernen
Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
100 Sprachverarbeitung Knock-74 (mit Scicit-Learn): Vorhersage
Natürliche Sprache: Word2Vec Part2 - Skip-Gramm-Modell
100 Sprachverarbeitung Knock-38 (mit Pandas): Histogramm
Probieren Sie das Buch "Einführung in die Verarbeitung natürlicher Sprachanwendungen in 15 Schritten" - Kapitel 3 Schritt 08 Memo "Einführung in neuronale Netze".
Einfaches Auffüllen von Daten, die in der Verarbeitung natürlicher Sprache verwendet werden können
Sie werden in 100 Tagen Ingenieur. ――Tag 66 ――Programmieren ――Über die Verarbeitung natürlicher Sprache
Lernen Sie die Grundlagen der Dokumentklassifizierung durch Verarbeitung natürlicher Sprache, Themenmodell
100 Sprachverarbeitung Knock-97 (mit Scicit-Learn): k-bedeutet Clustering
Überlebensvorhersage unter Verwendung des titanischen neuronalen Netzes von Kaggle [80,8%]
100 Sprachverarbeitung Knock-33 (mit Pandas): Sahen Nomen
Verarbeiten Sie den Namen der Yugioh-Karte in natürlicher Sprache - Yugiou Data Science 2. NLP
Asynchrone Verarbeitung mit Linebot in der Jobwarteschlange
100 Klopfen der Verarbeitung natürlicher Sprache Kapitel 1 (Vorbereitungsbewegung)
100 Sprachverarbeitung Knock-71 (mit Stanford NLP): Stoppwort
3. Verarbeitung natürlicher Sprache durch Python 1-1. Word N-Gramm
100 Sprachverarbeitung Knock-35 (mit Pandas): Nomenklatur
Natürliche Sprache: Maschinelle Übersetzung Teil 2 - Neuronaler maschineller Übersetzungstransformator
Implementierung von "verschwommenen" neuronalen Netzen mit Chainer
Einfache Implementierung eines neuronalen Netzwerks mithilfe der Chainer-Datenaufbereitung