Итератор предложения для перехода на языковую модель Gensim - PullRequest
0 голосов
/ 06 июня 2019

Я относительно новичок в НЛП и пытаюсь создать свои собственные вложения слов, обученные в моем личном корпусе документов.

Я пытаюсь реализовать следующий код для создания своих собственных настроек:

model = gensim.models.Word2Vec(sentences)

с предложениями, являющимися списком предложений. Поскольку я не могу пропустить тысячи и тысячи предложений, мне нужен итератор

# with mini batch_dir a directory with the text files
# MySentences is a class iterating over sentences.
sentences = MySentences(minibatch_dir) # a memory-friendly iterator

Я нашел это решение от создателя gensim:

class MySentences(object):
    def __init__(self, dirname):
        self.dirname = dirname

    def __iter__(self):
        for fname in os.listdir(self.dirname):
            for line in open(os.path.join(self.dirname, fname)):
                yield line.split()

Это не работает для меня. Как я могу создать итератор, если я знаю, как получить список предложений из каждого документа?

И второй очень связанный вопрос: Если я стремлюсь сравнивать сходство документов в определенном корпусе, всегда лучше создавать с нуля вложения слов со всеми документами этого конкретного корпуса, чем использовать GloVec или word2vec? Количество документов составляет около 40000.

ура

Больше предварительно

...