我正在使用Python 3.5.2
我有两个清单
所以,我必须循环750,000个句子并执行大约20,000次替换,但是只有我的话实际上是"单词"并且不是更大字符串的一部分.
我是通过预先编译我的文字来做到这一点的,这样它们就被\b
元字符所包围
compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words]
Run Code Online (Sandbox Code Playgroud)
然后我循环我的"句子"
import re
for sentence in sentences:
for word in compiled_words:
sentence = re.sub(word, "", sentence)
# put sentence into a growing list
Run Code Online (Sandbox Code Playgroud)
这个嵌套循环每秒处理大约50个句子,这很好,但是处理我的所有句子仍需要几个小时.
有没有办法使用该str.replace
方法(我认为更快),但仍然要求替换只发生在字边界?
或者,有没有办法加快re.sub
方法?re.sub
如果我的单词的长度大于句子的长度,我已经通过跳过来略微提高了速度,但这并没有太大的改进.
谢谢你的任何建议.