Top2Vec 错误 - 'KeyedVectors' 对象没有属性 'vectors_docs'

Top2Vec error - 'KeyedVectors' object has no attribute 'vectors_docs'

在 Python 3.9.2 中训练 Top2Vec 模型时出现以下错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-17-edc5d3cec713> in <module>
----> 1 model = Top2Vec(documents=data, speed="learn", workers=12)

~/opt/anaconda3/envs/py39/lib/python3.9/site-packages/top2vec/Top2Vec.py in __init__(self, documents, min_count, embedding_model, embedding_model_path, speed, use_corpus_file, document_ids, keep_documents, workers, tokenizer, use_embedding_model_tokenizer, umap_args, hdbscan_args, verbose)
    353                          'metric': 'cosine'}
    354 
--> 355         umap_model = umap.UMAP(**umap_args).fit(self._get_document_vectors(norm=False))
    356 
    357         # find dense areas of document vectors

~/opt/anaconda3/envs/py39/lib/python3.9/site-packages/top2vec/Top2Vec.py in _get_document_vectors(self, norm)
    545                 return self.model.docvecs.vectors_docs_norm
    546             else:
--> 547                 return self.model.docvecs.vectors_docs
    548         else:
    549             return self.document_vectors

AttributeError: 'KeyedVectors' object has no attribute 'vectors_docs'

我安装了以下软件包:

我将使用以下代码开始训练:

model = Top2Vec(documents=data, speed="learn", workers=12)

它通过模型训练走到了这一步:

2021-03-31 16:36:03,014 - top2vec - INFO - Pre-processing documents for training
2021-03-31 16:36:25,865 - top2vec - INFO - Creating joint document/word embedding
2021-03-31 17:02:53,874 - top2vec - INFO - Creating lower dimension embedding of documents

有什么想法吗?

我不熟悉您使用的 Top2Vec class。

但是,如果为使用 gensim-3.8.3 中的某些 properties/methods 而编写的代码未针对最近发布的 gensim-4.0.0 进行调整,则该错误将是预期的并重命名了一些功能以保持一致性。

具体来说,vectors_docs 属性 已被删除。 (此外,vectors_docs_norms 属性 在未执行的分支中提到了上面的几行。)

Migrating from Gensim 3.x to 4 wiki page 中涵盖了调用代码中所需的小改动,我刚刚对其进行了更新以确保它特别提到了 vectors_docs

如果您觉得自己对 Top2Vec 代码进行此更改和任何其他更改感到不舒服,您可能只想将问题报告给 author/maintainer,作为临时解决方法,现在明确安装旧的 Gensim。对于通常的基于 pip 的安装,您可以指定一个旧版本:

pip install gensim==3.8.3