实用的一些倒排索引代码

作用

倒排索引是为了加速搜索过程。例如做问答系统的问题匹配时,数据库过大,用传统方法将所有问题与用户输入的问题一一做相似度匹配耗时很多。而倒排索引可以直接定位到与用户输入有相同词汇的问题,甚至可以简单地将词语的重合度当成相似度来抽取对应答案,大大提高了效率。

例如,我有10万条问答对,问句中只出现了100次“篮球”这个词语,而用户输入中有“篮球”这个词语,传统方法需要一一匹配相似度10万次,而倒排索引后的相似度匹配只需要100次。(细节方面还可以深究,例如缺词匹配,近义词匹配等,以后有时间再补上)

理论

这篇博客详细地介绍了倒排索引的主要理论:http://blog.csdn.net/hguisu/article/details/7962350

代码

下面给出了倒排索引的生成代码,至于相似度匹配,方法太多,有时间再补。

gensim中的corpora能生成倒排索引

 from gensim import corpora
 dictionary = corpora.Dictionary(corpus)

其中corpus为一个list,corpus中的每一个元素为该文章单词所组成的list。

若不想安装gensim库,以下提供一段不包含频率的倒排索引生成代码

    import jieba
    import jieba.posseg as pseg
    listInvertedIndex = []
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值