【问题标题】:How to obtain antonyms through word2vec?如何通过word2vec获取反义词?
【发布时间】:2019-08-28 22:29:27
【问题描述】:

我目前正在使用 Python 中的 gensim 研究 word2vec 模型,并想编写一个函数来帮助我找到给定单词的反义词和同义词。 例如: 反义词(“悲伤”)=“快乐” 同义词(“心烦意乱”)=“愤怒”

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

【问题讨论】:

    标签: python gensim word2vec


    【解决方案1】:

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

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

    【讨论】:

    • 为什么这里需要向量的平均?
    • 例如,您的反义词种子集是ss = [('rich','poor'), ('good', 'bad')]。现在,要找到sad 的反义词,您可以执行antonym_candidates = [model.most_similar(positive=[ss[0][0], 'sad'], negative=[ss[0][1]]), model.most_similar(positive=[ss[1][0], 'sad'], negative=[ss[1][1]])] 之类的操作。现在要选择最佳反义词,您可以 (1) 取最接近/最频繁的词 (2) 取所有可能候选向量的(加权)平均值,并在词汇表中找到最接近该向量的词
    • 所以,在这种情况下,我必须创建一组已知的反义词。我说的对吗?
    • 是的,因为只有一对已知的反义词,很可能给出有偏见的答案
    • -1;这不可能工作,因为“是反义词”关系是对称;任何将单词映射到其反义词的函数在逻辑上都必须是其自身的逆函数。显然,不可能有一个向量可以添加到任何单词中以获得其反义词,因为添加向量的操作不是它自己的逆操作。
    【解决方案2】:

    我认为可以使用获得反义词 国王-男人+女人=女王的类比。 这里的女王(国王的反义词和女性的同义词)是从 word2vec 训练模型返回的结果。 假设有一个单词 X 和它的同义词 Y。还有 Y 的反义词是 Z。那么我们可以说 X-Y + Z = (X) 的反义词和 (Z) 的同义词。

    【讨论】:

    • 使用 model.most_similar(positive=['king', 'woman'],negative=['men']) 但这可能会帮助您扩展最初由 MT( PWN(英语单词网)的机器翻译)。记住 women 是 MT 从 PWN 中提取的 men 的反义词。国王是男人的代名词。这个也是从 PWN 中提取的,最后我们使用 model.most_similar(positive=['king', 'woman'],negative=['men'])。上面的代码行返回queen,它是国王的反义词和女性的同义词。注意:从 PWN 中提取的所有单词都应该存在于您的 word2vec 训练模型中。
    猜你喜欢
    • 2019-04-23
    • 2016-09-08
    • 2017-09-24
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 2017-11-07
    • 2015-10-05
    • 2018-01-02
    相关资源
    最近更新 更多