Задать вопрос

Как реализовать распознавание совпадающих русских и английских символов?

Начал изучать OCR. Вопрос стал следующим образом: какие есть алгоритмы, чтобы отличить русские символы от английских. Не секрет, что в обоих языках есть символы с одинаковым написанием:

habrahabr - английские буквы
атличный ресурс - русские буквы (грамматическая ошибка сделана специально)

Так вот, в данном случае и там, и там есть буква "а", которая может быть распознана, как английская, так и русская, что при последующем написании распознанного текста шрифтом, в котором эти буквы различны, явно отразиться пользователю. Как пример, рукописные шрифты.

Как можно решить такой вопрос? Может, кто знает алгоритмы?

Пока в голову приходит следующее: иметь образы для всех русских букв, а из образов для английских букв удалить все совпадающие с русскими. Далее, когда слово распознано, проверять, есть ли в нем английские буквы, и если есть менять все русские на их аналог английского языка. Например, слово hAbrAhAbr (большие буквы - это те, которые распознаются в данном случае, как русские). Проверяем: видим английские буквы в слове, значит, это английское слово, поэтому меняем символы А на соответствующие английские. Как-то так. Но что будет, если слово является смешанным, допустим, название фирмы: boyarinъ - понятно, что вроде "боярин" должно английскими буквами писаться, а вот твердый знак русскими, то есть мой алгоритм уже не сработает.
  • Вопрос задан
  • 7302 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Кроме того, в Вашем алгоритме как распознать слова:
a а
on оп
no по
c (одиночная цэ в предложении letter c) с
moon тооп
Примеры так себе, но в Вашем варианте будут слова, которые сплошь будут состоять из русских букв, так что придется смотреть контекст, так сказать, хотите Вы или нет )
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
на случай указанных Вами исключений сделайте выбор языка распознания, чтобы можно было принудительно включить русский или английский.

хотя в примере с боярином сделал бы так: если в слове есть английское символы, то заменить на англ.все русские, которые выглядят как английские.соотв., твердый знак не будет заменен.
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
Необходима постобработка
Посмотрите статью habrahabr.ru/post/86303

Суть алгоритма: если в слове встретились русские символы (ф,ж,д,ю,...) то слово целиком считается русским и все буквы о, а, е будут здесь русские.
То же самое и для английского языка
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы