python通过BF算法实现关键词匹配,pythonbf,python通过BF算法
python通过BF算法实现关键词匹配,pythonbf,python通过BF算法
python通过BF算法实现关键词匹配```python
!/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=0count=0start=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=0print countprint 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发送邮
- Python为PPT文件进行截图操作的代码,pythonppt,下面的代码
- python实现中文繁体和中文简体之间的相互转换,python中
- python实现高效率的排列组合算法,python排列组合,组合算
- python在线抓取百度词典的翻译结果翻译单词,python抓取
- python通过datetime模块计算各种时间间隔,pythondatetime,p
- python通过正则表达式分析网页中的图片并进行替换,
- python获得两个数组的交集、并集、差集,python交集,py
- python去除列表里的重复元素的集中方法汇总,python汇总
- python多线程有几种实现方法,python多线程,python多线程有
评论关闭