日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
創(chuàng)新互聯Python教程:python搜索模塊如何查詢

說明

創(chuàng)新互聯公司是一家專注于成都網站制作、成都網站設計、外貿營銷網站建設與策劃設計,永德網站建設哪家好?創(chuàng)新互聯公司做網站,專注于網站建設十年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:永德等地區(qū)。永德做網站價格咨詢:18982081108

獲取原始數據并構建倒排索引后,可根據用戶輸入查找相關內容。

1、先對用戶的輸入進行分詞。

2、然后根據倒排索引獲取與每個單詞相關的文章。

3、最后,計算每個單詞和相關文章之間的分數。分數越高,相關性越大。

實例

def search(self, query):
    BM25_scores = {}
 
    # 對用戶輸入分詞
    # 并將其變成 {word: frequency, ...} 的形式
    query = jieba.lcut_for_search(query)
    word2freq = self.format(query)
 
    # 遍歷每個詞
    # 計算每個詞與相關文章之間的得分(計算公式參考 BM25 算法)
    for word in word2freq:
        data = self.iindex.get(word)
        if not data:
            continue
        BM25_score = 0
        qf = word2freq[word]
        df = data['df']
        ds = data['ds']
        W = math.log((self.N - df + 0.5) / (df + 0.5))
        for doc in ds:
            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 if doc_id in BM25_scores else BM25_score
 
    # 對所有得分按從大到小的順序排列,返回結果
    BM25_scores = sorted(BM25_scores.items(), key = lambda item: item[1])
    BM25_scores.reverse()
    return BM25_scores

以上就是python搜索模塊的查詢方法,希望對大家有所幫助。更多Python學習指路:創(chuàng)新互聯python教程

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。


當前文章:創(chuàng)新互聯Python教程:python搜索模塊如何查詢
轉載來于:http://m.5511xx.com/article/dppjhhh.html