1 python topic-modeling doc2vec
在 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'
Run Code Online (Sandbox Code Playgroud)
我安装了以下软件包:
我使用下面的代码开始训练:
model = Top2Vec(documents=data, speed="learn", workers=12)
Run Code Online (Sandbox Code Playgroud)
通过模型训练,它已经走到了这一步:
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
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我不熟悉Top2Vec你正在使用的课程。
但是,如果为使用某些属性/方法而编写的代码gensim-3.8.3尚未针对最近发布的 进行调整gensim-4.0.0,则可能会出现该错误,最近发布的 已删除并重命名了一些函数以保持一致性。
具体来说,该vectors_docs属性已被删除。(此外,该vectors_docs_norms属性在未执行的分支中提到了上面的几行。)
从 Gensim 3.x 迁移到 4 wiki 页面中介绍了调用代码所需的小更改,我刚刚更新了该页面以确保其vectors_docs具体提及。
如果您自己对代码进行此更改和任何其他更改感到不舒服Top2Vec,您可能只想将问题报告给其作者/维护者,并且作为临时解决方法,现在显式安装旧版 Gensim。使用通常的pip基于安装,您可以使用以下命令指定旧版本:
pip install gensim==3.8.3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7477 次 |
| 最近记录: |