Предупреждение: эта статья устарела. Для получения актуальной информации, пожалуйста, последуйте по ссылке.
О языках CJK
Языки CJK имеют более 40,000 символов. Большинство из них китайские. Иногда можно увидеть акроним CJKV. “V” здесь обозначает вьетнамский язык.
Символы CJK включают:
- Для китайского языка: hànzì – традиционные китайские иероглифы; Bopomofo – китайский фонетический алфавит; Pinyin – романизация китайского языка (понятие, близкое к понятию транслитерации).
- Для японского языка: Хирагана – японская силлабарная система; Катакана – японская силлабарная система; арабские цифры.
- Для корейского языка: Хангыл (корейский алфавит)
Кроме того, каждый язык имеет набор иероглифических ключей (радикалов), которые выполняют функцию групповых элементов для поиска символов в словаре или как семантические элементы, определяющие значение символов, следующих за ключом.
Для отображения текста на языках CJK вы можете использовать следующие кодировки: Big5, EUC-JP, EUC-KR, ISO 2022-JP, KS C 5861, Shift-JIS, Unicode и т.д. Для алфавитов языков CJK существуют следующие блоки Unicode ( http://www.unicode.org/Public/UNIDATA/Blocks.txt ):
Диапазон | Блок | Комментарии |
1100 .. 11FF | Hangul Jamo | Отдельный символ из слога в корейском алфавите Хангыл. Буквы Jamo используются для формирования слогов Хангыл |
2E80 .. 2EFF | Дополнение радикалов CJK | Ключ (радикал) – элемент иероглифического алфавита, который позволяет группировать слова или служит семантическим элементом, определяющим значение следующих символов. |
2F00 .. 2FDF | Радикалы Канси | Список ключей Канси, принятой в Японии, Корее, Тайване, традиционно включает 214 символов |
3000 .. 303F | Символы и пунктуация CJK | Идеографические символы и пунктуация |
3040 .. 309F | Хирагана | Японская силлабарная система |
30A0 .. 30FF | Катакана | Японская силлабарная система |
3100 .. 312F | Bopomofo | Китайский фонетический алфавит |
3130 .. 318F | Совместимость Jamo Hangul | |
3190 .. 319F | Канбун Камбун или канбун | Один из письменных языков средневековой Японии |
31A0 .. 31BF | Расширенный Bopomofo | |
31C0 .. 31EF | Простые черты CJK (элементы) символов | |
31F0 .. 31FF | Фонетические расширения катаканы | |
3200 .. 32FF | Ограниченные письменности и месяцы CJK | Буквы и месяцы CJK в кругах |
3300 .. 33FF | Совместимость CJK | |
3400 .. 4DBF | Расширенные унифицированные идеограммы CJK | Идеограммы CJK |
4DC0 .. 4DFF | Символы гексаграмм И Цзина | |
4E00 .. 9FFF | Унифицированные идеограммы CJK | Идеограммы – письменный знак, условное изображение или картинка, не соответствующие звукам речи, а целому слову |
A000 .. A48F | Слоги И язык Yi | Язык провинции Южный Сычуань |
A490 .. A4CF | Радикалы Yi | |
AC00 .. D7AF | Слоги Хангул Слоги Хангул | |
D7B0 .. D7FF | Расширенные Jamo Hangul-B | |
20000 .. 2A6DF | Расширенные унифицированные идеограммы CJK B | |
2A700 .. 2B73F | Расширенные унифицированные идеограммы CJK C | |
2F800 .. 2FA1F | Дополнение совместимых идеограмм CJK |
Обратите внимание, что арабские цифры, которые могут использоваться в текстах CJK, соответствуют кодам символов widespace (см. раздел FFF0 .. FFFF; Specials).
Вы можете увидеть здесь http://www.utf8-chartable.de/ , как выглядят определенные символы.
Как сообщить Manticore Search, что ваш документ содержит символы CJK?
Manticore Search фильтрует тексты на уровне символов. Символы, не принятые для токенизации, считаются недействительными и заменяются пробелами, которые действуют как разделители. По умолчанию токенизируются только английские и русские символы (наряду с нижним подчеркиванием и буквами).
Языки CJK имеют символы, которые могут образовывать несегментированные тексты. Для этих типов символов Manticore может индексировать смежные группы этих символов как n-grams.
В конфигурации индекса нам нужно отрегулировать 3 настройки:
- charset_table – основной параметр для описания символов. Содержит таблицу символов и правила для приведения к нижнему регистру.
- ngram_chars – описание символов, необходимых для разделения текста CJK на слова с использованием модели N-gram;
- Установите значение ngram_len на 1. Это включает функцию n-gram. В настоящее время поддерживаются только 1-граммы (текст “ABCDEF” [где A до F находятся в списке ngram_chars] индексируется как “A B C D E F”).
Как создать описания для параметров charset_table и ngram_chars
Обновление: более новые версии Manticore Search вводят псевдоним charset_table, содержащий все символы CJK, необходимые, а также процессор морфологии ICU для китайского языка. Чтобы работать с CJK в последней версии, прочитайте следующую статью .
Или, другими словами, как объяснить Manticore Search, какие коды символов UTF-8 принадлежат к семейству языков CJK?
Вы можете использовать наборы для блоков языка с charset_tables страницы вики Sphinx или использовать данные из таблицы выше и правила, установленные в charset_table , чтобы составить ваше описание опций (см. 1-3 выше) для символов и букв для языков CJK. Будьте осторожны и дважды проверьте, чтобы все блоки диапазонов символов, которые вам нужны, были включены в описание символов индекса Manticore Search в конфигурационном файле. Например, если вы будете использовать описания диапазонов наборов символов, которые вы получите по ссылке выше для индексации документов, содержащих языки Лису или Ваи, поиск не будет работать правильно.
Обратите особое внимание на правильное установление параметра ngram_chars. При поиске Manticore Search не будет учитывать эти символы как совпадения поиска.
Полезные ссылки:
http://en.wikipedia.org/wiki/CJK
http://en.wikipedia.org/wiki/Chinese_character
http://en.wikipedia.org/wiki/Pinyin
http://en.wikipedia.org/wiki/Space_%28punctuation%29
http://www.babelstone.co.uk/Yi/unicode.html