def make_replacement(match):
original = match.group(0)
找到匹配的关键词并返回对应的替换词
for old_word, new_word in keyword_map.items():
if not case_sensitive:
if original.lower() == old_word.lower():
return new_word
else:
if original == old_word:
return new_word
return original 理论上不会执行到这里
构建正则表达式:匹配所有关键词(作为完整单词)
escaped_keywords = [re.escape(k) for k in keyword_map.keys()]
pattern = r'\b(' + '|'.join(escaped_keywords) + r')\b'
flags = 0 if case_sensitive else re.IGNORECASE
result = re.sub(pattern, make_replacement, text, flags=flags)
return result
使用示例
if __name__ == __main__:
原始文本(例如网页内容或文章)
content =
欢迎来到我们的网站。我们提供最好的AI工具和搜索引擎优化服务。
如果你对搜索引擎感兴趣,可以学习更多关于搜索引擎的知识。
AI 工具能帮助你提升工作效率。
1、支持 HTML 标签保护
避免替换 `<script`、`<style` 中的内容,或仅替换可见文本。可结合 `BeautifulSoup` 实现。
2、从文件读取关键词映射
python
import json
with open('keywords.json', 'r', encoding='utf-8') as f:
keyword_map = json.load(f)
3、批量处理多个文件
python
import os
for filename in os.listdir(articles/):
with open(farticles/{filename}, 'r') as f:
text = f.read()
replaced = replace_keywords(text, keyword_map)
with open(foutput/{filename}, 'w') as f:
f.write(replaced)