Многоязычная проверка орфографии с определением языка

#language-agnostic #nlp #multilingual #spell-checking

#не зависит от языка #nlp #многоязычный #проверка орфографии

Вопрос:

Я работаю над проверкой орфографии веб-страниц на смешанных языках и не смог найти никаких существующих исследований по этому вопросу.

Цель состоит в том, чтобы автоматически определять язык на уровне предложения на веб-страницах со смешанным языком и автоматически проверять орфографию каждого на соответствие соответствующему языку. Предположим, что мы можем игнорировать предложения, в которых смешиваются несколько языков (например, «У него есть определенный je ne sais quoi»), и предположим, что веб-страницы не могут содержать более 2 или 3 языков.

Тривиальный пример (валлийский английский): http://wales.gov.uk /

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

  • Распределение символов (например, 0600-06FF = арабский и т.д.)
  • n-Граммы для распознавания языков с похожими символами
  • Поиск по словарю для определения локали, т.е. en-US, en-GB

У меня есть рабочий код, но я обеспокоен тем, что это может быть наивно или бесполезно изобретать колесо заново. Кто-нибудь еще делал это раньше?

Ответ №1:

Вы можете использовать API (Google amp; Yandex) для проверки орфографии и определения языка, но, я думаю, этот вариант не очень масштабируемый.

Другой вариант — использовать бесплатные инструменты lucene для проверки орфографии http://wiki.apache.org/lucene-java/SpellChecker, но сначала вам нужно проиндексировать какой-нибудь corpra — Википедия — хороший выбор. LD может быть заархивирован с помощью http://textcat.sourceforge.net /

Комментарии:

1. Средство проверки орфографии Lucene работает (или, по крайней мере, было им несколько версий назад) ужасно медленно, потому что оно вычисляет нормализованное расстояние Левенштейна между неизвестным словом и каждым словом в его словаре.

2. Да, я боюсь, что Google недоступен по причинам масштабируемости и лицензирования. Должен был указать мой минимальный список языков, но он больше, чем, по моему мнению, TextCat может обнаружить в настоящее время. В основном я просто проверяю, не изобретаю ли я колесо заново без необходимости; похоже, что это не так.

3. 2 ларсмана: Нет, не для всех. Сначала выполняется поиск по слову ngramm, а затем выполняется быстрый сбой Levenshtein. В любом случае, это не очень хорошо

Ответ №2:

С помощью Languagetool http:/www.languagetool.org Библиотека вы можете выбрать нужные вам языки и проверить содержимое на соответствие вашему набору языков. Например, для веб-сайта на французском или наоборот, вы бы проверили текст на соответствие английскому и французскому. Очевидно, что при проверке на неправильном языке будет больше ошибок.

Пример:

Если вы, например, проверяете французский текст из http://fr.wikipedia.org/wiki/Charte_de_la_langue_française:

 La Charte de la langue française (communément appelée la loi 1011) est 
une loi définissant les droits linguistiques de tous les citoyens du 
Québec et faisant du français la langue officielle du Québec.
  

вкл http://www.languagetool.org для французского языка не будет обнаружено ошибок, а для английского — более 20 ошибок / ГБ.

Соответствующий текст на английском:

 The Charter of the French Language (French: La charte de la langue française), also 
known as Bill 101 (Law 101 or French: Loi 101), is a law in the province of Quebec 
in Canada defining French, the language of the majority of the population, as the 
official language of Quebec and framing fundamental language rights. It is the central
legislative piece in Quebec's language policy.
  

покажет 4 ошибки для английского / ГБ (из-за цитирования на французском языке) и более 20 ошибок при проверке на французском языке.