Я написал парсер, который разбирает предложения в большом корпусе (900 000 абзацев) в деревья разбора избирательных округов. Парсер работает путем преобразования каждого абзаца в список деревьев разбора групп. Вот общая идея кода:
paragraphs = load_dataset()
trees = list(map(parse_trees, paragraphs))
Я попытался использовать Python multiprocessing
и использовал функцию pool
:
paragraphs = load_dataset()
p = multiprocessing.Pool(4)
trees = p.map(parse_trees, paragraphs)
Что я заметил, так это то, что использование multiprocess
делает задачу медленнее, чем ее отсутствие.
После дальнейших исследований я понял, что существует различие между параллелизмом задач и параллелизмом данных, и я думаю, что в моей ситуации параллелизм данных более подходит.
Однако я не могу найти в Python никаких методов для этого, и мне было интересно, может ли кто-нибудь указать мне правильное направление.