我尝试快速将单词更改为词根,我找到了一种方法,但它很慢,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 中拆分单词