功能介绍
实体识别,全称命名实体识别(Named Entity Recognition,简称NER),指对查询词中的具有特定意义的语义实体进行识别。查询分析根据识别的结果,依据实体类型的权重对查询词进行改写,使得召回的文档符合查询的意图。目前,OpenSearch的实体识别只支持电商行业。主要实体类型如下:
类别 | |||
普通词 | 材质 | 风格 | 款式元素 |
颜色 | 品牌 | 功能功效 | 尺寸规格 |
品质成色 | 场景 | 人群 | 套装 |
时间季节 | 型号 | 新品 | 系列 |
营销服务 | 地点地域 | 人名 | 文娱书文曲 |
机构实体 | 影视名称 | 游戏名称 | 数字 |
单位 | 品类 | 新词 | 修饰 |
专有名词 | 品类修饰词 | 符号 | 前缀 |
后缀 | 赠送 | 否定 | 代理 |
实体识别作用
在查询分析中,实体识别主要的作用于query改写和类目预测查询中。
Query改写
OpenSearch的查询分析最多改写出来两个query,第一个Query相比第二个Query会更精准,第二个query减少了参与召回的term,旨在当更精确的召回结果数不足时,用第二个query进行扩大召回。
Query改写主要根据实体的重要性,对query进行改写,召回时保留重要性高的实体词,对重要性低的部分不影响召回,只影响算法排序。实体的重要性目前分为3档,分别是高、中、低。
Query改写的规则如下:
重要性高的实体,其优先级完全一样,肯定会参与召回;
重要性低的实体,始终不参与召回;
重要性中的实体,其优先级按其在查询分析中配置的顺序依次递减,改写规则:
当query中有重要性高的实体时,重要性中的实体在第一个query中参与召回,第二个query不参与召回;
当query中没有重要性高的实体时,重要性中的实体在第一个query中参与召回,在第二个query中,优先级最高的那个实体类型的词会参与召回,其他的都不参与召回。
当query中没有重要性高和中的实体时,query改写不参照实体识别的结果;
当query只有重要性高或者只有重要性高和低的实体时,改写后只会得到一个query。
示例:
假设实体重要性设置为:
高:品类
中:品牌材质款式元素风格颜色
1.包含重要性高和中的实体:
query=default:'杨幂同款耐克修身连衣裙包邮'
实体识别的结果:杨幂(人名)同款(后缀)耐克(品牌)修身(款式元素)连衣裙(品类)包邮(营销服务)
改写后的Query:
Query1:(default:'耐克' AND default:'修身' AND default:'连衣裙' RANK default:'杨幂' RANK default:'包邮' RANK default:'同款')
Query2:(default:'连衣裙' RANK default:'杨幂' RANK default:'耐克' RANK default:'包邮' RANK default:'同款' RANK default:'修身')
2.包含重要性高和低的实体:
query=default:'连衣裙包邮'
实体识别的结果:连衣裙(品类)包邮(营销服务)
改写后的Query:
Query1:(default:'连衣裙' RANK default:'包邮')
3.仅包含重要性高的实体:
query=default:'连衣裙'
实体识别的结果:连衣裙(品类)
改写后的Query:
Query1:(default:'连衣裙')
4.包含重要性中和低的实体:
query=default:'耐克修身包邮'
实体识别的结果:耐克(品牌)修身(款式元素)包邮(营销服务)
改写后的Query:
Query1:(default:'耐克' AND default:'修身' RANK default:'包邮')
Query2:(default:'耐克' RANK default:'修身' RANK default:'包邮')
5.仅包含重要性低的实体:
query=default:'杨幂同款包邮'
实体识别的结果:杨幂(人名)同款(后缀)包邮(营销服务)
无根据实体识别改写的query
与类目预测一起使用
Query中不同的实体对类目的影响是不一样的,因此,当原query没有类目预测的结果时,会根据一定的规则,去掉query中和类目意图无关或者相关度低的词后,进行类目预测。这对长尾query的类目预测会有很大的帮助。保留的实体词包括:
品类
人群
时间季节
款式种类
风格
示例:
对于query 杨幂(人名)同款(后缀)春季(时间季节)修身(款式元素)连衣裙(品类)
,丢词后的query按照优先级排序分别为:
春季修身连衣裙
春季连衣裙
修身连衣裙
连衣裙
系统会按照上述顺序依次查询类目预测的结果。
功能使用流程
1.开放搜索控制台选择左侧导航栏中的“召回配置”下方对应的“查询分析配置”,选择对应的应用名和应用类型(线上/线下)点击创建:
2.输入“规则名称”,选择“索引范围”,选择“行业类型”为电商分词,功能选择选中“实体识别”,点击“确定”:
注:在实体类型主要性设置中增删实体类型,默认使用系统内置词典,如果系统识别的实体存在badcase, 可以使用干预词典进行人为干预。
3.规则创建完毕后,可以进行搜索效果测试:
测试效果:查看查询分析过程:
4.调试无误后,在查询分析界面,切换到“索引视角”,将对应的自定义查询分析设置为默认查询分析:
5.设置默认自定义查询分析后的界面效果:
实体识别干预词典
业务场景不同,某些词的实体识别语义也是不同的,为了方便用户使用,OpenSearch提供实体识别干预词典,供用户自定义词的语义,目前实体识别的干预主要包括两个:一是对实体识别结果本身的干预,二是实体类型重要性的干预。当实体识别的结果不准时,应该通过实体识别的干预词典的配置来进行干预。通过创建实体识别干预词典,并在查询分析中实体识别配置相应的干预词典,就可以干预实体识别功能。具体实体识别干预词典配置及原理,请点击此处。