Итак, я работаю со структурой данных 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 тыс. + строк) и обработка при каждом создании объекта. Я подумал, что будет проще просто загрузить уже обработанный байтовоподобный файл.
Это самый эффективный способ работы с такой структурой данных? Какой будет лучший подход?