Model
English grammatical error correction using T5-base model.
Data
Lang-8 Corpus of Learner English and The National University of Singapore Corpus of Learner English (NUCLE).
Usage
import torch
from transformers import (
T5Tokenizer,
T5ForConditionalGeneration
)
model_name = "jasonlau/en-grammar-correction"
tokenizer = T5Tokenizer.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name)
gec = GEC(model, tokenizer)
orig = 'Lets try Transformers!'
cor = gec.correct(orig)
print(cor)
class GEC(object):
def __init__(self, model, tokenizer):
torch_device = 'cuda' if torch.cuda.is_available() else 'cpu'
self.device = torch_device
self.model = model.to(torch_device)
self.tokenizer = tokenizer
def correct(self, input):
prefix = "grammar: "
input = prefix + input
input_ids = self.tokenizer(input, return_tensors="pt").input_ids.to(self.device)
outputs = self.model.generate(input_ids, max_length=128, num_beams=5, early_stopping=True)
cor = self.tokenizer.decode(outputs[0], skip_special_tokens=True)
return cor
Funding
The work is supported by the MOE Foundation of Humanities and Social Sciences (Grant No. 17YJC740055).