Я пытаюсь исправить слова, проанализированные с помощью OCR, в документе, пропуская каждое слово через специальный процесс, который сложен по времени. Этот процесс - это моя настраиваемая бизнес-функция, которая просматривает различную семантику слова.
Я пытаюсь ускорить процесс, используя Swifter. У меня 16-ядерный процессор, и я не вижу, что все ядра используются, поскольку я вижу, что только 1 ядро потребляет 100%, а остальные 15 простаивают. Что мне не хватает?
Я пробовал разные варианты, как показано ниже, но безуспешно. Может ли кто-нибудь указать мне, чего мне здесь не хватает? df - это фрейм данных, каждая строка которого содержит слово. right_ocr_string - это бизнес-функция, которая принимает строку в качестве входных данных, проходит через настраиваемую модель ML и возвращает строку.
from pandarallel import pandarallel
pandarallel.initialize(nb_workers=multiprocessing.cpu_count())
df['Corrected'] = df.OCR.parallel_apply(correct_ocr_string)