Как определить расстояние Левенштейна для китайских иероглифов?

Мы разрабатываем систему для нечеткого сопоставления на более чем 50 международных языках, используя стандарт символов UTF-8, UTF-16 и UTF-32 Unicode. До сих пор нам удавалось использовать расстояние Левенштейна для обнаружения орфографических ошибок в словах расширенных символов немецкого Unicode.

Мы хотели бы расширить эту систему для обработки китайских иероглифов, представленных в Unicode. Как бы мы вычислили расстояние Левенштейна между похожими китайскими иероглифами?

11

Решение

Во-первых, просто чтобы уточнить: китайский иероглиф не является эквивалентом немецкого или английского слово. Большинство вещей, которые вы считаете словами (используя семантическое или синтаксическое определение слова), состоят из 1-3 символов. Применить расстояние Левенштейна к таким последовательностям символов просто, представив их как последовательности кодовых точек UCS-2 или UCS-4. Поскольку большинство слов короткие (особенно слова длиной 1 или 2 символа), оно может иметь ограниченное применение.

Тем не менее, так как ваш вопрос конкретно о редактировать расстояние между отдельные персонажи, Я считаю, что требуется другой подход, и он может быть действительно очень сложным.

Для начала вам нужно будет представить каждый символ как последовательность компонентов / штрихов, из которых он состоит. Есть две проблемы:

  • Некоторые компоненты состоят из еще меньших компоненты, так как разбить символ на «атомарные» компоненты не определено однозначно. Если вы делаете это до уровня индивидуального инсульты, вам нужна характеристика каждого удара (положение персонажа, форма, направление и т. д.). Я не думаю, что кто-нибудь, как каждый, сделал это (мне было бы очень интересно, если бы кто-нибудь сказал мне иначе).

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

Последнее, что вы можете попробовать, это сделать персонажа глифы и рассчитать расстояние редактирования на основе сколько пикселей (или векторы) необходимо изменить, чтобы превратить одного персонажа в другого. Однажды я сделал это для латинских символов и комбинаций символов (на пиксельной основе) в контексте посткоррекции OCR, и результаты были довольно обнадеживающими.


Быстрый ответ на комментарий larsmans ниже: Есть две взаимосвязанные концепции, определенные стандартом Unicode (ниже я имею в виду 6.0 версия, глава 12):

  1. Индекс, основанный на радикалах и числе ударов. Каждый персонаж Хань состоит из нескольких компонентов, один из которых является радикалом. Индекс числа радикалов / штрихов представляет собой список символов, отсортированный по радикалам (то есть все символы, которые совместно используют один и тот же радикал, сгруппированный вместе), и каждая группа, относящаяся к радикалам, внутренне отсортирована по количеству штрихов, используемых в остальной части символа. К сожалению, даже это не однозначно определено — есть символы, радикал которых определяется по-разному в соответствии с другой традиционной лексикой, и подсчет ударов также может быть затруднен. Вот что говорит стандарт Unicode:

    Чтобы ускорить поиск определенных идеографических символов Хань в кодовых диаграммах, на веб-сайте Unicode представлены индексы радикальных штрихов. […] Самым влиятельным авторитетом для информации о радикальных инсультах является восемнадцатый век
    Словарь KangXi, который содержит 214 радикалов. Основная проблема использования радикалов KangXi сегодня заключается в том, что многие упрощенные символы трудно классифицировать по любому из 214 символов.
    KangXi радикалы. В результате были введены различные современные радикальные множества. Однако ни один из них не используется в целом, и 214 радикалов Канси остаются наиболее известными. […] Диаграммы радикальных штрихов Unicode основаны на радикалах Канси. Стандарт Юникод
    следует ряд различных источников для классификации радикального удара. Где два источника
    имеют разногласия в отношении количества радикалов или ударов для данного символа, символ отображается в обеих позициях в диаграммах радикального удара.

    Обратите внимание, что даже если мы предположим, что индекс корня / штриха является однозначным и правильным, в качестве источника информации будет недостаточно преобразовать символ в последовательность компонентов, потому что единственный компонент символа, полностью описываемый этим, — это радикал.

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

    1. Порядок компонентов не определяется однозначно
    2. Не существует определения механизма рендеринга для таких последовательностей
    3. Нет сопоставления обычных символов с соответствующими идеографическими последовательностями описания (хотя Стандарт упоминает, что такие отображения в некоторой степени существуют в источниках, которые они использовали для компиляции набора символов Han).

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

    В частности, идеографические последовательности описания не должны использоваться для обеспечения альтернативы
    графическое представление закодированных идеографов при обмене данными. Поиск, сопоставление,
    и другие основанные на контенте текстовые операции тогда потерпят неудачу.

17

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]