Как конвертировать обведенные числа в числа?(① к 1) - PullRequest
0 голосов
/ 21 февраля 2019

Я хотел бы преобразовать числа из строки, полученной после распознавания OCR, по японскому тексту.

Например, когда я извлекаю дату:

③① 年 ⑫ 月 ①③ 日

Я хотел быпреобразовать его в:

31 年 12 月 13 日

Каков наилучший способ достичь этого?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Я бы использовал unicodedata

import unicodedata
print(unicodedata.normalize("NFKC","③① 年 ⑫ 月 ①③ 日"))

В результате получается,

31 年 12 月 13 日

Это также преобразует другие вариации японских цифр, цифры полной ширины.

import unicodedata
print(unicodedata.normalize("NFKC","123①②③123"))

до

123123123
0 голосов
/ 21 февраля 2019

Предполагая, что у вас уже есть текст OCR'd к обведенным цифрами в вашем вопросе, будет достаточно простой замены текста.Вот как это делается в Python:

def uncircle(s):
    for i in range(1, 21):
        s = s.replace(chr(0x245f + i), str(i))
    return s.replace('\u24ea', '0')

Обведенные числа от 1 до 20 - это кодовые точки Unicode от 0x2460 до 0x2473, а обведенное число 0 - это кодовая точка Unicode 0x24ea.

...