@Saharman

Как оптимизировать построение корпуса gensim?

Добрый день!

Мне необходимо построить корпус из текстового файла, в котором 41635827 и в среднем в каждой строке 5 слов. Слова уже разделены пробелами, для того чтобы быстрее их обработать. Однако, вычисления происходят очень долго. Я посчитал, для этой обработки мне понадобится примерно 361 час. Хотелось бы узнать, как можно ускорить этот код:

class BoWCorpus(object):
    def __init__(self, path, dictionary):
        self.filepath = path
        self.dictionary = dictionary
    def __iter__(self):
        global mydict  # OPTIONAL, only if updating the source dictionary.
        for line in smart_open(self.filepath, encoding='latin'):
            tokenized_list = line.strip().split(' ')
            bow = self.dictionary.doc2bow(tokenized_list, allow_update=True)
            mydict.merge_with(self.dictionary)
            yield bow

mydict = corpora.Dictionary()
bow_corpus = BoWCorpus('sen_list_alll.txt', dictionary=mydict)
for line in bow_corpus:
    print(line)
print('start save corp')
corpora.MmCorpus.serialize('bow_corpus_all_new2.mm', bow_corpus)
print('corp saved')
mydict.save('mydict_all_new12.dict')
print('dict saved')
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
совет, который уже дан - ничего не стоит
проверьте, что у вас создан словарь,

ну и можно попробовать все запихнуть в память, а не построчно, 48 млн по 5 слов явно не по килобайту завесит а сильно меньше
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы