Китайская грамота
Слово «иероглиф» в русском языке стало нарицательным. Часто его используют для того, чтобы обозначить нечто непонятное и непостижимое. И правильно делают! Для людей, выросших в европейской культуре, иероглифы, действительно, часто становятся камнем преткновения.
Почему сложны иероглифы
Иероглиф – собирательное название для систем письменности, принятых в восточных языках: японском, китайском и, частично, корейском. Кстати, это слово известно еще со времен Древней Греции. Им в античности обозначали начертание «округлых» греческих букв, высеченных на камне.
Первые иероглифы появились в Китае еще в 16 веке до нашей эры. Из Поднебесной они были позаимствованы японцами и корейцами. Считается, что иероглифы помогают жителям Востока понимать письменность друг друга, даже не владея языком соседней страны. К примеру, в современном Китае насчитывается 3000 диалектов. И их носители прекрасно понимают друг друга. Кстати, можно попробовать почитать текст на болгарском языке, чтобы убедиться: понимать письменный язык ближайших соседей можно и в Европе.
Особенность иероглифов состоит в том, что они обозначают не отдельные буквы, а слоги или слова (слова из одного слога часто встречаются в восточных языках). Сама по себе такая система письма не оригинальна. Она, к примеру, принята и в иврите, где отсутствуют гласные буквы, аналогичные звукам А и Е. Но, если в иврите всего-то 22 буквы, то счет китайских иероглифов идет на тысячи.
«Минимальным» объемом грамотности в Китае считается знание полутора-двух тысяч иероглифов. Такого объема достаточно сельским жителям и мелким служащим. Чтобы читать газеты и журналы, нужно иметь «лексикон» из 3000 иероглифов. Словари обычно содержат от 6 до 10 тысяч, а в словаре «Море китайских иероглифов», изданном в 1994 году, их насчитывается более 84 тысяч.
Главное отличие иероглифа от привычных нам латиницы и кириллицы – обилие графических элементов. Наши буквы, как правило, являются единым знаком, элементы которого не имеют собственного значения. В иероглифическом письме важны каждая черточка, точка или крючок. Если напечатан или написан иероглиф неразборчиво, носитель языка поймет его значение по контексту, как мы понимаем значение слов, написанных с ошибками. А вот европейцу придется туго: смысл фразы потеряется или изменится до неузнаваемости.
И это – проблемы не только тех, кому приходится изучать иероглифические языки. Чем большую роль играют восточные в мировой экономике, тем чаще нам приходится иметь дело с текстами на китайском, японском или корейском языках. А значит – и работать с ними.
Как работают системы распознавания
С латинской или кириллической письменностью системы распознавания (OCR) работают уже с уверенной, высокой скоростью. Многие программы способны «разобрать» не только печатный, но и письменный вариант текста.
Проблемой перестает быть и низкое качество оригинала, такие тексты система часто умеет не только распознавать, но и «на лету» исправлять. Но там, где носитель восточного языка справляется с особенностями начертания или качеством отображения текста благодаря своему мышлению, машина откровенно «пасует». Научить компьютер думать, как китайцы и японцы, смог только искусственный интеллект.
До недавних пор китайское и японское письмо распознавались OCR так же, как и европейские символы – на основе классификаторов. Выглядит алгоритм работы просто, строится от общего к частному. Система разделяет документ на страницы, каждая из них – на текстовые блоки, затем идут строки, слова, и, наконец, символы. Последнее – самое сложное. Для каждой буквы добавляются отдельные признаки начертания, символы и слова классифицируются, а система на основе классификации учится предлагать наиболее подходящие варианты «прочтения» текста.
Наверное, был бы очень занятным эксперимент, в котором один и тот же текст распознавался разными версиями одной и той же OCR. Сравнение результатов их работы стало бы отличной иллюстрацией того, как со временем совершенствовались такие решения. Повторимся: здесь важна не только точность распознавания, но и его скорость.
А теперь давайте усложним задачу и предложим OCR-системе в качестве виртуального задания распознать иероглифический текст. Если при работе с европейскими алфавитами приходится классифицировать самое большее – несколько десятков символов, то «китайская грамота» предполагает, что эту работу нужно сделать для тысяч иероглифов.
Необходимость распознать нечеткую копию или рукописный вариант делают такую задачу сверхсложной. А о скорости распознавания документа и ресурсах компьютера, которые необходимы для решения задачи, говорить не приходится. Поэтому вплоть до 2018 года работа OCR с иероглифическими документами была не слишком уверенной и совсем не быстрой.
Нейросети для иероглифов
Все изменилось в 2018 году. Специалисты компании ABBYY, которая развивает знаменитый FineReader уже два десятка лет, нашли решение для задач, связанных с распознаванием иероглифов. Было решено применить нейросети.
Первоначально в ABBYY решили использовать одну сверточную сеть для распознавания всех иероглифов. Такой шаг представлялся логичным: подобный тип нейронных сетей разрабатывался в том числе и для распознавания текста. Кроме того, у компании был успешный опыт ее применения для работы с рукописными латинскими символами.
Однако, оказалось, что одна нейронная сеть работает либо слишком плохо (совершает ошибки в распознавании), либо крайне медленно. Не помогало и использование сложных архитектур. Проблемой стало большое число классов, по которым приходилось обучаться нейронной сети.
И тогда в компании решили применить другой подход – использовать двухуровневую систему. В ней «алфавит» разбивается на группы похожих символов. Первая сеть анализирует изображение иероглифа и определяет, к какой группе он принадлежит. А дальше в работу включается вторая сеть, которая и проводит итоговую классификацию внутри группы.
Результат протестировали на коллекции японских и китайских текстов. Сравнение показало, что при использовании одной сети скорость работы системы составляет около 370 символов в секунду при качестве распознавания в 97%. В быстром режиме ей удавалось распознать 570 символов в секунду, но качество распознавания снижалось до 92%.
А вот двухуровневая сеть дала принципиально иные результаты. Обычный режим позволил обрабатывать 520 символов с более чем 97-процентным качеством, а быстрый – более 650 символов в секунду практически с таким же результатом работы.
Не только китайский и японский
Иероглифическое письмо – самый наглядный пример работы OCR со сложными задачами. Принципы и технологии распознавания, которые были реализованы для китайского и японского письма, могут применяться и для документов на других языках – хинди, тамильском или арабском.
К примеру, работа OCR с арабской вязью связана с необходимостью «разрезать» слово на символы. Но таких вариантов в этом языке оказалось слишком много. Специалисты ABBYY специально для него разработали end-to-end сеть и научили ее при помощи «набора» из сотен тысяч изображений текстов на арабском работать не с отдельными символами, а целыми словами. Кстати, такое решение отлично подошло и для распознавания европейских языков в том случае, если тексты набираются дизайнерскими шрифтами.