在文字中查找单词

时间:2019-03-19 04:25:25

标签: python

我的文本中有几个不规则动词。我想在文本中找到它们并进行翻译,但是我不能,因为其中一些包含两个单词。而我用来找到它们的方法,就是只找到动词中的第一个单词。

text = “He gets. She gets away. She gets out. He gets past. He gets rid. He gives. She gives away. She gives up. He goes. He goes back. She goes on.”

vocabulary = {"gets":"получить","gets away":"уходить","gets out":"выбраться","gets past":"пройти мимо","gets rid":"избавиться","gives":"давать","gives away":"раздать","gives up":"сдаваться","goes":"идти","goes back":"возвращаться","goes on":"продолжать","She":"Она","He”:"Он"}

我想要得到这样的结果。

>>> Он получить. Она уходить. Она выбраться. Он пройти мимо. Он избавиться. Он давать. Она раздать. Она сдаваться. Он идти. Он возвращаться. Она продолжать.

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以将re.sub与交替模式一起使用,该交替模式是通过将最长的单词和最短的单词连接起来而形成的,并将匹配项替换为相应的dict值:

import re
re.sub(r'\b(?:%s)\b' % '|'.join(sorted(vocabulary, key=len, reverse=True)), lambda m: vocabulary[m.group(0)], text)

这将返回:

Он получить. Она уходить. Она выбраться. Он пройти мимо. Он избавиться. Он давать. Она раздать. Она сдаваться. Он идти. Он возвращаться. Она продолжать.