-1
我有一本作者詞典,每個作者是一本書的字典,每本書都是一個單詞列表。嵌套字典和多處理
我需要一個多處理場景,其中每個進程都處理某個作者的某本書。
我嘗試使用manager.dict()
和manager.list()
來實例化字典和列表,但我的字典仍沒有得到填充。
這是主要字典對象的聲明方式。
import multiprocessing
from multiprocessing import Manager
manager = Manager()
allWords = manager.dict()
然後有一個功能read_author
它執行任務distribtion
def read_author(author):
global allWords
allWords[author] = manager.dict() # each author is a dictionary of books
jobs = []
for f in os.listdir(auth_dir):
p = multiprocessing.Process(target=read_doc, args=(author, auth_dir, f,))
jobs.append(p)
p.start()
return jobs
這是使我處理的功能。
def read_doc(author_name, author_dir, doc_name):
global allWords
allWords[author_name][doc_name] = manager.list()
# document is loaded in the variable doc and it has a set of words
for word in doc.words:
allWords[author_name][doc_name].append(word)
文檔從項目Gutenberg txt文件和上述doc
目的是使用spacy
構造的語法樹。
read_doc
實際上涉及到文件樹的解析和提取以及bigrams的計數。爲了簡潔起見,我在代碼示例中跳過了這些部分,但這是計數任務,我想分割多個CPU核心,這就是爲什麼我使用多處理。
你的代碼在哪裏? –
嘗試編寫一個顯示您正在運行的問題的[MCVE] – pvg
@PedroLobito我添加了一些代碼。你能再看看嗎? – Vahid