用Python解析文本并映射到字典单词
我正在为我的网站建立一个常用词汇的字典。简单来说,我会从我的数据库中提取一段文字,这段文字很可能会包含在我之前提到的字典中的词汇。我想要找到一种简单又快速的方法,来分析这段文字,并将可能出现的字典词汇与字典中的条目对应起来。
有没有什么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
这个单词边界就无法正确匹配了。