Dieses Repository bietet Code für Schulungen und Testen hochmoderner Modelle für die grammatikalische Fehlerkorrektur mit der offiziellen Pytorch-Implementierung des folgenden Papiers:
Gektor - Grammatikaler Korrektur: Tag, nicht umschreiben
Kostiantyn Omelianchuk, Vitaliy Atrasevych, Artem Chernodub, Oleksandr Skurzhanskyi
Grammatik
15. Workshop zur innovativen Nutzung von NLP zum Aufbau von Bildungsanwendungen (Co-Lokalisierung mit ACL 2020)
Es basiert hauptsächlich auf AllenNLP und transformers .
Der folgende Befehl installiert alle erforderlichen Pakete:
pip install -r requirements.txtDas Projekt wurde mit Python 3.7 getestet.
Alle im Papier verwendeten öffentlichen GEC -Datensätze können von hier heruntergeladen werden.
Synthetisch erstellte Datensätze können hier generiert/heruntergeladen werden.
Um die Modelldaten zu trainieren, müssen mit dem Befehl vorverarbeitet und in ein spezielles Format umgewandelt werden:
python utils/preprocess_data.py -s SOURCE -t TARGET -o OUTPUT_FILE| Vorbereiteter Encoder | Vertrauensverzerrung | Min Fehler prob | Connl-2014 (Test) | Bea-2019 (Test) |
|---|---|---|---|---|
| Bert [Link] | 0,1 | 0,41 | 61.0 | 68.0 |
| Roberta [Link] | 0,2 | 0,5 | 64.0 | 71,8 |
| Xlnet [Link] | 0,2 | 0,5 | 63.2 | 71.2 |
Hinweis : Die Bewertungen in der Tabelle unterscheiden sich von den Papiers, da die spätere Version von Transformers verwendet wird. Verwenden Sie diese Version des Repositorys, um die im Papier gemeldeten Ergebnisse zu reproduzieren.
Um das Modell zu trainieren, rennen Sie einfach:
python train.py --train_set TRAIN_SET --dev_set DEV_SET
--model_dir MODEL_DIRUnter ihnen gibt es viele Parameter:
cold_steps_count die Anzahl der Epochen, in denen wir nur die letzte lineare Schicht trainierentransformer_model {bert,distilbert,gpt2,roberta,transformerxl,xlnet,albert} Modell Encodertn_prob -Wahrscheinlichkeit, Sätze ohne Fehler zu erhalten; hilft, Präzision/Rückruf auszugleichenpieces_per_token Hilft, Cuda nicht aus dem Gedächtnis zu holenIn unseren Experimenten hatten wir 98/2 Zug/Dev Split.
Wir haben alle Parameter beschrieben, die wir hier zum Training und zur Bewertung verwenden.
Um Ihr Modell in der Eingabedatei auszuführen, verwenden Sie den folgenden Befehl:
python predict.py --model_path MODEL_PATH [MODEL_PATH ...]
--vocab_path VOCAB_PATH --input_file INPUT_FILE
--output_file OUTPUT_FILEUnter den Parametern:
min_error_probability - Mindestfehlerwahrscheinlichkeit (wie im Papier)additional_confidence - Vertrauensverzerrung (wie im Papier)special_tokens_fix , um einige gemeldete Ergebnisse von vorbereiteten Modellen zu reproduzierenVerwenden Sie für die Bewertung m^2Scorer und fehlerhaft.
Dieses Repository implementiert auch den Code des folgenden Papiers:
Textverfolgung durch Markieren
Kostiantyn Omelianchuk, Vipul Raheja, Oleksandr Skurzhanskyi
Grammatik
16. Workshop zur innovativen Nutzung von NLP zum Aufbau von Bildungsanwendungen (Co-Lokalisierung von W EACL 2021)
Für die Datenvorverarbeitung, Training und Testen der gleichen Schnittstelle wie für GEC kann es verwendet werden. Sowohl für Schulungs- als auch für Bewertungsstadien utils/filter_brackets.py wird zum Entfernen von Rauschen verwendet. Während der Inferenz verwenden wir --normalize Flagge.
| SARI | Fkgl | ||
|---|---|---|---|
| Modell | Turkcorpus | VERMÖGENSWERT | |
| TST-Finale [Link] | 39.9 | 40.3 | 7.65 |
| TST-Finale + -Pedaks | 41.0 | 42.7 | 7.61 |
Inferenz optimiert Parameter:
iteration_count = 2
additional_keep_confidence = -0.68
additional_del_confidence = -0.84
min_error_probability = 0.04
Verwenden Sie für die Bewertung das EASSE -Paket.
HINWEIS : Die Ergebnisse in der Tabelle stehen denen in der Zeitung sehr nahe, entsprechen jedoch aus den beiden Gründen nicht vollständig:
Wenn Sie feststellen, dass diese Arbeit für Ihre Forschung nützlich ist, zitieren Sie bitte unsere Papiere:
@inproceedings{omelianchuk-etal-2020-gector,
title = "{GECT}o{R} {--} Grammatical Error Correction: Tag, Not Rewrite",
author = "Omelianchuk, Kostiantyn and
Atrasevych, Vitaliy and
Chernodub, Artem and
Skurzhanskyi, Oleksandr",
booktitle = "Proceedings of the Fifteenth Workshop on Innovative Use of NLP for Building Educational Applications",
month = jul,
year = "2020",
address = "Seattle, WA, USA → Online",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2020.bea-1.16",
pages = "163--170",
abstract = "In this paper, we present a simple and efficient GEC sequence tagger using a Transformer encoder. Our system is pre-trained on synthetic data and then fine-tuned in two stages: first on errorful corpora, and second on a combination of errorful and error-free parallel corpora. We design custom token-level transformations to map input tokens to target corrections. Our best single-model/ensemble GEC tagger achieves an F{_}0.5 of 65.3/66.5 on CONLL-2014 (test) and F{_}0.5 of 72.4/73.6 on BEA-2019 (test). Its inference speed is up to 10 times as fast as a Transformer-based seq2seq GEC system.",
}
@inproceedings{omelianchuk-etal-2021-text,
title = "{T}ext {S}implification by {T}agging",
author = "Omelianchuk, Kostiantyn and
Raheja, Vipul and
Skurzhanskyi, Oleksandr",
booktitle = "Proceedings of the 16th Workshop on Innovative Use of NLP for Building Educational Applications",
month = apr,
year = "2021",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2021.bea-1.2",
pages = "11--25",
abstract = "Edit-based approaches have recently shown promising results on multiple monolingual sequence transduction tasks. In contrast to conventional sequence-to-sequence (Seq2Seq) models, which learn to generate text from scratch as they are trained on parallel corpora, these methods have proven to be much more effective since they are able to learn to make fast and accurate transformations while leveraging powerful pre-trained language models. Inspired by these ideas, we present TST, a simple and efficient Text Simplification system based on sequence Tagging, leveraging pre-trained Transformer-based encoders. Our system makes simplistic data augmentations and tweaks in training and inference on a pre-existing system, which makes it less reliant on large amounts of parallel training data, provides more control over the outputs and enables faster inference speeds. Our best model achieves near state-of-the-art performance on benchmark test datasets for the task. Since it is fully non-autoregressive, it achieves faster inference speeds by over 11 times than the current state-of-the-art text simplification system.",
}