全部产品

实体识别

更新时间:2020-08-20 18:12:56

功能介绍

实体识别,全称命名实体识别(Named Entity Recognition,简称NER),指对查询词中的具有特定意义的语义实体进行识别。查询分析根据识别的结果,依据实体类型的权重对查询词进行改写,使得召回的文档符合查询的意图。目前,OpenSearch的实体识别只支持电商行业。主要实体类型如下:

类别/英文 类别/英文 类别/英文 类别/英文
普通词/common 材质/material 风格/style 款式元素/element
颜色/color 品牌/brand 功能功效/function 尺寸规格/size
品质成色/quality 场景/scenario 人群/people 套装/suit
时间季节/season 型号/model 新品/new-release 系列/series
营销服务/marketing 地点地域/region 人名/name 文娱书文曲/entertainment
机构实体/organization 影视名称/movie 游戏名称/game 数字/number
单位/unit 品类/category 新词/new-word 修饰/adjective
专有名词/proper-noun 品类修饰词/category-modifier 符号/symbol 前缀/prefix
后缀/suffix 赠送/gift 否定/negative 代理/agent

实体识别作用

在查询分析中,实体识别主要的作用于query改写和类目预测查询中。

Query改写

OpenSearch的查询分析最多改写出来两个query,第一个Query相比第二个Query会更精准,第二个query减少了参与召回的term,旨在当更精确的召回结果数不足时,用第二个query进行扩大召回。
Query改写主要根据实体的重要性,对query进行改写,召回时保留重要性高的实体词,对重要性低的部分不影响召回,只影响算法排序。实体的重要性目前分为3档,分别是高、中、低。
Query改写的规则如下:

  1. 重要性高的实体,其优先级完全一样,肯定会参与召回;
  2. 重要性低的实体,始终不参与召回;
  3. 重要性中的实体,其优先级按其在查询分析中配置的顺序依次递减,改写规则:
    1. 当query中有重要性高的实体时,重要性中的实体在第一个query中参与召回,第二个query不参与召回;
    2. 当query中没有重要性高的实体时,重要性中的实体在第一个query中参与召回,在第二个query中,优先级最高的那个实体类型的词会参与召回,其他的都不参与召回。
  4. 当query中没有重要性高和中的实体时,query改写不参照实体识别的结果;
  5. 当query只有重要性高或者只有重要性高和低的实体时,改写后只会得到一个query。

示例
假设实体重要性设置为:

  1. 高:品类
  2. 中:品牌 材质 款式元素 风格 颜色

1.包含重要性高和中的实体:

  1. query=default:'杨幂同款耐克修身连衣裙包邮'
  2. 实体识别的结果:杨幂(人名)同款(后缀)耐克(品牌)修身(款式元素)连衣裙(品类)包邮(营销服务)
  3. 改写后的Query
  4. Query1 (default:'耐克' AND default:'修身' AND default:'连衣裙' RANK default:'杨幂' RANK default:'包邮' RANK default:'同款')
  5. Query2 (default:'连衣裙' RANK default:'杨幂' RANK default:'耐克' RANK default:'包邮' RANK default:'同款' RANK default:'修身')

2.包含重要性高和低的实体:

  1. query=default:'连衣裙包邮'
  2. 实体识别的结果:连衣裙(品类)包邮(营销服务)
  3. 改写后的Query
  4. Query1 (default:'连衣裙' RANK default:'包邮')

3.仅包含重要性高的实体:

  1. query=default:'连衣裙'
  2. 实体识别的结果:连衣裙(品类)
  3. 改写后的Query
  4. Query1 (default:'连衣裙')

4.包含重要性中和低的实体:

  1. query=default:'耐克修身包邮'
  2. 实体识别的结果:耐克(品牌)修身(款式元素)包邮(营销服务)
  3. 改写后的Query
  4. Query1 (default:'耐克' AND default:'修身' RANK default:'包邮')
  5. Query2 (default:'耐克' RANK default:'修身' RANK default:'包邮')

5.仅包含重要性低的实体:

  1. query=default:'杨幂同款包邮'
  2. 实体识别的结果:杨幂(人名)同款(后缀)包邮(营销服务)
  3. 无根据实体识别改写的query

与类目预测一起使用

Query中不同的实体对类目的影响是不一样的,因此,当原query没有类目预测的结果时,会根据一定的规则,去掉query中和类目意图无关或者相关度低的词后,进行类目预测。这对长尾query的类目预测会有很大的帮助。
保留的实体词包括:

  1. 品类
  2. 人群
  3. 时间季节
  4. 款式种类
  5. 风格


示例
对于query 杨幂(人名)同款(后缀)春季(时间季节)修身(款式元素)连衣裙(品类),丢词后的query按照优先级排序分别为:

  1. 春季修身连衣裙
  2. 春季连衣裙
  3. 修身连衣裙
  4. 连衣裙

系统会按照上述顺序依次查询类目预测的结果。

功能使用流程

1.开放搜索控制台选择左侧导航栏中的“召回配置”下方对应的“查询分析”

1

2.在上图页面中选择对应的应用名和应用类型(线上/线下),点击“创建”

2

3.输入“规则名称”,选择“索引范围”,选择“行业类型”为电商分词,功能选择选中“实体识别”,点击“确定”

3
注:在实体类型主要性设置中增删实体类型,默认使用系统内置词典,如果系统识别的实体存在badcase, 可以使用干预词典进行人为干预。

4.规则创建完毕后,可以进行搜索效果测试:

4
测试效果:
5
查看查询分析过程:
6

5.调试无误后,在查询分析界面,切换到“索引视角”,将对应的自定义查询分析设置为默认查询分析

7

6.设置默认自定义查询分析后的界面效果:

8

实体识别干预词典

业务场景不同,某些词的实体识别语义也是不同的,为了方便用户使用,opensearch提供实体识别干预词典,供用户自定义词的语义,目前实体识别的干预主要包括两个:一是对实体识别结果本身的干预,二是实体类型重要性的干预。当实体识别的结果不准时,应该通过实体识别的干预词典的配置来进行干预。通过创建实体识别干预词典,并在查询分析中实体识别配置相应的干预词典,就可以干预实体识别功能。具体实体识别干预词典配置及原理,请点击此处