前言
在全球化运营的企业或拥有外国籍员工的组织中,内部文档会以多种语言编写。 在日语会议记录、英语技术规格书、中文市场报告等语言混合的环境中,需要能够适当进行搜索的基础设施。
本文假设日语、英语和中文文档共存的环境,构建能够正确搜索各种语言文档的环境。
目标读者
处理多语言文档的组织管理员
希望改善日语以外语言搜索质量的人员
希望学习全文搜索 Analyzer 基础知识的人员
场景
假设一家在日本、美国和中国设有分支机构的企业。
日本分支:创建日语文档(规格书、会议记录、报告书)
美国分支:创建英语文档(技术文档、演示资料)
中国分支:创建中文文档(市场调研、客户信息)
共通:以英语编写的全球政策文档
目标是创建一个各分支机构的员工能够跨语言搜索文档的环境。
多语言搜索基础
全文搜索中的语言处理
全文搜索引擎要使文档可被搜索,需要将文本拆分为”token”(可搜索的单位)。 这一处理过程称为”分词”。
不同语言的分词方法存在很大差异。
英语:以空格分隔的单词直接成为 token。 此外,还会进行词干提取(stemming:running -> run)和小写转换。
日语:由于没有空格分隔,需要使用形态素分析器(如 Kuromoji)将文本拆分为单词。 例如:”全文检索服务器” -> “全文” “检索” “服务器”。
中文:与日语类似,由于没有空格分隔,需要专用的分词器。Fess 使用自研的中文分词器进行处理。
Fess 的多语言支持
Fess 以 OpenSearch 作为后端,可以利用 OpenSearch 提供的多语言 Analyzer。 在 Fess 的默认设置中,日语(Kuromoji)Analyzer 已启用,但也支持其他语言。
Fess 拥有支持 20 多种语言的索引设置,具备自动检测文档语言并应用适当 Analyzer 的功能。
各语言设置
日语设置
日语文档由 Kuromoji Analyzer 处理。 由于 Fess 的默认设置能够适当处理日语,因此不需要特别的额外配置。
但是,通过以下自定义可以提高搜索质量。
用户词典
将行业专用术语和内部术语注册到词典中。 可以在管理界面的 [系统] > [词典] 中选择 Kuromoji 词典进行设置。
例如,当希望复合词作为一个 token 而不是被拆分为多个单词时,此功能很有用。
同义词
处理日语特有的书写变体。
サーバー,サーバ
データベース,DB,ディービー
ユーザー,ユーザ,利用者
英语设置
英语文档通过 Fess 的多语言索引自动使用适当的 Analyzer 进行处理。
英语特有的自定义包括以下内容。
停用词
常见的英语停用词(the、a、an、is、are 等)默认被排除,但也可以添加行业特有的停用词。
词干覆盖
覆盖特定单词的词干转换。 可以在管理界面的 [系统] > [词典] 中选择 Stemmer 覆盖词典进行设置。
例如,当技术术语发生意外转换时使用。
中文设置
中文文档使用 Fess 自研的中文分词器。 在 Fess 的多语言索引中,简体中文和繁体中文文本都能被正确分词。
中文特有的注意事项包括以下内容。
简体字与繁体字的对应
拼音输入搜索支持
中文特有的同义词设置
多语言环境中的搜索体验
搜索 UI 注意事项
在多语言环境中,搜索 UI 也需要匹配用户的语言。
Fess 具有根据浏览器语言设置自动切换 UI 语言的功能。 搜索界面的 UI 提供了包括日语、英语和中文在内的多种语言。
跨语言搜索注意事项
还存在”用日语关键词查找英语文档”这样的跨语言搜索需求。 目前,Fess 单独并不支持完全自动的翻译搜索,但可以通过以下方法部分地满足这一需求。
多语言同义词设置
将日语和英语的对译注册为同义词。
会議,meeting,ミーティング
報告書,report,レポート
仕様書,specification,スペック
这样,搜索日语的”会议”时,也会返回包含”meeting”的英语文档。
通过标签进行语言过滤
为每种语言设置标签,使用户能够选择搜索对象的语言范围。
lang-ja:日语文档lang-en:英语文档lang-zh:中文文档
词典管理最佳实践
在多语言环境中,词典管理对搜索质量有重大影响。
按语言进行词典维护
| 词典 | 日语 | 英语 / 中文 |
|---|---|---|
| 同义词 | 书写变体、缩写、专业术语 | 缩写展开、同义词 |
| 停用词 | 行业特有的无用词 | 领域特有的无用词 |
| 用户词典 | 内部术语、产品名称 | (Kuromoji 特有) |
| Protwords(受保护词) | 不应进行词干提取的词 | 技术术语、专有名词 |
定期词典维护
词典不是设置一次就完成的,需要定期进行审查。
添加新的产品名称和项目名称
清理不再使用的术语
添加从搜索日志中发现的新同义词候选
结合第8回介绍的搜索质量调优周期,持续维护词典。
总结
本文介绍了在日语、英语和中文文档共存环境中构建搜索基础设施的方法。
理解各语言不同的分词处理
Fess 的多语言索引和 Analyzer 设置
日语(Kuromoji)、英语、中文各自的自定义
通过多语言同义词实现跨语言搜索
词典管理最佳实践
多语言支持不是一次配置就能完成的,根据使用情况进行持续改进非常重要。
下一回将介绍搜索系统的稳定运维。