前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【NLP】三分钟带你看懂如何做网页搜索

【NLP】三分钟带你看懂如何做网页搜索

作者头像
CodeInHand
发布2018-03-26 11:44:03
9680
发布2018-03-26 11:44:03
举报
文章被收录于专栏:Pytorch实践Pytorch实践

01

搜索基本过程

对于网页搜索,传统的过程可以理解为:用户提交POST,搜索引擎返回RESPONSE。最开始的搜索过程,用户基本上是提供关键词,然后搜索引擎进行字符串匹配,给出一些含有这些关键词的候选集网页candidates,然后采用rank模型进行排序,将得分最高的网页靠前显示给用户(当然,某些给了钱做广告的网页就是例外了)。

然而,现在的用户搜索越来越口语化和知识化,搜索引擎慢慢也向QA(问答系统)进行转变,不再仅仅是字符串匹配的过程了。例如用户搜索“刘德华”的妻子这个问题,搜索引擎如何给出答案呢?(这个问题参加过百度校招的童鞋肯定很熟悉,基本上都会问一下的,有很多中方法例如倒排等)。所以单纯地做关键词匹配,基本难以给出实际的答案。这里需要建立知识图谱进行解决。

不过,对于搜索而言,搜索引擎给出答案的过程,基本包括检索、匹配、排序三个过程。在检索过程,如果是中文文本,需要完成包括中文分词等工作,分词完成之后进行实体(具体的人、物、地点等)检测,如果包含具体的实体,可以利用知识图谱给出答案;如果不包含实体就要对检索得到的候选集进行匹配(match),这里的匹配就是文本相似度的计算,也就是本文的重点介绍部分。匹配后得到分数,然后进行排序即可返回给用户了。

02

常见搜索方法

上一部分简单介绍了搜索的基本过程,这里主要讲讲搜索的具体方法。主要介绍字符串匹配、知识库、文本相似度三种方法。

  1. BM25算法 BM25算法简单来讲,就是一种关键词词频统计的方法,如果文本中出现用户POST内关键词频率越高,那该文本就越容易被显示。具体过程简单描述一下:(参见:http://www.cnblogs.com/jilichuan/archive/2012/08/22/2650721.html) 相当于计算用户POST和Document之间的Score。 Score(P,D) = SUM(IDF(Ki)*f(P,D)) 对于字符串匹配的方法,还有很多不需要分词的过程,例如Trie树+AC自动机的方法,有兴趣的童鞋可以去研究研究。
  2. 知识库方法 知识库的方法非常简单,就是通过知识图谱给出答案。但难得是如何做命名实体识别,以及如何前期构建大规模的知识库。
  3. 文本相似度方法 文本相似度很好理解,就是把用户POST用一个向量表达,把网页文本也用一个向量表示,然后计算着两个向量之间的距离,距离越近表示二者越相似。下一部分将具体介绍文本相似度的计算方法。

03

文本相似度方法

文本相似度的计算方法有很多中,例如传统的TFIDF方法,还有预训练的word2vec方法,还有就是目前学术界流行的深度学习的方法,具体过程如下图所示,思想就是把用户POST用一个向量表示,把文本用向量表示。

一般来说使用BiRNN(双向RNN)分别得到用户POST的表达和文本的表达,然后计算两个向量的余弦距离,再排序给出最接近POST的文本候选集。

04

其他方法

除了上述描述的句子相似度方法外,还有一些传统的机器学习方法,例如主题模型LDA,将文本映射到不同的主题空间,给出相同主题的文本返回给用户。具体可以参见百度开源的Familia工业级文本相似度计算工具。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeInHand 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
灰盒安全测试
腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档