Je suis en train d'obtenir la fonction de doc2vec travailler en python 3. -je avoir le code suivant:application de la fonction similaire dans 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)
Tout fonctionne pour autant que je peux comprendre jusqu'à ce que le rang fonction. L'erreur que je reçois est qu'il n'y a pas de zéro dans ma liste, par exemple. les documents que je suis en train de mettre en n'a pas 10 dans la liste:
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
Il me semble que c'est la fonction similaire qui ne fonctionne pas. le modèle s'entraîne sur mes données (1000 documents) et construit un vocab qui est étiqueté. La documentation que j'ai principalement utilisé est le suivant: Gensim dokumentation Torturial
J'espère que quelqu'un peut aider. Si des informations supplémentaires sont nécessaires s'il vous plaît faites le moi savoir. mieux Niels
Merci gojomo. Vous avez travaillé. Meilleur –