专栏名称: AINLP
关注AI、NLP相关技术,关注算法研发职位和课程;回复"文章"获取历史信息;双语聊天机器人"无名";中英翻译请输入:翻译 翻译内容;自动对联,请输入:上联 上联内容;调戏夸夸聊天机器人,请求夸、求赞;查询相似词,请输入: 相似词 词条
目录
相关文章推荐
BetterRead  ·  瞧,这个人要面子 ·  3 天前  
今天看啥  ›  专栏  ›  AINLP

BM25Retriever检索器实现

AINLP  · 公众号  ·  · 2024-06-03 09:42
    

文章预览

原理下一篇讲,先贴出代码 https://github.com/gomate-community/GoMate/blob/main/gomate/modules/retrieval/bm25_retriever.py import logging import math from multiprocessing import Pool, cpu_count from typing import List,Dict import jieba import numpy as np import tiktoken from gomate.modules.retrieval.retrievers import BaseRetriever jieba.setLogLevel(logging.INFO) def tokenizer(text: str):      return  [word  for  word  in  jieba.cut(text)] class BM25:     def __init__(self, corpus, tokenizer=None):         self.corpus_size = 0         self.avgdl = 0         self.doc_freqs = []         self.idf = {}         self.doc_len = []         self.tokenizer = tokenizer          if  tokenizer:             corpus = self._tokenize_corpus(corpus)         nd = self._initialize(corpus)         self._calc_idf(nd)     def _initialize(self, corpus):         nd = {} ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览