Доработки объектной модели в проекте WordRepresentations

Sep 09, 2017 14:20

1. В отдельный модуль CorpusReaders.py вынесено чтение строк из текстового корпуса. Таким образом, теперь классы в модуле DataVectorizers.py не содержат привязки ни к местоположению корпуса, ни к его формату. Я сделал две реализации "интерфейса" BaseCorpusReader для чтения из зазипованного текстового файла ZippedCorpusReader и из простого текстового файла TxtCorpusReader. Нужный экземпляр передается в метод vectorize_dataset.

Вариант с созданием через фабрику и тем более с использованием dependency injection пока считаю избыточным, создать читатель явным вызовом нужного конструктора и передать созданный экземпляр в один метод сейчас совершенно достаточным:

# Создаем читатель для корпуса
corpus_reader = CorpusReaders.ZippedCorpusReader('../data/corpus.txt.zip')
#corpus_reader = CorpusReaders.TxtCorpusReader(r'f:\Corpus\Raw\ru\tokenized_w2v.txt')

# Загружаем датасет
dataset_generator = BaseVectorizer.get_dataset_generator(REPRESENTATIONS)
X_data,y_data = dataset_generator.vectorize_dataset(corpus_reader=corpus_reader, ngram_order=NGRAM_ORDER, nb_samples=NB_SAMPLES)

2. Почистил сигнатуры методов с @classmethod, аргумент self заменил на cls, чтобы не резало глаз.

#corpus_reader, python, исходники

Previous post Next post
Up