我試圖讓doc2vec功能在Python 3 工作,我有以下代碼:在Gensim.Doc2Vec
tekstdata = [[ index, str(row["StatementOfTargetFiguresAndPoliciesForTheUnderrepresentedGender"])] for index, row in data.iterrows()]
def prep (x):
low = x.lower()
return word_tokenize(low)
def cleanMuch(data, clean):
output = []
for x, y in data:
z = clean(y)
output.append([str(x), z])
return output
tekstdata = cleanMuch(tekstdata, prep)
def tagdocs(docs):
output = []
for x,y in docs:
output.append(gensim.models.doc2vec.TaggedDocument(y, x))
return output
tekstdata = tagdocs(tekstdata)
print(tekstdata[100])
vectorModel = gensim.models.doc2vec.Doc2Vec(tekstdata, size = 100, window = 4,min_count = 3, iter = 2)
ranks = []
second_ranks = []
for x, y in tekstdata:
print (x)
print (y)
inferred_vector = vectorModel.infer_vector(y)
sims = vectorModel.docvecs.most_similar([inferred_vector], topn=1001, restrict_vocab = None)
rank = [docid for docid, sim in sims].index(y)
ranks.append(rank)
所有作品,只要我能理解,直到排名功能。 我得到的錯誤是我的列表中沒有零例如我輸入的文件中沒有10個列表:
File "C:/Users/Niels Helsø/Documents/github/Speciale/Test/Data prep.py", line 59, in <module>
rank = [docid for docid, sim in sims].index(y)
ValueError: '10' is not in list
在我看來,它是類似的功能,不工作。 該模型訓練我的數據(1000個文檔)並構建一個被標記的詞彙。 我主要使用了該文檔是這樣的: Gensim dokumentation Torturial
我希望有人可以提供幫助。如果需要其他信息,請告訴我。 最好 尼爾斯
謝謝gojomo。你提示工作。最好 –