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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM