zoukankan      html  css  js  c++  java
  • python flashtext模块安装使用方法

    FlashText算法可用于大规模替换、检索文档中的关键字。
    本文要介绍的是FlashText算法的python实现模块。
     
    ------------------
    0x01 安装
    pip install flashtext

    0x02 使用方法

    传统的replace连用:
    s = "spamham sha"
    print s.replace('spam','eggs').replace('sha','md5')
    # eggmd5m md5

    这里的结果是eggsham也被替换成eggmd5m,我们想要一次性替换的话,一般会想到使用re.sub,然而使用正则多次替换字符串的效率很低。

    使用flashtext可以提高其替换效率:

    from flashtext import KeywordProcessor
    kp = KeywordProcessor()
    kws = [
        ['spam','eggs'],
        ['sha','md5'],
    ]
    for kw in kws:
        kp.add_keyword(*kw)
    
    s = "spamham sha"
    print kp.replace_keywords(s)
    # spamham md5
    
    # kp.non_word_boundaries默认值为[A-Za-z0-9_]
    # 设置non_word_boundaries
    kp.set_non_word_boundaries([])
    print kp.replace_keywords(s)
    # eggsham md5

    参数也可以从字典里获取,只不过注意要替换成的字符串是key:

    from flashtext import KeywordProcessor
    kp = KeywordProcessor()
    kws = {
        'eggs':['spam'],
        'md5':['sha'],
    }
    kp.add_keywords_from_dict(kws)
    
    s = "spamham sha"
    print kp.replace_keywords(s)
    # spamham md5
    
    # kp.non_word_boundaries默认值为[A-Za-z0-9_]
    # 设置non_word_boundaries
    kp.set_non_word_boundaries([])
    print kp.replace_keywords(s)
    # eggsham md5

    0x03 其他用法

    等pcat有空再更新

     
  • 相关阅读:
    36、【opencv入门】运动物体检测(2)
    二叉树数
    多边形的三角划分
    乘积最大
    加分二叉树
    c++ 装箱问题
    生物基元问题
    一般性的最少硬币组成问题
    打包
    挤牛奶
  • 原文地址:https://www.cnblogs.com/pcat/p/12830802.html
Copyright © 2011-2022 走看看