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关键字匹配_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程序设计与算法思维
译者序 前言 第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 为何 ...
- python函数结构图_Python数据结构与算法之图结构(Graph)实例分析
本文实例讲述了Python数据结构与算法之图结构(Graph).分享给大家供大家参考,具体如下: 图结构(Graph)--算法学中最强大的框架之一.树结构只是图的一种特殊情况. 如果我们可将自己的工作 ...
- 链表python笔试题目_python经典面试算法题1.4:如何对链表进行重新排序
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.4 对链表按照如下要求重新排序 [微软笔试题] 难度系数: ...
- python棋盘最短路径_Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例...
本文实例讲述了Python数据结构与算法之图的最短路径(Dijkstra算法).分享给大家供大家参考,具体如下: # coding:utf-8 # Dijkstra算法--通过边实现松弛 # 指定一个 ...
- python文本聚类分析_python机器学习kmeans算法——对文本进行聚类分析
#!/usr/bin/env python#-*- coding: utf-8 -*-#@File : kmeans.py#@Author: 田智凯#@Date : 2020/3/19#@Desc : ...
- python快速排序代码_Python实现快速排序算法
原标题:Python实现快速排序算法 Python实现快速排序算法 快速排序算法是一种基于交换的高效的排序算法,由C.R.A.Hoare于1962年提出,是一种划分交换排序.它采用了一种分治的策略,通 ...
- python解决最优化问题_python实现最优化算法
二分法 函数详见rres,此代码使该算法运行了两次 def asdf(x): rres=8*x**3-2*x**2-7*x+3 return rres i=2 left=0 right=1 while ...
最新文章
- GCC编译选项参数介绍
- win8和win8.1动态绑定数据到ListView
- Unity3D 2017软件安装教程
- P6154 游走 概率dp
- git checkout 单个文件_IntelliJ IDEA下的使用 Git
- 怎么计算z=x+y的概率密度_上大《Scripta Mater》基于第一性原理计算,研究镁合金强化相!...
- 关于安卓(apk)unity3d游戏汉化简单做一些全面分析
- 二次规划问题和MATLAB函数quadprog的使用
- 如何在右键新建中添加新建xmind文件
- VOIP电话中的SIP信令返回码的详细解释
- 基本共射放大电路的工作原理
- linux小白家教学一
- Unity游戏开发中大数值显示问题
- 深度学习中数据的拆分打乱
- 阿里王坚:用“机器智能”取代“人工智能”概念
- [《Python2.1宝典》笔记] 12-14章
- TDM与FDM的比较
- 计算机最主要的硬盘,电脑硬盘应该分几个区比较合适?
- MySQL数据库实际应用中,需求分析阶段需要做什么?
- uva 11021 数学概率 麻球