假期就要好好利用,不然怎么卷死同龄人,今天给大家分享替换字符串。
FlashText 算法是由 Vikash Singh 于2017年发表的大规模关键词替换算法,这个算法的时间复杂度仅由文本长度(N)决定,算法时间复杂度为O(N)
而对于正则表达式的替换,算法时间复杂度还需要考虑被替换的关键词数量(M),因此时间复杂度为O(MxN)
简而言之,基于FlashText算法的字符串替换比正则表达式替换快M倍以上,这个M是需要替换的关键词数量,关键词越多,FlashText算法的优势就越明显
下面就给大家介绍如何在 Python 中基于 flashtext 模块使用 FlashText 算法进行字符串查找和替换。
搞错了,重来。
1.准备
请选择以下任一种方式输入命令安装依赖:
- Windows 环境 打开 Cmd (开始-运行-CMD)。
- MacOS 环境 打开 Terminal (command+空格输入Terminal)。
- 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install flashtext
2.基本使用
提取关键词
一个最基本的提取关键词的例子如下:
Python学习交流Q群:906715085###
from flashtext import KeywordProcessor
#1. 初始化关键字处理器
keyword_processor = KeywordProcessor()
#2. 添加关键词
keyword_processor.add_keyword('Big Apple', 'New York')
keyword_processor.add_keyword('Bay Area')
#3. 处理目标句子并提取相应关键词
keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')
#4. 结果
print(keywords_found)
#['New York', 'Bay Area']
其中 add_keyword 的第一个参数代表需要被查找的关键词,第二个参数是给这个关键词一个别名,如果找到了则以别名显示。
替换关键词
如果你想要替换关键词,只需要调用处理器的 replace_keywords 函数:
from flashtext import KeywordProcessor
#1. 初始化关键字处理器
keyword_processor = KeywordProcessor()
#2. 添加关键词
keyword_processor.add_keyword('New Delhi', 'NCR region')
#3. 替换关键词
new_sentence = keyword_processor.replace_keywords