警告:本文信息可能不够及时。有关最新信息,请 点击此链接。
关于 CJK 语言
CJK 语言拥有超过 40,000 个字符。这些字符大部分是中文。有时你会看到首字母缩写 CJKV。这里的 “V” 代表越南语。
CJK 字符包括:
- 中文:汉字 – 传统汉字;注音符号 – 汉语拼音字母;拼音 – 中文的罗马化(接近音译的概念)。
- 日文:平假名 – 日文音节;片假名 – 日文音节;阿拉伯数字。
- 韩文:韩文(韩文字母)
此外,每种语言都有一组象形关键(部首),作为在字典中搜索字符的分组元素或定义相关字符意义的语义元素。
要在 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 字母中的一个音节字符。用于形成 Hangul 音节的字母 Jamo。 |
2E80 .. 2EFF | CJK 部首补充 | 关键(部首) – 象形字母中的一个元素,允许词语分组或作为定义后续字符含义的语义元素。 |
2F00 .. 2FDF | 康熙部首 | 日本、韩国、台湾采用的康熙部首列表,传统上包括 214 个字符。 |
3000 .. 303F | CJK 符号和标点 | 表意字符和标点符号。 |
3040 .. 309F | 平假名 | 日文音节。 |
30A0 .. 30FF | 片假名 | 日文音节。 |
3100 .. 312F | 注音符号 | 汉语拼音字母。 |
3130 .. 318F | 韩文兼容字母 | |
3190 .. 319F | 汉文 | 中世纪日本的一种书写语言。 |
31A0 .. 31BF | 注音符号扩展 | |
31C0 .. 31EF | CJK 笔画简要特点(元素)字符 | |
31F0 .. 31FF | 片假名音韵扩展 | |
3200 .. 32FF | 封闭的 CJK 字母和月份 | 圆圈中的 CJK 字母和月份。 |
3300 .. 33FF | CJK 兼容性 | |
3400 .. 4DBF | CJK 统一汉字扩展 | 一个 CJK 汉字。 |
4DC0 .. 4DFF | 易经卦象符号 | |
4E00 .. 9FFF | CJK 统一汉字 | 表意字符 – 书写符号、条件图像或图片,不是适当的语音,而是整个词。 |
A000 .. A48F | 彝文音节 彝语 | 四川南部省的语言。 |
A490 .. A4CF | 彝文部首 | |
AC00 .. D7AF | 韩文字母音节 | |
D7B0 .. D7FF | 韩文字母扩展-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 – 描述需要用 N-grams 模型将 CJK 文本分拆成单词的字符;
- 将值 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 中设定的规则为 CJK 语言的字符和字母制作选项描述(见上文第 1-3 条)。请仔细检查您所需的所有字符范围块是否已包含在配置文件中的 Manticore Search 索引字符描述中。例如,如果您使用在上面的 链接 中获取的字符集范围描述来索引包含 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
http://www.babelstone.co.uk/Yi/unicode.html