描述
在公司商城搜索项目中,为了改善用户体验 提高商品召回的准确率。
需要在query预处理模块中加入实体词(品牌、类目)提取 用于查询过滤或排序优化,例如:康师傅面,提取词就是"康师傅"、"面"。
问题
-
- 公司商城的商品标题、品牌、类目数据录入不规范,商品录入时可人为随意设定,导致提取到的实体词会引起过滤错误。
例如:用户搜索"崂山",提取到的品牌词是"崂山",但索引中录入的崂山啤酒 商品品牌却是"青岛"。
- 公司商城的商品标题、品牌、类目数据录入不规范,商品录入时可人为随意设定,导致提取到的实体词会引起过滤错误。
-
- 公司暂不支持好点的服务器配额。
方案
-
- 词表法
建立实体词(品牌,类目)词库,采用一对多的方式录入实体词的对应关系,规避商品信息录入错误的情况。
这个方案通过词表直接匹配的方式来提取查询实体词,实现逻辑较为简单,能够较准确的解决高频词和错词。
例如类目:洗衣粉-->家洗用品,洗衣皂粉液。
缺点:需要大量的人工录入词汇,通过代码很难自动化录入,而且耗费时长高,烦躁。
- 词表法
-
- 机器学习
通过crf进行实体词识别模型训练,用户搜索的关键词作为训练数据的来源,用一个叫准确的实体词(品牌、类目)词典对训练数据进行标注。
优点:可做到自动化,具有很好的实体词识别准确率。
缺点:公司没有这方面的支撑(没有机器),另外人工标注成本高。
- 机器学习
方案使用
采用词表法,耗费差不多一个月时长,通过查看上线后用户行为数据,用户使用体验有明显改善。
后期思考
如果条件允许,后期将采用机器学习+词表法结合使用,模型识别错误的实体词可通过词表人工实时修正。