обучить Gensim word2vec, используя большой текстовый файл - PullRequest
0 голосов
/ 10 марта 2019

У меня есть большой текстовый файл (150MG), как это

'intrepid', 'bumbling', 'duo', 'deliver', 'good', 'one', 'better', 'offering', 'considerable', 'cv', 'freshly', 'qualified', 'private', ...

Я хочу обучить модель модели word2vec, используя этот файл, но у меня проблема с оперативной памятью. Я не знаю, как передать txt файл в модель word2vec. Это мой код. Я знаю, что у моего кода есть проблемы, но я не знаю, где это так.

import gensim 


f = open('your_file1.txt')
for line in f:
    b=line
   model = gensim.models.Word2Vec([b],min_count=1,size=32)

w1 = "bad"
model.wv.most_similar (positive=w1)

1 Ответ

1 голос
/ 10 марта 2019

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

class SentenceIterator: 
    def __init__(self, filepath): 
        self.filepath = filepath 

    def __iter__(self): 
        for line in open(self.filepath): 
            yield line.split() 

sentences = SentenceIterator('datadir/textfile.txt') 
model = Word2Vec(sentences)
...