Добрый день!
Мне необходимо построить корпус из текстового файла, в котором 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')