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有空再更新

 
posted @ 2020-05-05 15:04  pcat  阅读(...)  评论(...编辑  收藏