用Python解析文本并映射到字典单词

3 投票
1 回答
3038 浏览
提问于 2025-04-17 03:06

我正在为我的网站建立一个常用词汇的字典。简单来说,我会从我的数据库中提取一段文字,这段文字很可能会包含在我之前提到的字典中的词汇。我想要找到一种简单又快速的方法,来分析这段文字,并将可能出现的字典词汇与字典中的条目对应起来。

有没有什么Python模块可以帮助我完成这个任务?我不需要太复杂的东西,但它必须运行得快。

谢谢

1 个回答

2

像这样吗?

>>> s = "abc def, abcdef"
>>> w = {"abc": "xxx", "def": "yyy"}
>>> def replace(text, words):
...     regex = r"\b(?:" + "|".join(re.escape(word) for word in words) + r")\b"
...     reobj = re.compile(regex, re.I)
...     return reobj.sub(lambda x:words[x.group(0)], text)
...
>>> replace(s, w)
'xxx yyy, abcdef'

请注意,这种方法只有在字典的所有键都以字母(或者数字或下划线)开头和结尾时才可靠。如果不是这样,\b 这个单词边界就无法正确匹配了。

撰写回答