исправить слова с ошибками в корпусе без словаря - PullRequest
0 голосов
/ 11 января 2019

У нас есть история разговоров между людьми (любой язык, любой словарь), поэтому с большим количеством орфографических ошибок:

"hellobb do u hav skip?" => "hello baby, do you have skype?"

Перед выполнением задачи глубокого обучения для этого набора данных (найти синонимы и т. Д.) Я бы хотел исправить эти ошибки.

Это хорошая идея? Я никогда не работал с такими плохими качественными данными. Хотите знать, есть ли «волшебное решение» для достижения этой цели?

Иначе я планирую использовать:

  • вложение слов (word2vec), чтобы проверить, схожи ли хорошие и плохие слова
  • функция расстояния между словами
  • если слово A является менее известным словом B, тогда исправить (wordA) = слово B

1 Ответ

0 голосов
/ 12 января 2019

В настоящее время нет волшебного решения, которое гарантировало бы исправление всех ошибок с орфографической ошибкой в ​​вашем тексте, но вот некоторые возможные варианты, которые вы можете рассмотреть:

  • Подход на основе словаря . Я нашел Hunspell очень удобным в этом случае. Он использует языковое моделирование и расстояние Левенштейна, чтобы предложить правильное написание. Он доступен на многих естественных языках и языках программирования. Хотя это подход на основе словаря, он превосходит многие сложные подходы. Он используется в подавляющем большинстве текстовых приложений.

  • Статистический и традиционный подход . Другим возможным решением является разработка собственных статистических моделей, таких как моделирование языка . Обучение языку моделирования в большом корпусе, на уровне персонажа и на уровне слов, может найти много орфографических ошибок в тексте. Многие системы распознавания речи и поисковые системы используют языковое моделирование для исправления ошибок.

  • Подход глубокого обучения . Если вы посмотрите на NLPProgress.com , большинство современных исследований использовали модели seq2seq для решения проблемы грамматической ошибки. Основная интуиция этих моделей заключается в обучении нейронной сети парам предложений, которые учатся исправлять грамматические ошибки. Эти подходы требуют довольно много парных предложений, чтобы дать надежный результат. Если доступные корпуса не соответствуют вашим потребностям, вы можете создать свою собственную орфографическую ошибку, например, заменив некоторые токены в вашем тексте.

...