Встраивание документов с помощью Doc2Ve c и TaggedDocument, и мне нужны 10 наиболее похожих слов для каждой категории - PullRequest
0 голосов
/ 29 мая 2020

Я написал приведенный ниже код, это проблема встраивания документа с 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)



...