python问题关键词匹配算法_python通过BF算法实现关键词匹配的方法
本文实例讲述了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通过BF算法实现关键词匹配的方法
本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: UTF-8 # filename ...
- python地图匹配_python通过BF算法实现关键词匹配的方法
本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: UTF-8 # filename ...
- python时间复杂度怎么算_python学习:算法和时间复杂度
python学习:算法和时间复杂度 算法 什么是算法? 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制. 算法也可以 ...
- python rsa 公钥解密_python利用rsa库做公钥解密的方法教程
前言 对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文.D 和 N 的组合就是私钥(private key). 算法的加密 ...
- python编写ATM类_Python中编写类的各种技巧和方法
有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...
- python 字符串去空格_Python去除、替换字符串空格的处理方法
个人想到的解决方法有两种,一种是 .replace(' old ',' new ') 第一个参数是需要换掉的内容比如空格,第二个是替换成的内容,可以把字符串中的空格全部替换掉. 第二种方法是像这样 s ...
- python实现冒泡排序视频_Python实现冒泡排序算法的完整实例
冒泡排序:顾名思义就是(较小的值)像泡泡一样往上冒,(大的值)往下沉. 实现原理:依次将相邻两个数值进行比较,较小的数值移到左边,较大的数值移到右边,依次比较完第一轮后,最大的数值应该排在最右边.然后 ...
- python定义链表节点_Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】...
本文实例讲述了Python数据结构与算法之链表定义与用法.分享给大家供大家参考,具体如下: 本文将为大家讲解: (1)从链表节点的定义开始,以类的方式,面向对象的思想进行链表的设计 (2)链表类插入和 ...
- python sort 部分元素_Python 简单排序算法-选择、冒泡、插入排序实现
写文章主要是记录自己每天学习的东西,本篇文章主要介绍数据结构中常用的简单的排序算法,虽然这些算法用Python实现起来不是十分的高效,不如c.java之类的运行速度快,应用Python实现主要是为了: ...
最新文章
- Atom使用方法(快捷键,插件,汉化)
- 结合前段修改mysql表数据_jquery实现点击文字可编辑并修改保存至数据库
- 预测股票价格 模型_建立有马模型来预测股票价格
- Cannot resolve xxxx(依赖名):unknown
- 2017北理计算机考研复试线,北京理工大学2017年硕士研究生复试分数线
- SQL Server系统数据库–模型数据库
- Go语言学习之旅--初识GoLang
- dlibdotnet 人脸相似度源代码_C#开发的人脸左右相似度计算软件源码分析
- QD75D416轴PLC控制伺服电机16轴完整案例
- SPSS决策树和神经网络
- Nginx配置使用upstream负载均衡和proxy_cache缓存
- 武汉互联网公司和生活成本
- 读史笔记(I) 日光之下
- 我用unity开发的第一款游戏demo心得
- 用python画蜡笔小新的步骤_#6.1# 用python画出你的童年回忆
- Linux下的文件及文件后缀名
- [UE4C++程序]GameModule与Plugin
- TortoiseSVN文件夹及文件图标不显示解决方法
- Go 青年团聚召集令,2050,我们来了
- zt围棋是世界上最大的伪科学
热门文章
- matplotlib 横坐标少了一个点_收藏起来!比 matplotlib 效率高十倍的数据可视化神器!...
- plotloss记录
- Python unittest中初始化固件setUp和销毁固件tearDown详解
- Jmeter中JDBC Connection Configuration实现MySQL JDBC Request数据库处理
- java ArrayList的实现
- 004-linux常用命令-权限管理命令
- 【scarletthln 关于算法的一点总结】
- 感觉又学到了不少,在这里写下来,但也有一个问题,不知道是为甚吗?
- 软引用、弱引用、虚引用
- JasperReport里面的Demo