[PYTHON] Klassifizieren von SNLI-Datasets mit Word2Vec + LSTM

Es gibt SNLI als Datensatz, der klassifiziert, ob die beiden angegebenen Sätze eine Beziehung zwischen Annahmen und Hypothesen haben. Um dieses Problem zu lösen, habe ich versucht, ein Modell zu implementieren, das das erlernte Word2Vec [^ 6] und LSTM mit Keras kombiniert.

Details zum SNLI-Datensatz [^ 1] finden Sie im Artikel "Lesen des SNLI-Datensatzes" [^ 2]. Ich bin froh, wenn Sie es als Referenz verwenden können.

Vorbereitung

Laden Sie den SNLI-Datensatz herunter

Sie können es von The Stanford Natural Language Inference (SNLI) Corpus herunterladen.

wget https://nlp.stanford.edu/projects/snli/snli_1.0.zip
unzip snli_1.0.zip

Laden Sie trainierte Word2Vec-Gewichte herunter

Von Google News gelernte Word2Vec-Gewichte können über den Link "GoogleNews-vectors-negative300.bin.gz" auf der folgenden Website heruntergeladen werden [^ 6].

https://code.google.com/archive/p/word2vec/

Implementierung

Dies ist ein Code [^ 5], der ein Modell trainiert, das trainiertes Word2Vec und LSTM mit dem SNLI-Dataset kombiniert. Der Artikel [^ 3] wird hilfreich sein.

https://gist.github.com/namakemono/4e2a37375edf7a5e849b0a499897dcbe

Versuchsergebnis

Es kann bestätigt werden, dass die Leistung in etwa der des vorhandenen 300D LSTM entspricht [^ 11]. Von hier aus können Decomposable Attention [^ 7] [^ 8] und ESIM [^ 9] [^ 10] verwendet werden, um die Leistung weiter zu verbessern.

References

Recommended Posts

Klassifizieren von SNLI-Datasets mit Word2Vec + LSTM
Word2Vec mit BoUoW
Datensätze mit Pandas verarbeiten (2)
Zusammenführen von Datensätzen mit Pandas
Lerne Zundokokiyoshi mit LSTM
Multivariates LSTM mit Keras
Word2vec mit Theano + Keras implementiert
Emotionsanalyse von Python (word2vec)
Ich habe Word2Vec mit Pytorch gemacht