python通过BF算法实现关键词匹配的方法


Posted in Python onMarch 13, 2015

本文实例讲述了python通过BF算法实现关键词匹配的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/python

# -*- coding: UTF-8

# filename BF

import time

"""

t="this is a big apple,this is a big apple,this is a big apple,this is a big apple."

p="apple"

"""

t="为什么叫向量空间模型呢?其实我们可以把每个词给看成一个维度,而词的频率看成其值(有向),即向量,这样每篇文章的词及其频率就构成了一个i维空间图,两个文档的相似度就是两个空间图的接近度。假设文章只有两维的话,那么空间图就可以画在一个平面直角坐标系当中,读者可以假想两篇只有两个词的文章画图进行理解。"

p="读者"

i=0

count=0

start=time.time()

while (i <=len(t)-len(p)):

    j=0

    while (t[i]==p[j]):

                i=i+1

                j=j+1

        if j==len(p):

            break         

        elif (j==len(p)-1):

            count=count+1

    else:

        i=i+1

        j=0

print count

print time.time()-start

 
算法思想:目标串t与模式串p逐词比较,若对应位匹配,则进行下一位比较;若不相同,p右移1位,从p的第1位重新开始比较。

算法特点:整体移动方向:可认为在固定的情况下,p从左向右滑动;匹配比较时,从p的最左边位开始向右逐位与t串中对应位比较。p的滑动距离为1,这导致BF算法匹配效率低(相比其他算法,如:BM,KMP,滑动没有跳跃)。

该算法的时间复杂度为O(len(t)*len(p)),空间复杂度为O(len(t)+len(p))

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python实现DNS正向查询、反向查询的例子
Apr 25 Python
给Python初学者的一些编程技巧
Apr 03 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
python占位符输入方式实例
May 27 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
python import 上级目录的导入
Nov 03 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 Python
Spy++的使用方法及下载教程
Jan 29 Python
python中redis包操作数据库的教程
Apr 19 Python
python中Pyqt5使用Qlabel标签播放视频
Apr 22 Python
python通过装饰器检查函数参数数据类型的方法
Mar 13 #Python
python实现简单温度转换的方法
Mar 13 #Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 #Python
Python比较两个图片相似度的方法
Mar 13 #Python
python通过urllib2获取带有中文参数url内容的方法
Mar 13 #Python
python将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 #Python
python通过正则查找微博@(at)用户的方法
Mar 13 #Python
You might like
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
angular6的响应式表单的实现
2018/10/10 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
Python实现KNN邻近算法
2021/01/28 Python
python实现归并排序算法
2018/11/22 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
教师党员思想汇报
2014/01/06 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
国窖1573广告词
2014/03/21 职场文书
海洋科学专业求职信
2014/08/10 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
邀请函模板
2015/02/02 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
Python快速实现一键抠图功能的全过程
2021/06/29 Python
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL
html中两种获取标签内的值的方法
2022/06/16 jQuery
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS