我尝试快速地将单词改成词根,我找到了一种方法,但是速度很慢,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])
我有成千上万的文本行,并尝试使其比上面更快
答案 0 :(得分:1)
匹配每个单词并使用替换功能来查找其替换:
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'
这比在字符串上进行一次传递要快得多。