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

  1. python关键字匹配_python通过BF算法实现关键词匹配的方法

    本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: UTF-8 # filename ...

  2. python问题关键词匹配算法_python通过BF算法实现关键词匹配的方法

    本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: UTF-8 # filename ...

  3. python 地图偏移_python 地图经纬度转换、纠偏的实例代码 百度地图经纬度web纠偏怎么用...

    天地图的经纬度 经过纠偏了么 给个例子证明下 如何用python实现百度地图墨卡托坐标跟经纬度坐标互转 麦哲伦机器: 系统设置 地图单位 自定义坐标系 横向墨卡托 原点纬度0 原点经度126(通化) ...

  4. python 地图偏移_python 地图经纬度转换、纠偏的实例代码

    python 地图经纬度转换.纠偏的代码如下所示: # -*- coding: utf-8 -*- import json import urllib import math x_pi = 3.141 ...

  5. python地图包_Python交互地图-folium包

    原标题:Python交互地图-folium包 leftlet给R语言提供了很好用的交互式动态地图接口,其在Python中得API接口包名为folium(不知道包作者为何这样起名字,和leaflet已经 ...

  6. python玩扫雷_Python玩转算法—扫雷

    此题来自LeetCode上的一道难度为Medium的题,说是有一张玩到一半的扫雷地图,接下来给你指定一个点击位置,让你预测点击之后,地图将发生怎么样的变化.看到这道题,瞬间让我想起了以前玩扫雷的日子, ...

  7. python函数结构图_Python数据结构与算法之图结构(Graph)实例分析

    本文实例讲述了Python数据结构与算法之图结构(Graph).分享给大家供大家参考,具体如下: 图结构(Graph)--算法学中最强大的框架之一.树结构只是图的一种特殊情况. 如果我们可将自己的工作 ...

  8. python 程序设计思维_Python程序设计与算法思维

    译者序 前言 第1章 Python编程简介 1 1.1 计算的基本概念 1 1.1.1 为何编程 1 1.1.2 硬件和软件 2 1.1.3 数字领域 3 1.1.4 编程的过程 4 1.1.5 为何 ...

  9. 链表python笔试题目_python经典面试算法题1.4:如何对链表进行重新排序

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.4 对链表按照如下要求重新排序 [微软笔试题] 难度系数: ...

最新文章

  1. Oracle基础 动态SQL语句
  2. 前辈说先学会了这些Python知识点,再谈学习人工智能、机器学习
  3. 企业中的局域网性能应该怎么得到保障?
  4. Java的原始字符串文字
  5. 阿里云正式推出内容平台“云栖号”:全面助力企业和个人上云决策
  6. 最适合开发VR游戏大作的游戏引擎——Unity
  7. php获取工作日时间,ThinkPHP中获取指定日期后工作日的具体日期方法
  8. JS实现数组去重方法
  9. 如何设计一个与微信相同的分享sdk
  10. 网站的动静分离实践(动静分离)
  11. tp5组装数据_tp5数据库查询和模型结合使用
  12. 【PHP源码】三合一收款码扫码来源识别收款源码
  13. c语言表达式必须包含指针类型,c – 错误:表达式必须是指向完整对象类型的指针(?)...
  14. QQ等级图标对应的算法
  15. 邮件发送平台哪个好?大家究竟该如何选择?
  16. html模板怎样做seo,SEO如何做分享模板做外链
  17. 电子书如何通过邮箱传入kindle
  18. JAVA的jdk1.8中文文档
  19. 蚂蚁金服首席数据科学家漆远:AI技术开放,与业界融合共创
  20. 偏倚的主要类型_医学科研中偏倚的分类有哪些?

热门文章

  1. C#中ref与out使用小结
  2. 1. 概述--从零起步实现基于Html5的WEB设计器Jquery插件
  3. mysql把某一列的数据更新到另一列中(涉及到多张表的数据)
  4. views.py视图函
  5. 【LeetCode】11. Container With Most Water 解题小结
  6. 期末总结20135320赵瀚青LINUX内核分析与设计期末总结
  7. 菜鸟学习Spring——60s配置XML方法实现简单AOP
  8. [转载]C#多线程学习(一) 多线程的相关概念
  9. BZOJ 1040 [ZJOI2008]骑士
  10. 注意cache同时过期问题