NLP 教程

NLP 笔记

NLP 搜索 query 样本标注任务的技巧

NLP 笔记 NLP 笔记


本文是笔者的经验之谈,我们在用 NLP 深度学习技术做针对搜索 query 的标注任务(序列标注、分类标注等)时,需要对样本 query 进行样本标注以进行监督学习,往往一一的人工标注耗时耗力,笔者从实际项目实践出发,整理了一套相对比较有效快速的标注方法。

标注策略

众所周知,NLP 的深度学习模型针对 query 文本处理,常用单个字输入,并转为嵌入层(embedding)后,进一步根据后续网络处理,所以要对模型有比较全面的处理能力,需要样本中的词典大小越大越好(也就是标注更多不同字的 query),因为模型在遇到词典中不包含的字,它会按照 padding 处理,显然对预测结果大大折扣,且线上预测时,针对词典中不包含的字出现时,打印相应 query,并收集相关数据,作为进一步构造样本数据源

第二点是分析 top query,并对其进行分析抽象出 term 组成结构,以笔者参与的垂直领域里的搜索业务,可以按照如下思路去分析:

  1. 首先,针对已有的 term 表,进行程序处理标注,主要选取核心词,如品牌词这类实体词,因为这些词往往在 query 中常出现;
  2. 其次,针对 query 拟定意图种类(如 找机构、找人、找项目、提问题等等);
  3. 再次,对同一个意图中,分析 query 中,term 的组合方式,提取出里面的规律,如在“找机构”意图中,有一类 query 是 “地区词 + 门店品牌词 + 修饰词”;
  4. 最后,基于抽象出来的不同 term 结构,对相应抽象位置,选取不同的词,这样保证多样性,每个词可以控制在 5 到 10 的样本即可,如上,地区词这个位置从 top query 中找 “北京”、“上海” 这类样本,每个大概几个即可。