尝试在 gensim 中创建 doc2vec 模型时出现类型错误

Type error when trying to create a doc2vec model in gensim

我正在尝试使用 gensim 训练 Doc2Vec 模型。

我使用的数据集是 20 个新闻组数据集 [1],它包含在 sklearn 的数据集模块中。

我已经使用 gensim 文档中的示例创建了模型。

docs = newsgroups_train['data']
enumerated_docs = enumerate(docs)
documnets= [TaggedDocument(doc.split(),i) for i, doc in enumerated_docs]
model = Doc2Vec(documnets, vector_size=20, window=2, min_count=30, workers=4)

我检查了每一行代码,所有代码似乎都在运行到初始化模型的那一行。

我收到类型错误: TypeError: 'int' object is not iterable

[1] https://scikit-learn.org/0.19/datasets/twenty_newsgroups.html

Enumerate returns 一个整数计数器和列表中的值。因此,在您的第三行代码中,i 是一个整数。但是,TaggedDocument 函数的第二个参数应该是可迭代的。