Какие языки можно токенизировать и нормализовать с помощью данного файла данных ICU?

Моя задача - определить "поддерживаемые языки" на основе файла данных ICU V8.

Кажется, нет однозначного простого ответа, потому что поддержка языка зависит от интересующих функций. Меня интересует следующее:

  • Токенизация (в словах в случае буквенных систем письма)
  • Нормализация (сворачивание регистра и удаление диакритических знаков)
  • Разбор (сортировка строки в алфавитном порядке)

Рассматриваемая версия ICU - 64.2. V8'sicudtl.datпредставляет собой подмножество10 МБ, тогда как полный файл данных ICU составляет 25 МБ (icu/source/data/in/icudt64l.dat в архиве).

icupkg позволяет мне перечислить элементы пакета:

curl "https://chromium.googlesource.com/chromium/deps/icu.git/+/5005010d694e16571b8dfbf07d70817841f80a69/common/icudtl.dat?format=TEXT" | base64 -d > icudt64l.dat

icupkg --list icudt64l.datприводит к списку из 1326 строк (3665 для полной интенсивной терапии). Около 900 строк начинаются с префикса:

  • brkitr/ - Прервать итерацию
  • coll/ - Сопоставление
  • curr/ - Валюты
  • lang/ - Отображаемые имена языков
  • region/ - Отображаемые названия регионов
  • translit/ - Транслитерация
  • unit/ - Единицы
  • zone/ - Часовые пояса

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

coll/am.res
coll/ar.res
coll/bg.res
coll/bn.res
coll/ca.res
coll/cs.res
coll/da.res
coll/de.res
...

На токенизацию ответить сложно из-за общих записей вроде brkitr/word.brk:

brkitr/burmesedict.dict    brkitr/ja.res                brkitr/root.res
brkitr/char.brk            brkitr/khmerdict.dict        brkitr/ru.res
brkitr/cjdict.dict         brkitr/laodict.dict          brkitr/sent.brk
brkitr/de.res              brkitr/line.brk              brkitr/sent_el.brk
brkitr/el.res              brkitr/line_loose.brk        brkitr/thaidict.dict
brkitr/en.res              brkitr/line_loose_cj.brk     brkitr/title.brk
brkitr/en_US.res           brkitr/line_normal.brk       brkitr/word.brk
brkitr/es.res              brkitr/line_normal_cj.brk    brkitr/zh.res
brkitr/fr.res              brkitr/pt.res                brkitr/zh_Hant.res
brkitr/it.res              brkitr/res_index.res

Будет ли ICU пытаться разбить любую строку на слова (или что-то подобное в других системах письма), используя общие правила? Так в основном поддерживаете любой язык в этом отношении?

Что касается нормализации, я не знаю, в каких файлах вообще могут находиться эти данные.

Есть ли общий ответ или, может быть, программный способ определить, какие языки могут быть токенизированы и нормализованы с данным файлом данных ICU?

0 ответов

Другие вопросы по тегам