有没有更快的方法来替换单词的词根(都在字典中)



我尝试快速将单词更改为词根,我找到了一种方法,但它很慢,zargan是词根和单词的字典

for a in range(1,500): 
for j in data.txt[a].split():
pattern = r'b'+j+r'b' 
data.TXT[a] = re.sub(pattern,str(zargan.get(j,j)),data.TXT[a]) 

我有数千行文本,并尝试使其比上面更快

匹配每个单词并使用替换函数查找其替换:

pattern = r'w*' 
data.TXT[a] = re.sub(pattern, lambda m: zargan.get(m.group(0), m.group(0))), data.TXT[a])

这方面的一个例子是

>>> import re
>>> x = "This is an example"
>>> zargan = {'This':'Not', 'is':'here', 'an':'again', 'example':'tomorrow'}
>>> pattern = r'w*' 
>>> re.findall(pattern, x)
['This', '', 'is', '', 'an', '', 'example', '']
>>> y = re.sub(pattern, lambda m: zargan.get(m.group(0), m.group(0)), x)
>>> y
'Not here again tomorrow'

这要快得多,因为它对字符串进行单次传递。

还有正则表达式在 Python 中拆分单词

相关内容

  • 没有找到相关文章

最新更新