Классификация текста с помощью BERT - как обрабатывать слова с ошибками

Я не уверен, что это лучшее место, чтобы задать такой вопрос, возможно, CrossValdation будет лучшим местом.

Я работаю над проблемой классификации текстовых мультиклассов. Я построил модель на основе концепции BERT, реализованной в PyTorch (библиотека преобразователей huggingface). Модель работает довольно хорошо, за исключением случаев, когда во входном предложении есть ошибка OCR или, что то же самое, неправильно написано.

Например, если введено «НАЛИБУ НАПИТОК», токенизатор Bert генерирует ['na', '## lib', '## u', 'drink'], и прогноз модели полностью неверен. С другой стороны, если я исправлю первый символ, так что я введу "MALIBU DRINK", токенизатор Bert сгенерирует два токена ['malibu', 'drink'], и модель сделает правильный прогноз с очень высокой степенью уверенности.

Есть ли способ улучшить токенизатор Bert, чтобы он мог работать со словами с ошибками?




Ответы (1)


Вы можете использовать возможности BERT, чтобы исправить слово с ошибкой. Статья, ссылка на которую приведена ниже, прекрасно объясняет процесс с помощью фрагментов кода https://www.statestitle.com/resource/using-nlp-bert-to-improve-ocr-accuracy/

Подводя итог, вы можете определить слова с ошибками с помощью функции SpellChecker и получить предложения по замене. Затем найдите наиболее подходящую замену с помощью BERT.

person NRJ_Varshney    schedule 06.04.2020