我有大约90个文件,我已经用spacy处理过。
import spacy, os
nlp = spacy.load('de')
index = 1
for document in doc_collection:
doc = nlp(document)
doc.to_disk('doc_folder/' + str(index))
似乎工作正常。之后,我想稍后重新加载doc文件作为生成器对象。
def get_spacy_doc_list():
for file in os.listdir(directory):
filename = os.fsdecode(file)
yield spacy.tokens.Doc(spacy.vocab.Vocab()).from_disk('doc_folder/' + filename)
for doc in get_spacy_doc_list():
for token in doc:
print(token.lemma_)
如果我试试这个,那么我会收到以下错误:
KeyError: "[E018] Can't retrieve string for hash '12397158900972795331'."
如何在不收到此错误的情况下存储和加载spacy的doc对象? 谢谢你的帮助!
答案 0 :(得分:3)
找到解决方案:
yield spacy.tokens.Doc(spacy.vocab.Vocab()).from_disk('doc_folder/' + filename)
Vocab() - 实例应该是你的nlp中的特定实例。
yield spacy.tokens.Doc(nlp.vocab).from_disk('doc_folder/' + filename)