0 svar
123 visningar
ErikL är nöjd med hjälpen
ErikL 2
Postad: 12 sep 2022 02:50

Word2vec och analogier

Givet en lista med analogier (varje rad har 4 analogier) ska jag skriva kod som iterera över listan och hittar den mest troliga 4:e ordet till analogin (motsvarande 4:e kolumnen i listan) , samt hur träffsäker modellen är relativt till den givna listan.

Då min kunskap i python är väldigt grundläggande sitter jag fast.

Det jag tänker är att man kan börja med att använda w2v_model.most_similar(pos, neg, n) för att hitta den fjärde analogin, stoppa in dessa i en lista och sedan jämföra den listan mot 4:e kolumnen i den givna listan.

Jag har lyckats skriva kod för att hitta 4:e ordet i analogin

import gensim

w2v_model = gensim.models.KeyedVectors.load_word2vec_format('data/ch4/wikipedia-sv.bin', 
                                                            binary=True)
pos = ["kvinna", "kung"]
neg = ["man"]
def complete(str_a, str_b, str_c):
    analogy_word = w2v_model.most_similar(pos, neg, 1)
    return analogy_word
fourth_word = complete("man", "kung", "kvinna")
print("Det fjärde ordet i analogin är:", fourth_word)

Output:

Det fjärde ordet i analogin är: [('drottning', 0.7310913801193237)]

Jag har nu däremot väldigt svårt att konvertera detta till en iterabel process som också sparar datan, eller ens om metoden kommer fungera..

Tack på förhand. Jag hoppas det går att förstå vad jag försöker förmedla..

Svara Avbryt
Close