使用 Manticore Search 处理中文、日文和韩文文档

警告:本文信息可能不够及时。有关最新信息,请 点击此链接。

关于 CJK 语言

CJK 语言拥有超过 40,000 个字符。这些字符大部分是中文。有时你会看到首字母缩写 CJKV。这里的 “V” 代表越南语。

CJK 字符包括:

  1. 中文:汉字 – 传统汉字;注音符号 – 汉语拼音字母;拼音 – 中文的罗马化(接近音译的概念)。
  2. 日文:平假名 – 日文音节;片假名 – 日文音节;阿拉伯数字。
  3. 韩文:韩文(韩文字母)

此外,每种语言都有一组象形关键(部首),作为在字典中搜索字符的分组元素或定义相关字符意义的语义元素。

要在 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 .. 2EFFCJK 部首补充关键(部首) – 象形字母中的一个元素,允许词语分组或作为定义后续字符含义的语义元素。
2F00 .. 2FDF康熙部首日本、韩国、台湾采用的康熙部首列表,传统上包括 214 个字符。
3000 .. 303FCJK 符号和标点表意字符和标点符号。
3040 .. 309F平假名日文音节。
30A0 .. 30FF片假名日文音节。
3100 .. 312F注音符号汉语拼音字母。
3130 .. 318F韩文兼容字母
3190 .. 319F汉文中世纪日本的一种书写语言。
31A0 .. 31BF注音符号扩展
31C0 .. 31EFCJK 笔画简要特点(元素)字符
31F0 .. 31FF片假名音韵扩展
3200 .. 32FF封闭的 CJK 字母和月份圆圈中的 CJK 字母和月份。
3300 .. 33FFCJK 兼容性
3400 .. 4DBFCJK 统一汉字扩展一个 CJK 汉字。
4DC0 .. 4DFF易经卦象符号
4E00 .. 9FFFCJK 统一汉字表意字符 – 书写符号、条件图像或图片,不是适当的语音,而是整个词。
A000 .. A48F彝文音节 彝语四川南部省的语言。
A490 .. A4CF彝文部首
AC00 .. D7AF韩文字母音节
D7B0 .. D7FF韩文字母扩展-B
20000 .. 2A6DFCJK 统一汉字扩展 B
2A700 .. 2B73FCJK 统一汉字扩展 C
2F800 .. 2FA1FCJK 兼容性汉字补充

请注意,阿拉伯数字在 CJK 文本中可以使用,符合宽字间距字符代码(参见 FFF0 .. FFFF;特殊字符部分)。

你可以在这里查看 http://www.utf8-chartable.de/ 某些字符的外观。

如何告知 Manticore Search 你的文档包含 CJK 字符?

Manticore Search 以字符级别过滤文本。未被接受进行标记化的字符被视为无效,并用空格替换,该空格作为分隔符。默认情况下,只有英语和俄语字符(连同下划线和字母)被标记化。

CJK 语言具有可以形成未分段文本的字符。对于这些类型的字符,Manticore 可以将这些字符的连续组索引为 n-grams。

在索引配置中,我们需要调整 3 个设置:

  1. charset_table – 描述字符的主要参数。包含符号和大小写折叠规则的表。
  2. ngram_chars – 描述需要用 N-grams 模型将 CJK 文本分拆成单词的字符;
  3. 将值 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

安装Manticore Search

安装Manticore Search