Python gensim docvecs.doctags索引不正确

Python gensim docvecs.doctags索引不正确,python,gensim,doc2vec,Python,Gensim,Doc2vec,我正在为一个机器学习研究项目处理一个大型Yelp评论数据集。然而,到目前为止,Gensim工作得很好,当我使用doc2vec.build_vocab()在我拥有的超过5000000个文档上构建词汇表时……索引似乎都被收集到一个64键的字典中(当然不是这样) 下面是我为标记文档、构建词汇表和培训模型而编写的脚本 import os import time import pandas as pd import numpy as np from collections import namedtupl

我正在为一个机器学习研究项目处理一个大型Yelp评论数据集。然而,到目前为止,Gensim工作得很好,当我使用
doc2vec.build_vocab()
在我拥有的超过5000000个文档上构建词汇表时……索引似乎都被收集到一个64键的字典中(当然不是这样)

下面是我为标记文档、构建词汇表和培训模型而编写的脚本

import os
import time
import pandas as pd
import numpy as np
from collections import namedtuple
from gensim.models.doc2vec import Doc2Vec
from keras.preprocessing.text import text_to_word_sequence

# keras helper function
def text2_word_seq(review):
  return text_to_word_sequence(review, 
       filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n', 
       lower=True, split=" ")

# instantiate the model
d2v = Doc2Vec(vector_size=300, 
  window=6, min_count=5, workers=os.cpu_count()-1)

chunksize = 5000
train_data = pd.read_json("dataset/review.json",
    chunksize=chunksize,
    lines=True)

Review = namedtuple('Review', 'words tags')
documents = list()
for i, data in enumerate(train_data):
    print("Looked at %d chunks, %d documents" % 
       (i, i*chunksize), end='\r', flush=True)
    users = data.user_id.values
    for j, review in enumerate(data.text):
        documents.append(Review(text2_word_seq(review), users[j]))

# build the vocabulary 
d2v.build_vocab(documents.__iter__(), update=False,
   progress_per=100000, keep_raw_vocab=False, trim_rule=None)

# train the model
d2v.train(documents, total_examples=len(documents), epochs=10)
d2v.save('d2v-model-v001')
六十四


我做错了什么

文本示例的
标记
属性应该是标记列表。(它可以是仅包含单个标记的列表,但必须是列表。)


如果您改为提供一个字符串,那么对于需要lis的代码来说,它看起来就像一个由一个字符串组成的列表。因此,您将只训练少量的单字符标记,在您提供的任何
标记
字符串中,每个唯一字符显示一个

多么令人难以置信的错误。谢谢你的回答!
>>> len(x.docvecs.doctags)
>>> x.docvecs.doctags

{'Y': Doctag(offset=27, word_count=195151634, doc_count=1727798), 
'j': Doctag(offset=47, word_count=198241878, doc_count=1739169), 
'4': Doctag(offset=17, word_count=195902251, doc_count=1728095), 
'J': Doctag(offset=50, word_count=197884244, doc_count=1741666), 
'W': Doctag(offset=41, word_count=198804200, doc_count=1741269), 
'O': Doctag(offset=23, word_count=196212468, doc_count=1728735), 
'o': Doctag(offset=9, word_count=194177928, doc_count=1709768), 
'n': Doctag(offset=3, word_count=193799059, doc_count=1714620), 
'3': Doctag(offset=34, word_count=197320036, doc_count=1725467), 
'F': Doctag(offset=10, word_count=195614702, doc_count=1729058) ...