Что лучше? Заполнить структуру данных из байтового файла или текстового файла? - PullRequest
0 голосов
/ 09 марта 2020

Итак, я работаю со структурой данных Tr ie для проверки орфографии.

Для этого я скачал много записей (корпус) и, после моделирования структуры данных, я загрузил его в этот объект "Tr ie".

import sys, pickle

trie = Trie()
for word in words:
    trie.insert(word)

(tr ie похож на этот: https://towardsdatascience.com/implementing-a-trie-data-structure-in-python-in-less-than-100-lines-of-code-a877ea23c1a1)

Пока все хорошо.

Однако, поскольку я собираюсь использовать его в Python пакете, я хочу иметь возможность развернуть этот Tr ie. Я думал о том, чтобы выбрать объект и затем загрузить его во время создания экземпляра в мой класс "SpellChecker".

sys.setrecursionlimit(1000000)
pickle.dump(trie, open('word_trie.p','wb'))

Однако это не работает, поскольку это происходит:

class SimpleSpellChecker:
   def __init__(self):
      words = pickle.load(open('word_trie.p','rb'))

AttributeError: Не удается получить атрибут 'Tr ie' для

Проблема заключается в том, что интерпретатор python не может загрузить 'Tr ie', даже если он импортирован. В сообщении, которое я прочитал, мне нужно каким-то образом загрузить класс Tr ie внутри моего маринованного файла, но я подумал, что он становится слишком необычным.

Дело в том, что я боюсь иметь чтение длинного текстового файла (30 тыс. + строк) и обработка при каждом создании объекта. Я подумал, что будет проще просто загрузить уже обработанный байтовоподобный файл.

Это самый эффективный способ работы с такой структурой данных? Какой будет лучший подход?

...