Chinesische Metapher
CCL 2018 Gemeinsame Aufgabe – Erkennung chinesischer Metaphern und Stimmungsanalyse
Aufgabenbeschreibung
- Missionsdetails: http://ir.dlut.edu.cn/news/detail/508
- Update: Unteraufgabe 1 ist eine Aufgabe mit zwei Kategorien. Sie müssen nur feststellen, ob es sich um eine Verbmetapher handelt.
- Zeit: Einsendeschluss um 9.30 Uhr. Jedes Team kann am 9. September, 16. September, 23. September und 30. September Ergebnisse einreichen, ab 22:00 Uhr jeden Sonntag; jedes Team kann Ergebnisse nur dreimal pro Woche einreichen und gemäß den zuletzt eingereichten Ergebnissen berechnen Rang. Es wird am 10., 17., 24. September und 1. Oktober vor 17:00 Uhr auf der Website (http://ir.dlut.edu.cn/) bekannt gegeben.
- Trainingsdaten: http://ir.dlut.edu.cn/File/Download?cid=3 „CCL 2018 Chinese Metapher Recognition and Sentiment Analysis Evaluation Data“
- Testdaten (unbeschriftet): http://ir.dlut.edu.cn/File/Download?cid=3 „CCL 2018 Chinese Metapher Recognition and Sentiment Analysis Test Data“
- Hinweis: Gemäß den Vorgaben des Veranstalters darf dieser Datensatz nur für diese Auswertungsaufgabe verwendet werden. Für andere Verwendungszwecke wenden Sie sich bitte an den Veranstalter.
Repo-Struktur
- /Corpus: Speichert den Penn StateUCMC chinesischen Metapherkorpus (noch nicht verwendet)
- /data: Trainings- und Testdaten
- /dicts: die relationalen Wörterbücher der beiden Unteraufgaben sowie das Vokabular
- /memo: Sitzungsprotokoll
- /model_structure: Strukturdiagramm des NN-Modells
- /Papier: Verwandte Literatur
- /pretrained_emb: Aus dem Internet heruntergeladene vorab trainierte Worteinbettung (basierend auf Wikipedia), gefiltert
- /src: Code
- /results: Modellevaluierungsergebnisse und generierte Testetiketten
- /models: Sie müssen diesen Pfad selbst erstellen. Nachfolgend finden Sie zwei Unterpfade: /verb und /emo, die zum Speichern der trainierten Modelle verwendet werden.
- /submission: Übermittelte Ergebnisdateien, gespeichert nach Datum
Codestruktur
- Kerncode:
- conf.py: Verschiedene Parameter festlegen
- multi_cgru_keras.py: Modellstruktur
- train.py: Trainieren Sie das Modell anhand von 90 % der Trainingsdaten
- eva_model.py: Bewerten Sie die Modellleistung anhand von 10 % der Trainingsdaten
- generic_test_labels.py: Vorhersagen von Beschriftungen für den Testsatz
- Hilfscode:
- split_data.py: Teilen Sie den Trainingssatz in 90 % (für das Training) und 10 % (für die Bewertung der Modellleistung) auf.
- back_translate.py: Verwenden Sie die Google Translate API, um Trainingsdaten hinzuzufügen
- Convert_data.py: Konvertieren Sie Daten von XML in TXT und konvertieren Sie numerische Beschriftungen in leicht verständliche Textbeschriftungen
- data_provider.py: Daten lesen und für das Training vorbereiten
- filter_wordemb.py: Filtern Sie vorab trainierte Wortvektoren basierend auf Trainings- und Testdaten und behalten Sie nur Wörter bei, die in den Daten vorkommen (die aktuellen Wiki-Wortvektoren wurden gefiltert).
So führen Sie Code aus
- Legen Sie relevante Parameter in conf.py fest
- Führen Sie train.py aus, um das Modell zu trainieren
- Führen Sie eva_model.py aus, um die Modellleistung zu bewerten
- Wählen Sie basierend auf den Bewertungsergebnissen im dritten Schritt das Modell mit der besseren Leistung aus und verwenden Sie „generate_test_labels“, um Testdatenetiketten zu generieren.
Erledigt
- NN-Basislinie: Basierend auf CGRU beträgt die beste Leistung (Genauigkeit) etwa 70 % für Aufgabe 1 und etwa 39 % für Aufgabe 2.
- Vergleich: Mehrheitsbasislinie, Aufgabe 2 37 %
- Vergleich: Naive Basislinie basierend auf emotionalem Lexikon, ohne maschinelles Lernen, Aufgabe 2 51 %
- Probieren Sie basierend auf NN Bseline die folgenden Funktionen aus:
- Einbettungsebene optimieren
- Verwenden Sie die vorab trainierte Einbettung, um die vom Modell selbst gelernte Einbettung zu ersetzen. Die beste Leistung von Aufgabe 2 liegt bei etwa 50 %.
- Wortvektorspleißen: kombiniert mit der Reduzierung des Glättungsparameters, Task2-Makro f – 39,6 %
- Rückübersetzung
- Google Translate 6 Sprachen, mehrere Filtermethoden getestet, Aufgabe 2 hat die beste Leistung von etwa 53 %
- Andere Modellstrukturen
- Verwenden Sie die Einbettung direkt als Klassifizierungsmerkmal
- LSTM+vollständig verbunden: Task2-Makro f - 40 %
- Eine kleine Fehleranalyse:
- Es wurde festgestellt, dass die Überanpassung schwerwiegend war, daher habe ich versucht, l2(Corner), Dropout(Corner) und Smooth(↓) anzupassen, aber es wurden keine großen Änderungen festgestellt. Gleichzeitig wurde festgestellt, dass die Leistung des gleichen Modells war instabil (der Unterschied zwischen mehreren Ausführungen von Task2 konnte 10 % erreichen)
- Einige der schlimmen Fälle sind Sätze mit Übergängen (z. B. enthalten sie Wörter wie „wie könnte es nicht sein“, „kann nicht“, „seit“ usw.)
- Es wurde festgestellt, dass einige der Anmerkungen in den Daten fragwürdig waren
- Erhalten Sie den Penn State Chinese-Metapherkorpus, der zum Selbsttraining der Worteinbettung verwendet werden kann
- Ergänzendes Trainingskorpus: Verwenden Sie ein anderes englisches Korpus, um es zurückzuübersetzen und das Trainingskorpus zu ergänzen
- Parameter anpassen
Todolist
- Probieren Sie weitere Funktionen basierend auf der NN-Basislinie aus:
- Optimieren Sie die Einbettungsebene weiter
- Verwenden Sie andere vorab trainierte Einbettungen: z. B. Einbettungen, die auf dem Penn State-Metapherkorpus trainiert wurden, ELMo-Einbettungen usw.
- Fügen Sie das emotionale Vokabular zu nn hinzu:
- Einbetten von Etiketten: Die bestehende Methode wird nur für Etiketten mit progressiven Beziehungen (sehr negativ, negativ, neutral, pos, sehr pos) verwendet.
- Unterkategorie der Verben und Substantive
- Abhängigkeitsbeziehung
- Untersuchen Sie durch Beobachtung der Daten die Rolle von Funktionswörtern in den beiden Teilaufgaben und entscheiden Sie dann, welche Informationen über die Funktionswörter dem Modell hinzugefügt werden sollen. Funktionswörter: Welche Informationen sind hilfreich?
- Probieren Sie andere Modellstrukturen aus:
- (Siehe den Artikel „Baseline Needs More Love: On Simple Word-Embedding-Based Models and Associated Pooling Mechanisms“)
- Verwenden Sie Transformer als Satzkodierer (siehe Artikel „Aufmerksamkeit ist alles, was Sie brauchen“).
Ressourcen
- Penn State Chinese Metapher Corpus (http://www.personal.psu.edu/xxl13/download.html)
- Emotionsvokabular-Ontologiebibliothek der Technischen Universität Dalian (http://ir.dlut.edu.cn/EmotionOntologyDownload)
Veranstalter
Forschungslabor für Information Retrieval der Technischen Universität Dalian