bm25中调参因子

BM25提供两个调参因子
k1:这个参数控制着词频结果在词频饱和度中的上升速度。默认值为 1.2 。值越小饱和度变化越快,值越大饱和度变化越慢。词频饱和度可以参看下面官方文档的截图,图中反应了词频对应的得分曲线,k1 控制 tf of BM25 这条曲线。
在这里插入图片描述
b:这个参数控制着字段长归一值所起的作用, 0.0 会禁用归一化, 1.0 会启用完全归一化。默认值为 0.75 。

在 字段长归一化 中,我们提到过 Lucene 会认为较短字段比较长字段更重要:字段某个词的频度所带来的重要性会被这个字段长度抵消,但是实际的评分函数会将所有字段以同等方式对待。它认为所有较短的 title 字段比所有较长的 body 字段更重要。

BM25 当然也认为较短字段应该有更多的权重,但是它会分别考虑每个字段内容的平均长度,这样就能区分短 title 字段和 长 title 字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BM25算法是一种用于文本检索和文档排序的算法。在Python,可以使用gensim库bm25模块来实现BM25算法。下面是一个示例代码,用于展示如何使用BM25算法进行文本分类: ```python from gensim.summarization import bm25 import jieba def gensim_bm25_word_classification(test_word): corpus = [ ['高', '血', '压', '高血', '血压'], ['糖', '尿', '病'], ['精', '神', '病'] ] corpus_dic = { '高血压': ['高', '血', '压', '高血', '血压'], '糖尿病': ['糖', '尿', '病'], '精神病': ['精', '神', '病'] } bm25Model = bm25.BM25(corpus) # 构建BM25模型 test_word = list(test_word) # 将测试文本转为列表 scores = bm25Model.get_scores(test_word) # 计算相关性分数 print('测试短文本:', test_word) for i, j in zip(scores, corpus): for m in corpus_dic.keys(): if j == corpus_dic[m]: word_name = m print('分值:{},原词:{}'.format(i, word_name)) test_word = '高血压的症状是什么' # 设置测试文本 gensim_bm25_word_classification(test_word) ``` 以上代码演示了如何使用BM25算法对文本进行分类,根据测试文本的相关性分数来判断其属于哪个类别。在这个例子,我们使用了一个简单的文本分类任务,将测试文本与预定义的文本集进行匹配,得到相关性分数并输出对应的类别名称。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python bm25短文本分类,相似度识别,BM25算法相似度匹配,疾病相似度匹配gensim实现,bm25算法原理和实现...](https://blog.csdn.net/L_goodboy/article/details/124415418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值