手机
当前位置:查字典教程网 >脚本专栏 >python >python通过BF算法实现关键词匹配的方法
python通过BF算法实现关键词匹配的方法
摘要:本文实例讲述了python通过BF算法实现关键词匹配的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:#!/usr/bin/...

本文实例讲述了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通过BF算法实现关键词匹配的方法】相关文章:

Python中条件选择和循环语句使用方法介绍

python实现问号表达式(?)的方法

python 实现归并排序算法

python脚本实现查找webshell的方法

wxpython中利用线程防止假死的实现方法

python中定义结构体的方法

python实现跨文件全局变量的方法

python条件和循环的使用方法

Python实现全局变量的两个解决方法

python paramiko实现ssh远程访问的方法

精品推荐
分类导航