• 技术文章 >后端开发 >Python教程

    python通过BF算法实现关键词匹配的方法

    2016-06-06 11:22:41原创906
    本文实例讲述了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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:python通过装饰器检查函数参数数据类型的方法 下一篇:python检测远程udp端口是否打开的方法
    PHP编程就业班

    相关文章推荐

    • 详细介绍Python3数据结构知识点• python实例详解之xpath解析• Python数据结构与算法学习之双端队列• python知识总结之csv文件的写入与读取• 带你搞懂Python反序列化

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网