警告:本文内容已过时。如需获取最新信息,请 点击此处
关于 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 | 韩文 Jamo | 韩文字母表中一个音节的单个字符。Jamo 字母用于构成韩文音节 |
| 2E80 .. 2EFF | CJK 根字补充 | 键(部首)– 象形文字字母表的一个元素,允许对词语进行分组或作为定义后续字符意义的语义元素。 |
| 2F00 .. 2FDF | 康熙部首 | 日本、韩国、台湾采用的部首列表,传统上包括 214 个字符 |
| 3000 .. 303F | CJK 符号和标点 | 表意字符和标点 |
| 3040 .. 309F | 平假名 | 日语假名 |
| 30A0 .. 30FF | 片假名 | 日语假名 |
| 3100 .. 312F | 注音符号 | 汉语拼音字母 |
| 3130 .. 318F | 韩文兼容 Jamo | |
| 3190 .. 319F | 汉文或 kanbun | 中世纪日本的一种书面语言 |
| 31A0 .. 31BF | 注音符号扩展 | |
| 31C0 .. 31EF | CJK 笔画简单特征(元素)字符 | |
| 31F0 .. 31FF | 片假名语音扩展 | |
| 3200 .. 32FF | 圈内 CJK 字母和月份 | CJK 字母和月份的圆形表示 |
| 3300 .. 33FF | CJK 兼容 | |
| 3400 .. 4DBF | CJK 统一表意文字扩展 | A CJK 表意文字 |
| 4DC0 .. 4DFF | 易经卦象符号 | |
| 4E00 .. 9FFF | CJK 统一表意文字 | 表意文字 – 文字符号、条件图像或图画,不是适当的语音声音,而是整个词 |
| A000 .. A48F | 彝语音节 彝语 | 中国四川省南部的语言 |
| A490 .. A4CF | 彝语部首 | |
| AC00 .. D7AF | 韩文音节 音节韩文 | |
| D7B0 .. D7FF | 韩文 Jamo 扩展-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-gram.
在索引配置中,我们需要调整 3 个设置:
- charset_table – 描述字符的主要参数。包含符号表和大小写折叠规则。
- ngram_chars – 描述需要使用 N-gram 模型将 CJK 文本拆分为单词的字符;
- 将 ngram_len 的值设置为 1。这将启用 n-gram 功能。目前仅支持 1-gram(文本 "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 索引字符描述是否包含您需要的所有字符范围区块。例如,如果您使用 链接 上获得的字符集范围描述来索引包含傈僳语或瓦伊语的文档,搜索将无法正常工作。
特别注意正确设置 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_(punctuation)
http://www.babelstone.co.uk/Yi/unicode.html