智能信息检索——两个倒排记录表的合并算法

智能信息检索——两个倒排记录表的合并算法


《信息检索导论》部分实验python实现汇总请进入此博客查看。

1.功能描述

用户通过提示输入两个倒排记录表,系统自动实现倒排记录表的合并,并将合并结果输出。

2.概要设计

分为提示输入模块与倒排记录表计算模块两个功能模块。

3.详细设计

总体流程图:

图1 总体流程图
各功能模块流程图:
提示输入模块

图2 提示输入模块
倒排记录表计算模块

图3 倒排记录表计算模块

4.代码实现

def Intersect(p1, p2):
    r = []
    i, j = 0, 0
    lp1, lp2 = len(p1), len(p2)
    while(i < lp1 and j < lp2):
        if(p1[i] == p2[j]):
            r.append(p1[i])
            i, j = i + 1, j + 1
        elif(p1[i] > p2[j]):
            j = j + 1
        else:
            i = i + 1  
    return r

print("输入第一个词项的倒排记录表,文档ID之间用“,”分隔:", end = '')
p1 = input().split(",")
p1 = [int(i) for i in p1]
print("输入第二个词项的倒排记录表,文档ID之间用“,”分隔:", end = '')
p2 = input().split(",")
p2 = [int(i) for i in p2]
#p1 = [1,2,3]
#p2 = [3,4,5]
print("合并结果为:", Intersect(p1, p2))

Intersect函数为倒排记录表计算模块,首先通过len函数获取倒排记录表长度,然后通过下标循环获取记录表元素,通过数值判断合并记录表并存储到新的列表中,最终返回该结果列表。
Input函数获取用户输入字符串,split(“,”)函数对字符串进行切分,[int]方法则将字符串转化为数值列表。
注释掉的部分为调试的过程。

5.实验成果

输入倒排记录表[1,2,3]和[2,3,4]得到合并结果如下图。

图4 合并结果

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值