0

我有一个像这样的大 txt 文件(150MG)

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

我想使用该文件训练 word2vec 模型模型,但它给了我 RAM 问题。我不知道如何将 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)
4

1 回答 1

2

您可以创建一个迭代器,一次读取一行文件,而不是一次读取内存中的所有内容。以下应该有效:

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)
于 2019-03-10T19:00:33.407 回答