这是总结和我的主要收获 由 LinkedIn 关于如何使用 NLP(截至 )设计其帮助搜索系统。这突出了问题陈述和所采用的解决方案的不同迭代及其缺点。 原帖 2019 年 问题陈述: 给定用户的查询,从数据库中获取最相关的帮助文章。 迭代 1:初始解决方案 使用 对数据库中的所有帮助文章(文档)进行索引。简而言之,它会生成一个倒排字典,将术语映射到它出现的所有文档。 Lucene Index 2. 给定查询用于使用 Lucene 索引获取所有相关文档(命中)。 3. 使用 算法对每个命中进行评分,该算法考虑到 ,对 中的命中赋予最高权重,然后是 中的命中,然后是 中的命中,并返回加权分数。 BM25F 文档结构 Title Keywords Body 4. 返回评分最高的文章。 为什么失败 由于文档检索系统是 ),没有考虑 ,以下是两个示例失败案例: 基于 Term 的( 句法 语义 迭代 2:最终解决方案 第 1 步:文本规范化 “ 正常化为“ 如何立即取消我的高级帐户” 取消高级帐户” 第 2 步:查询映射 规范化查询可能与文章中的单词没有任何共同的单词。因此,每个查询都映射到更具代表性的查询,以填补用户术语和文章术语之间的空白。 分以下两步完成: 查询根据相似度指标分组在一起 查询分组: 对Query组中的每一个query,计算一个 ,选出前K个query作为Rep Queries 2. Topic Mining and Rep Scoring: repScore 是原始查询与组中另一个查询之间的相似度 sim(RQ, Q2) 是 Q2 与标题中的一个主题之间的最大相似度(与正文类似) sim(Q2, title) 第 3 步:意图分类 长尾查询可能没有 Rep Query,在这种情况下, 用于对查询的 进行分类。 CNN Intent 例如:“取消您的高级订阅”和“取消或更新在您的 Apple 设备上购买的高级订阅”被认为与“取消高级订阅”具有相同的意图。 总流量 也在 发布 这里