有没有更快的方法可以将单词替换为词根(全部在词典中)

时间:2019-09-16 12:46:02

标签: python multiprocessing python-multiprocessing

我尝试快速地将单词改成词根,我找到了一种方法,但是速度很慢,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]) 

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

1 个答案:

答案 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'

这比在字符串上进行一次传递要快得多。

Regex to split words in Python

相关问题