Внимание: эта статья устарела. Для актуальной информации, пожалуйста, перейдите по ссылке.
О языках 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 язык Yi | Язык провинции Южный Сычуань |
| A490 .. A4CF | Радикалы Yi | |
| AC00 .. D7AF | Слоги Хангыль Слоги Хангыль | |
| D7B0 .. D7FF | Расширенные Jamo Hangul-B | |
| 20000 .. 2A6DF | Расширение унифицированных идеографов CJK B | |
| 2A700 .. 2B73F | Расширение унифицированных идеографов CJK C | |
| 2F800 .. 2FA1F | Дополнение идеографов CJK совместимости |
Обратите внимание, что арабские цифры, которые могут использоваться в текстах CJK, соответствуют кодам символов широкого пространства (см. раздел FFF0 .. FFFF; Специальные).
Вы можете увидеть здесь 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-grams (текст "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