¿Cómo obtener antónimos a través de word2vec?

Actualmente estoy trabajando en el modelo word2vec usando gensim en Python, y quiero escribir una función que pueda ayudarme a encontrar los antónimos y sinónimos de una palabra determinada. Por ejemplo: antonimo (“triste”) = “feliz” sinónimo (“molesto”) = “enfurecido”

¿Hay una manera de hacer eso en word2vec?

En word2vec puedes encontrar analogías, de la siguiente manera.

model = gensim.models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True) model.most_similar(positive=['good', 'sad'], negative=['bad']) [(u'wonderful', 0.6414928436279297), (u'happy', 0.6154338121414185), (u'great', 0.5803680419921875), (u'nice', 0.5683973431587219), (u'saddening', 0.5588893294334412), (u'bittersweet', 0.5544661283493042), (u'glad', 0.5512036681175232), (u'fantastic', 0.5471092462539673), (u'proud', 0.530515193939209), (u'saddened', 0.5293528437614441)] 

Ahora, utilizando algunos antónimos estándar como (bueno, malo), (rico, pobre), encuentre múltiples listas de este tipo de los antónimos más cercanos. Después de eso puedes usar el promedio de vectores de esta lista.