Repositori ini menyediakan kode untuk pelatihan dan pengujian model canggih untuk koreksi kesalahan tata bahasa dengan implementasi Pytorch resmi dari makalah berikut:
Gector - Koreksi Kesalahan Tata Bahasa: Tag, tidak menulis ulang
Kostiantyn Omelianchuk, Vitaliy Atrasevych, Artem Chernodub, Oleksandr Skurzhanskyi
Tata bahasa
Lokakarya ke-15 tentang penggunaan inovatif NLP untuk membangun aplikasi pendidikan (berlokasi bersama dengan ACL 2020)
Ini terutama didasarkan pada AllenNLP dan transformers .
Perintah berikut menginstal semua paket yang diperlukan:
pip install -r requirements.txtProyek ini diuji menggunakan Python 3.7.
Semua dataset GEC publik yang digunakan dalam makalah ini dapat diunduh dari sini.
Kumpulan data yang dibuat secara sintetis dapat dihasilkan/diunduh di sini.
Untuk melatih data model harus diproses dan dikonversi ke format khusus dengan perintah:
python utils/preprocess_data.py -s SOURCE -t TARGET -o OUTPUT_FILE| Encoder pretrained | Bias kepercayaan diri | Min kesalahan prob | Connl-2014 (Tes) | BEA-2019 (tes) |
|---|---|---|---|---|
| Bert [tautan] | 0.1 | 0.41 | 61.0 | 68.0 |
| Roberta [tautan] | 0.2 | 0,5 | 64.0 | 71.8 |
| Xlnet [tautan] | 0.2 | 0,5 | 63.2 | 71.2 |
Catatan : Skor dalam tabel berbeda dari yang kertas, karena versi transformer yang lebih baru digunakan. Untuk mereproduksi hasil yang dilaporkan dalam makalah, gunakan versi repositori ini.
Untuk melatih model, cukup jalankan:
python train.py --train_set TRAIN_SET --dev_set DEV_SET
--model_dir MODEL_DIRAda banyak parameter untuk ditentukan di antara mereka:
cold_steps_count jumlah zaman di mana kita hanya melatih lapisan linier terakhirtransformer_model {bert,distilbert,gpt2,roberta,transformerxl,xlnet,albert} Model Encodertn_prob probabilitas mendapatkan kalimat tanpa kesalahan; membantu menyeimbangkan presisi/recallpieces_per_token Jumlah maksimum subword per token; membantu untuk tidak mengeluarkan Cuda dari ingatanDalam percobaan kami, kami memiliki 98/2 Train/Dev Split.
Kami menggambarkan semua parameter yang kami gunakan untuk pelatihan dan evaluasi di sini.
Untuk menjalankan model Anda pada file input, gunakan perintah berikut:
python predict.py --model_path MODEL_PATH [MODEL_PATH ...]
--vocab_path VOCAB_PATH --input_file INPUT_FILE
--output_file OUTPUT_FILEDi antara parameter:
min_error_probability - probabilitas kesalahan minimum (seperti di koran)additional_confidence - bias kepercayaan (seperti di koran)special_tokens_fix untuk mereproduksi beberapa hasil yang dilaporkan dari model pretrainedUntuk evaluasi penggunaan M^2Scorer dan salah.
Repositori ini juga mengimplementasikan kode dari makalah berikut:
Penyederhanaan teks dengan menandai
Kostiantyn Omelianchuk, Vipul Raheja, Oleksandr Skurzhanskyi
Tata bahasa
Lokakarya ke-16 tentang Penggunaan Inovatif NLP untuk Membangun Aplikasi Pendidikan (Co-Located W EACL 2021)
Untuk preprocessing data, pelatihan dan pengujian antarmuka yang sama seperti untuk GEC dapat digunakan. Untuk tahap pelatihan dan evaluasi utils/filter_brackets.py digunakan untuk menghilangkan noise. Selama inferensi, kami menggunakan --normalize bendera.
| SARI | Fkgl | ||
|---|---|---|---|
| Model | Turkcorpus | ASET | |
| TST-final [tautan] | 39.9 | 40.3 | 7.65 |
| TST-Final + Tweak | 41.0 | 42.7 | 7.61 |
Parameter Tweak Inferensi:
iteration_count = 2
additional_keep_confidence = -0.68
additional_del_confidence = -0.84
min_error_probability = 0.04
Untuk evaluasi menggunakan paket EASSE.
Catatan : Skor dalam tabel sangat dekat dengan yang ada di koran, tetapi tidak sepenuhnya mencocokkannya karena 2 alasan:
Jika Anda menemukan pekerjaan ini berguna untuk penelitian Anda, silakan kutip makalah kami:
@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.",
}