Python 与gensim.models.Phrases有关的问题

Python 与gensim.models.Phrases有关的问题,python,nlp,gensim,Python,Nlp,Gensim,现在是两种方法中的一种: (一) 上面的运行非常好,没有任何警告 (二) 生成警告: bigram_transformer = Phrases(SentenceClass(data_dir_path), min_count=1) model = Word2Vec(bigram_transformer[SentenceClass(data_dir_path)], size=100, window=5, min_count=1, workers=4) 现在我确实理解了生成器和迭代器之间的区别,我正

现在是两种方法中的一种:
(一)

上面的运行非常好,没有任何警告

(二)

生成警告:

bigram_transformer = Phrases(SentenceClass(data_dir_path), min_count=1)
model = Word2Vec(bigram_transformer[SentenceClass(data_dir_path)], size=100, window=5, min_count=1, workers=4)
现在我确实理解了生成器和迭代器之间的区别,我正在传递迭代器,通过多次打印以下命令可以验证这一点:

WARNING:gensim.models.word2vec:train() called with an empty iterator (if not intended, be sure to provide a corpus that offers restartable iteration = an iterable).
WARNING:gensim.models.word2vec:supplied example count (0) did not equal expected count (30)

它打印的东西很好,但我仍然不确定为什么第二种情况下出现“空迭代器”的警告,我在这里遗漏了什么吗

我意识到短语和短语都只是一个生成器,下面的课程是必需的

print(list(SentenceClass(data_dir_path)))
print(list(SentenceClass(data_dir_path)))
print(list(bigram_transformer[SentenceClass(data_dir_path)]))
print(list(bigram_transformer[SentenceClass(data_dir_path)]))

我意识到短语和短语都只是发电机,下面的课程是必需的

print(list(SentenceClass(data_dir_path)))
print(list(SentenceClass(data_dir_path)))
print(list(bigram_transformer[SentenceClass(data_dir_path)]))
print(list(bigram_transformer[SentenceClass(data_dir_path)]))
print(list(SentenceClass(data_dir_path)))
print(list(SentenceClass(data_dir_path)))
print(list(bigram_transformer[SentenceClass(data_dir_path)]))
print(list(bigram_transformer[SentenceClass(data_dir_path)]))
from gensim.models import Word2Vec, Phrases, phrases

class PhraseItertor(object):

    def __init__(self, my_phraser, data):
        self.my_phraser, self.data = my_phraser, data

    def __iter__(self):
        return self.my_phraser[self.data]

my_sentences = SentenceClass(data_dir_path)
my_phrases = Phrases(my_sentences, min_count=1)
bigram = phrases.Phraser(my_phrases)
my_corpus = PhraseItertor(bigram,my_sentences)

model = Word2Vec(my_corpus, size=100, window=5, min_count=1, workers=4)