Как правильно хранить объекты doc и перезагружать их? - PullRequest
0 голосов
/ 11 июня 2018

У меня есть около 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'."

Как я могу сохранить изагрузить doc-объекты spacy без получения этой ошибкиСпасибо за вашу помощь!

1 Ответ

0 голосов
/ 11 июня 2018

Нашел решение:

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)
...