python信息检索搜索引擎,python查询模块有哪些函数

  python信息检索搜索引擎,python查询模块有哪些函数

  说明

  获取原始数据并建立倒排索引后,就可以根据用户输入找到相关内容。

  1.首先对用户的输入进行分段。

  2.然后根据倒排索引得到每个词相关的文章。

  3.最后,计算每个单词与相关文章之间的得分。分数越高,相关性越大。

  实例

  defsearch(self,query):

  BM25_scores={}

  #为用户输入分词

  #并把它变成{word3360frequency,}

  query=jieba.lcut_for_search(查询)

  word2freq=self.format(查询)

  #遍历每个单词

  #计算每个词与相关文章之间的得分(计算公式参考BM25算法)

  forword 2 freq :

  data=self.iindex.get(word)

  ifnotdata:

  继续

  BM25_score=0

  qf=word2freq[word]

  df=数据[df]

  ds=数据[ds]

  W=math.log((self。N-df 0.5)/(df 0.5))

  fordocinds:

  doc_id=doc[id]

  tf=doc[tf]

  dl=doc[dl]

  k=self . k1 *(1-self . b self . b *(dl/self。AVGDL))

  r=(TF *(self . k1 1)/(TF K))*(qf *(self . k2 1)/(qf self . k2))

  BM25_score=W*R

  BM25 _ scores[doc _ id]=BM25 _ scores[doc _ id]BM25 _ score ifdoc _ id

  #按照从大到小的顺序排列所有分数,并返回结果

  BM25 _ scores=sorted(BM25 _ scores . items(),key=lambdaitem:item[1])

  BM25_scores.reverse()

  ReturnBM25_scores以上是python搜索模块的查询方法。希望对你有帮助。更多python学习方向:Python基础课程

  本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: