如何通过word2vec获取反义词?

时间:2015-08-04 16:42:18

标签: python gensim word2vec

我目前正在使用Python中的gensim处理word2vec模型,并希望编写一个可以帮助我找到给定单词的反义词和同义词的函数。 例如: 反义词(“悲伤”)=“快乐” 同义词( “打乱”)= “激怒”

有没有办法在word2vec中做到这一点?

2 个答案:

答案 0 :(得分:7)

在word2vec中,您可以通过以下方式找到类比

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)]

现在使用一些标准的反义词,如(好的,坏的),(丰富的,差的),找到多个最近的反义词列表。之后,您可以使用此列表的平均向量。

答案 1 :(得分:0)

我认为可以使用来获取反义词 King-men + women =女王类比。 在这里,皇后(国王的反义词和女人的同义词)是从word2vec训练过的模型返回的结果。 让我们说有一个词X及其同义词Y。也有Y的反义词Z。那么我们可以说X-Y + Z =(X)的反义词和(Z)的同义词。