python通过BF算法实现关键词匹配的方法
作者:chongq 发布时间:2022-10-19 03:56:37
标签:python,算法,匹配
本文实例讲述了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代码实现贪吃蛇游戏,具体代码与文件可
- 最近一直在做Dnn模块的开发,过程中碰到这么一个问题,需要同时插入N条数据,不想在程序里控制,但是SQL Sever又不支持数组参数.所以只
- 前言CUDA(Compute Unified Device Architecture)是NVIDIA推出的异构计算平台,PyTorch中有专
- 本文实例讲述了JavaScript 扩展运算符用法。分享给大家供大家参考,具体如下:扩展运算符格式扩展运算符格式很简单,就是三个点(…)重点
- 数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据
- 译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员
- MySQL主从配置及原理,供大家参考,具体内容如下一、环境选择:1.Centos 6.52.MySQL 5.7二、什么是MySQL主从复制M
- 前言之前做了一个校园交友的APP,其中一个逻辑是通过用户的教务系统来确认用户是一名在校大学生,基本的想法是通过用户的账号和密码,用爬虫的方法
- 顺序表python版的实现(部分功能未实现)结果展示:代码示例:#!/usr/bin/env python# -*- coding:utf-
- 表单递交合法性检测-只接受数字。如下代码加入HTML的<head>区:<SCRIPT LANGUAGE=&quo
- 目录简介yieldgevent注简介没有切换开销。因为子程序切换不是线程切换,而是由程序自身控制,没有线程切换的开销,因此执行效率高,不需要
- 前言Python 提供了很多截取字符串的方法,被称为“切片(slicing)”。模版如下:strin
- 本文实例讲述了Python面向对象编程基础。分享给大家供大家参考,具体如下:1、类的定义Python中类的定义与对象的初始化如下,pytho
- 1比如python提倡简单实用的思想,它就没有switch语句,如果要实现switch语句的效果 的话可以通过2个方法来写把 (1)通过if
- 前言:一个完整的 HTTP 请求,包括客户端向服务端发送的 Request 请求和服务器端发送的 Response 响应。为了能方便的访问获
- dotnet run 介绍dotnet 相关命令是属于 .NET Core command-line (CLI) 的一部分,Microsof
- 一 程序预览本程序已经写了多年, 很久没用, 不过刚运行了下竟然还可以成功运行. 先来张运行结果图.二 最近的滴滴APP已经可以支持设置自动
- 教你配置属于自己的PYcharm界面色彩风格,PYthon学习必备 GO第一步,换成深色背景,保护视力PyCharm默认的背景是白色的,比较
- pathlib 模块提供了表示文件系统路径的类,可适用于不同的操作系统。使用 pathlib 模块,相比于 os 模块可以写出更简洁,易读的