Хотел задать вопрос в качестве другого расширения к этому вопросу
Моя цель:
Учитывая текстовый файл, в котором есть все возможные символы, включительноИз всех знаков препинания, специальных символов и символов мне просто нужно извлечь из него строчные буквенные фразы.
Сейчас я делаю следующее:
with open('lmdata.txt','a') as ink:
for element in json_str['fragments']:
ink.write("%s \n" %(re.sub(r"[^a-z ]","",element['lines'][0].lower())))
В приведенном выше разделе кода читается элемент json, затем он принимает только буквенные фразы и затем добавляет текстовый файл.
Теперь проблема заключается в том, что мне нужно запустить это для большого объема данных.Для 1GB
текстового файла, который содержит приблизительно 15386594
строк текста, требуется 94.47970027092379
секунд, когда я регистрируюсь с timeit
.
Теперь, учитывая, что мне нужно обработать 15GB
необработанных текстовых файлов, я предполагаю, что это займет 15x
времени, чтобы завершить это.
Итак, вопрос в том, как сделать это быстрее(если возможно)
EDIT 1
Согласно предложению @JanChristophTerasa, попытался скомпилировать regex
до вызова в каждой итерации и запустить еговремя выполнения уменьшилось до 81.98409761895891
секунд.
r = re.compile(r"[^a-z ]")
затем при записи:
ink.write("%s \n" %(r.sub("",element['lines'][0].lower())))