如何让搜索结果更准确呢?-八维教育

优采云 发布时间: 2021-08-23 21:32

  如何让搜索结果更准确呢?-八维教育

  搜索引擎可以说是所有互联网应用中技术最先进的。虽然申请表比较简单:用户输入查询词,搜索引擎返回搜索结果。但是,搜索引擎需要达到的目标是:更全面、更快、更准确。如何让搜索结果更准确,一直是搜索引擎的一大难题。

  公司目前正在开发某行业的垂直搜索引擎。作为项目组的核心成员,主要负责核心算法的研究。刚开始接触这个行业,还在摸索阶段,还有很长的路要走。

  言归正传,说说这个项目的背景。这个项目是一个行业垂直搜索引擎。用户分为两类:普通用户和专业用户。整个项目分为:爬虫技术组、引擎组、大数据分析组和算法组。引擎的爬虫、词库的建立、引擎的选择不是本文的重点,我简单提一下,重点是推荐算法的设计。

  一、网络爬虫

  系统的数据需要从几个专业的网站采集。尝试了几个爬虫,最后选择了heritrix作为我们的爬虫框架。选择它的主要原因是虽然配置项很多,但是更加灵活,特别适合我们的需求。当然,爬虫技术团队也尝试过自己实现一个爬虫,主要是爬取几种固定地址的数据。

  二、词库建立

  词库初步分为专业词库、一般行业词库、一般一般词库、过时词库、情感分析词库。

  专业词库实现初期采用人工处理,并为专业人士制作了多项辅助工具,用于选择、合并和删除主题词。

  后几个词库的实现是基于对搜狗等几种输入法的词库的选择,然后在这些词库的基础上对爬虫爬取的文档进行矢量化处理。

  三、工程建设

  通过对采集数据进行去噪、分割、特征提取,然后将对应的数据导入solr中。

  四、recommendation 算法

  当用户输入关键词查询时,如何让用户查询更准确?我们设想,对于用户输入,如果我们能给出几个与用户输入的关键词相似的词,并以此作为查询条件,如果我们的算法足够好,搜索结果会大大提高检索准确率。具体算法思路如下:

  从向量化的角度来看,每个文档对应一个向量

  

  ,哪里

  

  表示特征项 i。

  

  是由词、词位置、TF等含义确定的向量。对于版本 1,我们只取了单词和单词的位置。我们首先使用分类规则将文档分为几个类别,并根据每个类别计算如下:

  

  表示两个特征项的相似度。

  让我们定义距离公式

  

  对于每个文档的特征项,我们成对地找出特征项的相似度。通过这个距离公式

  我们可以得出结论,对于每个类别,以这些特征项为顶点,以相似距离为边来构建

  它变成了下面的无向图。

  

  (法律网)

  类似于 Hownet 的 wordnet 和 hownet,我们称这种无向图为 lawnet。

  那么我们的假设问题就转化为:选择任意一个顶点,找到一个由这些顶点组成的数(例如10),最小的生成树或者边权重之和最小的最小子图。这是一个具有局部最优性的随机问题。换句话说,我们只需要满足用户认可的体验级别。如果概率是90%,也就是说用户输入10000次,我们就可以成功给出9000个提示词。

  目前,我尝试了两种解决方案:

  一种 PRIM 算法。

  算法二:首先通过floyd算法计算任意两点之间的最短距离,作为一条边;这些边被组合成一个集合。然后,对于任何顶点,从该边集中找到收录该顶点的前 N ​​个最小边。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线