全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
开放搜索

自定义分词器

更新时间:2018-01-22 10:01:32

功能介绍

分词是搜索引擎中一个基础但重要的组件,分词的结果直接影响搜索效果。由于业务场景的多样,同一个短语在不同的业务、不同的语境下,其语义可能会不一样,期望分词的结果也不一样。为此,OpenSearch除了提供面向通用领域的基础分词器外,还提供了面向特定领域的分词器,如面向电商领域的电商分词器等。为了更好的满足用户的业务需求,OpenSearch可以让用户在系统提供的基础分词器的基础上,通过结合干预词条的形式创建自定义分词器。在应用的索引字段的分词器中选择使用相应的分词器,以达到干预索引和查询时分词结果,确保搜索结果的质量。

干预词条

目前,系统支持两种类型的干预词条:语义实体和语义切分。

语义实体干预词条

这类干预词条主要用于一些系统尚未识别的实体词,干预后,该词的切分总是能保持一致,不受其所在的上下文影响。

  • 词条格式:
    1. 实体词1
    2. 实体词2
  • 示例:
    1. 分词器
    2. 开放搜索
    干预后,“分词器”和“开放搜索”不管出现什么样的上下文中,都会被当做独立的语义实体,系统对它们还会进一步切分,例如:“分词器”可能会保留原词,而“开放搜索”可能会被进一步切分成“开放“和“搜索”两个更细粒度的词。

语义切分干预词条

这种类型的干预词条用于指定在特定上下文中的短语的切分方式,而不影响该短语在其他上下文中的切分方式。

  • 词条格式:
    1. 短语 =>
  • 示例:
    1. 语义切分干预词条 => 语义 切分 干预词条
    干预后,当语句中完整的出现短语“语义切分干预词条”时,系统首先会按照词条对其切分成“语义”、“切分”和“干预词条”三个子短语,然后对子短语分别进行更细粒度的切分。这样可以确保在查询“语义”或者“切分”和“干预词条”等子短语时能召回改文档。

注意事项

  • 用户最多能同时保留8个自定义分词器;
  • 单个自定义分词器最多能包含1000个干预词条;
  • 每个词条中,key为不超过10个字符,value为不超过32个字符;1个字符为1个汉字或1个英文字母;
  • 词条内容中不能包含大写字母(A-Z),全角符号(\uff01 - \uff5e),中文标点符号;
  • 语义切分干预词条中,key和value在去掉空格后,内容需相同;示例如下:

    1. 不正确的词条 => 错误 词条
    2. 正确的词条 => 正确 词条

    第1个词条中,key和value去掉空格后,内容不一致,因此是不符合规范的词条。

  • key中不能包含有空格;示例如下:

    1. 不正确 词条 => 正确 词条
    2. 正确词条 => 正确 词条

    第1个词条,key中包含了空格(“ “),因此是不符合规范的词条。

  • key的内容不能为同一个干预词典中其他词条value中的一部分;示例如下:

    1. 自定义分词器 => 自定义 分词器
    2. 分词器
    3. 分词

    第2个词条的key的内容“分词器”,是第1个词条value中的一部分,因此第2个词条是不符合规范的。但第3条词条是符合规范的

流程演示

流程简述

创建自定义分词器——修改应用结构(分词方式更改为自定义分词器)——索引重建生效自定义分词器效果

具体流程如下:

1.在应用列表左侧,找到“高级配置”,选择“自定义分词器”,点击“创建分词器”进行规则添加:1

2.创建分词器,按截图中的格式,自定义分词器的名称(示例中创建为了”test”),以及配置需要干预的文档内容以及需要拆分的term(可以配置多条),点击“创建”:2

3.创建好名称为“test”的自定义分词器后,等待分词器生效:3

4.分词器生效后,可以进行分词测试,测试分词器生效后干预词条的结果:9

  • 4-1. 对某一个自定义分词器进行分词测试:10
  • 4-2. 对自定义分词器列表中的全部或部分进行分词测试:11

5.分词器生效后,点击应用管理,修改应用结构:45

6.在索引字段配置分词方式时,需要指定自定义分词器,索引重建后才会生效该分词器:6

自定义分词器效果展示示例:

以“乒乓球拍卖多少”的文档内容为例,当使用“中文——通用分词时”搜索时出现badcase, 与预期不符,如图:7按上述流程添加“test”自定义分词器,并修改应用结构,索引重建后,拆分的term与干预后一致,如图:8

注意事项:

  1. 自定义分词器不能修改,因此,如果在已经使用test分词器后又发现了搜索的badcase,那么此时需要新建分词器。
  2. 自定义分词器有上限,所以如果有应用中不使用的分词器,建议删除。应用中正在使用的分词器是不能删除的。
本文导读目录