在ubuntu上运行gensim Doc2Vec
Doc2Vec用错误拒绝我的输入
AttributeError:'list‘对象没有属性’word‘
import gensim from gensim.models
import doc2vec as dtv
from nltk.corpus import brown
documents = brown.tagged_sents()
d2vmodel = > dtv.Doc2Vec(documents, size=100, window=1, min_count=1, workers=1)我已经尝试过从this SO question和许多具有相同结果的变体
documents = [brown.tagged_sents()}添加哈希函数
如果语料库是我可以利用的.txt文件
documents=TaggedLineDocument(documents)但这往往是不可能的。
发布于 2018-06-22 18:49:34
Gensim的Doc2Vec要求每个文档的形式是一个具有words属性的对象,该属性是一个字符串标记列表,一个tags属性是一个标记列表。这些标记通常是字符串,但是具有大型数据集的专家用户可以使用简单的ints(从0开始)来节省一些内存。
包含的类TaggedDocument具有正确的“形状”,并在大多数Gensim文档/教程示例中使用--但考虑到words和tags属性的“鸭子类型”,任何具有words和tags属性的对象都可以。
但一张简单的单子是不会的。
如果我理解正确的话,brown.tagged_sents()将返回元组列表(单词,部分词性标记),这甚至不是作为words工作的单词列表标记,也不提供任何Doc2Vec需要的完整文档标记,作为接受训练的文档向量的键。
另外:您不太可能想要使用min_count=1。丢弃非常低频的词通常会使保留的Word2Vec/Doc2Vec矢量更好。
https://stackoverflow.com/questions/50992153
复制相似问题