

Открытое решение для коррекции орфографии из библиотеки SAGE
Модели-корректоры
- ruM2M100-1.2B;
- ruM2M100-418M;
- FredT5-large;
- T5-large: коррекция орфографии на английском языке;
- 🔥 Сервис “Генеративная проверка орфографии”;
Возможности
Модель исправляет орфографические ошибки и опечатки путём приведения всех слов в тексте к норме английского языка.
Корректор был обучен на основе модели T5-large. В качестве обучающего корпуса был взят обширный датасет с “искусственными” ошибками: корпус был собран на основе русскоязычной википедии и транскриптов русскоязычных видео, затем в него автоматически внедрили опечатки и орфографические ошибки с помощью функционала библиотеки SAGE.
Преимущества нашего решения
Устойчивость к высокой плотности ошибок
Во время обучения, модели на “вход” подавались пары текстов, где один из текстов содержал ошибки и опечатки, а второй был корректным. При формировании текстов с ошибками, мы добавляли в 10 раз больше ошибок, чем в среднем содержится в предложениях, чтобы модель умела исправлять даже самые запутанные случаи, как, например, такой:
Th festeivаl was excelzecnt in many ways, and in particular it beinganinternational festjival sss a chаllenging, bet brilli an t ea.
Устойчивость к текстам из разных источников
Обучающий корпус для модели был собран из нескольких текстовых доменов:
- Англоязычная википедия;
- Новостные блоги;
Статьи из википедии и новости покрывают широкий спектр возможных словоформ, с которыми модель может столкнутся во время работы.
Статьи и выступления
- Рассказ про библиотеку SAGE, DataFest 2023
- Статья про методы генерации синтетических ошибок, Dialogue 2023
- Статья про SAGE и наше лучшее решение, Review EACL 2024
Примеры работы
На входе | На выходе |
---|---|
Th festeivаl was excelzecnt in many ways, and in particular it beinganinternational festjival sss a chаllenging, bet brilli an t ea. | The festival was excellent in many ways, and in particular it beinganinternational festival is a challenging, but brilliant one to see. |
That 's why I believe in the solution which is the closest to human nature and can help us to avoid boredome. I am sure that eventually we will take off our clothes and in the future we will be undressed and free. There wo n't be any problem with being up - do - date . | That's why I believe in the solution which is the closest to human nature and can help us to avoid boredom. I am sure that eventually we will take off our clothes and in the future we will be undressed and free. There won't be any problem with being up - do - date. |
If you bought something goregous, you well be very happy. | If you bought something gorgeous, you will be very happy. |
Метрики
Качество
Ниже представлены автоматические метрики для определения корректности работы спелл-чекеров. Мы приводим сравнение нашего решения как с открытыми автоматическими спелл-чекерами, так и с семейством моделей ChatGPT на двух имеющихся датасетах:
- BEA60K: орфографические ошибки на английском языке, собранные с нескольких доменов;
- JFLEG: 1601 предложение на английском языке, которые содержат около 2 тыс. орфографических ошибок;
BEA60K
Модель | Precision | Recall | F1 |
---|---|---|---|
T5-large-spell | 66.5 | 83.1 | 73.9 |
ChatGPT gpt-3.5-turbo-0301 | 66.9 | 84.1 | 74.5 |
ChatGPT gpt-4-0314 | 68.6 | 85.2 | 76.0 |
ChatGPT text-davinci-003 | 67.8 | 83.9 | 75.0 |
Bert (Neuspell) | 65.8 | 79.6 | 72.0 |
SC-LSTM (Neuspell) | 62.2 | 80.3 | 72.0 |
JFLEG
Модель | Precision | Recall | F1 |
---|---|---|---|
T5-large-spell | 83.4 | 84.3 | 83.8 |
ChatGPT gpt-3.5-turbo-0301 | 77.8 | 88.6 | 82.9 |
ChatGPT gpt-4-0314 | 77.9 | 88.3 | 82.8 |
ChatGPT text-davinci-003 | 76.8 | 88.5 | 82.2 |
Bert (Neuspell) | 78.5 | 85.4 | 81.8 |
SC-LSTM (Neuspell) | 80.6 | 86.1 | 83.2 |
Инструкции по использованию
Использовать модель можно следующим образом:
from transformers import T5ForConditionalGeneration, AutoTokenizer
path_to_model = "<path_to_model>"
model = T5ForConditionalGeneration.from_pretrained(path_to_model)
tokenizer = AutoTokenizer.from_pretrained(path_to_model)
prefix = "grammar: "
sentence = "If you bought something goregous, you well be very happy."
sentence = prefix + grammar
encodings = tokenizer(sentence, return_tensors="pt")
generated_tokens = model.generate(**encodings)
answer = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
print(answer)
# ["If you bought something gorgeous, you will be very happy."]
Ресурсы
- Код библиотеки SAGE с методами аугментации, доступом к датасетам и открытым моделям, GitHub
- ruM2M100-1.2B, HuggingFace
- ruM2M100-418M, HuggingFace
- FredT5-large-spell, HuggingFace
- T5-large-spell, HuggingFace
Лицензирование
Модель T5-large, на основе которой сделано наше решение, и её исходный код поставляются на основе лицензии APACHE-2.0. Наше решение поставляется на основе лицензии MIT.
Технические характеристики
- Размер файлов: 3 Gb;
- Фреймворк: pytorch
- Tags: spellchecking проверка орфографии NLP T5 pytorch natural language generation
- Формат: AI Service
- Версия: v1.0
- Разработчик: SberDevices, AGI NLP