Я написал приведенный ниже код, это проблема встраивания документа с Doc2Ve c, и я использовал TaggedDocument, но теперь проблема в том, что я хочу 10 наиболее похожих слов для каждой категории? и я не знаю, как решить, может ли кто-нибудь мне помочь?
! pip install wget
import wget
url = 'https://raw.githubusercontent.com/dirkhovy/NLPclass/master/data/reviews.full.tsv.zip'
wget.download(url, 'reviews.full.tsv.zip')
from zipfile import ZipFile
with ZipFile('reviews.full.tsv.zip', 'r') as zf:
zf.extractall()
import pandas as pd
df = pd.read_csv('reviews.full.tsv', sep='\t', nrows=100000) # nrows , max amount of rows
documents = df.text.values.tolist()
print(documents[:100])
from gensim.models import Doc2Vec
from gensim.models.doc2vec import FAST_VERSION
from gensim.models.doc2vec import TaggedDocument
corpus = []
#The iterrows() function is used to iterate over DataFrame rows as (index, Series) pairs.
#Iterates over the DataFrame columns, returning a tuple with the column name and the content as a Series.
for row in df.iterrows():
label = row[1].score
text = row[1].text
corpus.append(TaggedDocument(words=text.split(), tags=[str(label)]))
print('done')
d2v_model = Doc2Vec(vector_size=100,
window=15,
hs=0,
sample=0.000001,
negative=5,
min_count=100,
workers=-1,
epochs=500,
dm=0,
dbow_words=1)
d2v_model.build_vocab(corpus)
d2v_model.train(corpus, total_examples=d2v_model.corpus_count, epochs=d2v_model.epochs)
d2v_model.docvecs.doctags
target_doc = '1'
similar_docs = d2v_model.docvecs.most_similar(target_doc, topn=5)
print(similar_docs)