Предупреждение: эта статья устарела. Для актуальной информации, пожалуйста, перейдите по ссылке.
О языках CJK
CJK languages have more than 40,000 characters. Most of them are Chinese. Sometimes you can see acronym CJKV. “V” here stands for the Vietnamese language.
CJK characters include:
- For the Chinese language: hànzì – traditional Chinese characters; Bopomofo – Chinese Phonetic Alphabet; Pinyin – Romanization of Chinese language (a concept close to the concept of transliteration).
- For the Japanese language: Hiragana – Japanese syllabary; Katakana – Japanese syllabary; Arabic numerals.
- For the Korean Language: Hangul (Korean alphabet)
In addition, each language has a set of hieroglyphic keys (radicals), which act as a grouping elements to search for characters in the dictionary or as a semantic elements that define the meaning of the characters following the key.
To display text in CJK languages you can use the following encodings: Big5, EUC-JP, EUC-KR, ISO 2022-JP, KS C 5861, Shift-JIS, Unicode, etc. For CJK-language alphabets there are such Unicode blocks ( http://www.unicode.org/Public/UNIDATA/Blocks.txt ):
| The range | Block | Comments |
| 1100 .. 11FF | Hangul Jamo | Один символ из слога в корейском алфавите Хангыль. Буквы Джамо, используемые для формирования слогов Хангыль |
| 2E80 .. 2EFF | CJK Radicals Supplement | Ключ (радикал) – элемент иероглифического алфавита, позволяющий группировать слова или выступающий в качестве семантического элемента, определяющего значение последующих символов. |
| 2F00 .. 2FDF | Kangxi Radicals | список радикалов, принятых Кангси в Японии, Корее, Тайване, традиционно включает 214 символов |
| 3000 .. 303F | CJK Symbols and Punctuation | Идеографические символы и пунктуация |
| 3040 .. 309F | Hiragana | Японская слоговая азбука |
| 30A0 .. 30FF | Katakana | Японская слоговая азбука |
| 3100 .. 312F | Bopomofo | Китайский фонетический алфавит |
| 3130 .. 318F | Hangul Compatibility Jamo | |
| 3190 .. 319F | Kanbun Camboon or kanbun | Один из письменных языков средневековой Японии |
| 31A0 .. 31BF | Bopomofo Extended | |
| 31C0 .. 31EF | CJK Strokes simple features (elements) characters | |
| 31F0 .. 31FF | Katakana Phonetic Extensions | |
| 3200 .. 32FF | Enclosed CJK Letters and Months | CJK letters and months in circles |
| 3300 .. 33FF | CJK Compatibility | |
| 3400 .. 4DBF | CJK Unified Ideographs Extension | Идеографы CJK |
| 4DC0 .. 4DFF | Yijing Hexagram Symbols | |
| 4E00 .. 9FFF | CJK Unified Ideographs | Идеографы – письменный знак, условное изображение или картинка, не являющиеся звуками речи, а целым словом |
| A000 .. A48F | Yi Syllables Yi language | Язык провинции Южный Сычуань |
| A490 .. A4CF | Yi Radicals | |
| AC00 .. D7AF | Hangul Syllables Syllables Hangul | |
| D7B0 .. D7FF | Hangul Jamo Extended-B | |
| 20000 .. 2A6DF | CJK Unified Ideographs Extension B | |
| 2A700 .. 2B73F | CJK Unified Ideographs Extension C | |
| 2F800 .. 2FA1F | CJK Compatibility Ideographs Supplement |
Note that the Arabic numerals, which can be used in CJK texts, correspond widespace character codes (see section FFF0 .. FFFF; Specials).
You can see here http://www.utf8-chartable.de/ how certain characters look.
Как сообщить Manticore Search, что ваш документ содержит символы CJK?
Manticore Search filters the texts at character level. Characters not accepted for tokenization are considered invalid and replace with whitespace, which acts as separator. By default, only english and russian characters are tokenized (along with underscore and letters).
CJK languages feature characters that can form unsegmented texts. For these types of characters, Manticore can index contiguous groups of these characters as n-grams.
In the index configuration we need to adjust 3 settings:
- charset_table – main parameter to describe the characters. Contains a table of symbols and rules for case folding.
- ngram_chars – description of characters needed to split CJK text to words using the N-gram model;
- Set the value ngram_len to 1. This enables the n-gram feature. Currently only 1-grams are supported ( a text "ABCDEF" [where A to F are in ngram_chars list] is indexed as "A B C D E F").
Как создать описания для параметров charset_table и ngram_chars
Обновление: более новые версии Manticore Search вводят псевдоним charset_table, содержащий все необходимые символы CJK, а также китайский морфологический процессор ICU. Чтобы работать с CJK в последней версии, прочитайте следующую статью .
Иными словами, как объяснить Manticore Search, какие коды символов UTF-8 принадлежат семейству языков CJK?
Вы можете использовать наборы блоков языков со страницы вики Sphinx charset_tables или данные из таблицы выше и правила, указанные в charset_table , чтобы составить описание параметров (см. пункты 1‑3 выше) для символов и букв языков CJK. Будьте внимательны и дважды проверьте, что все необходимые блоки диапазонов символов включены в описание символов индекса Manticore Search в конфигурационном файле. Например, если вы бы
использовали описания диапазонов наборов символов, полученные по link выше для индексации документов, содержащих языки Lisu или Vai, поиск работать не будет корректно.
Особое внимание уделите правильной настройке параметра 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