readme: ---
  language: 
  - en
  
  tags:
  - gec
  
  library_name: opennmt
  license: mit
  metrics:
  - bleu
  
  inference: false
  ---
  
  ### Introduction
  
  This repository contains a description on how to use OpenNMT on the Grammar Error Correction (GEC) task. The idea is to approch GEC as a translation task
  
  ### Usage
  
  Install the necessary dependencies:
  
  
  ```bash
  pip3 install ctranslate2 pyonmttok
  ```
  
  
  Simple tokenization & translation using Python:
  
  
  ```python
  import ctranslate2
  import pyonmttok
  from huggingface_hub import snapshot_download
  model_dir = snapshot_download(repo_id="jordimas/gec-opennmt-english", revision="main")
  
  tokenizer=pyonmttok.Tokenizer(mode="none", sp_model_path = model_dir + "/sp_m.model")
  tokenized=tokenizer.tokenize("The water are hot. My friends are going to be late. Today mine mother is in Barcelona.")
  
  translator = ctranslate2.Translator(model_dir)
  translated = translator.translate_batch([tokenized[0]])
  print(tokenizer.detokenize(translated[0][0]['tokens']))
  ```
  
  # Model
  
  The model has been training using the [clang8](https://github.com/google-research-datasets/clang8) corpus for English language.
  
  Details:
    * Model: TransformerBase
    * Tokenizer: SentencePiece
    * BLEU = 85.50
  
  # Papers
  
  Relevant papers:
  
  * [Approaching Neural Grammatical Error Correction as a Low-Resource Machine Translation Task](https://aclanthology.org/N18-1055.pdf)
  * [A Simple Recipe for Multilingual Grammatical Error Correction](https://arxiv.org/pdf/2106.03830.pdf)
  
  
  # Contact
  
  Email address: Jordi Mas: jmas@softcatala.org
  