【问题标题】:How to find synonyms based on word2vec如何根据 word2vec 查找同义词
【发布时间】:2017-11-07 06:19:33
【问题描述】:

我正在使用 Python 中的 gensim 研究 word2vec 模型,但我发现结果是具有相同主题的单词,同义词只是结果的一部分。

我可以根据我所做的工作找到一个词的同义词吗?

任何回复将不胜感激!

【问题讨论】:

    标签: word2vec


    【解决方案1】:

    Word2vec 倾向于表示相似的词——但正如您可能已经看到的那样,它学习的相似性不仅仅包括纯同义词。

    例如,word2vec 相似性包括出现在相似上下文中的单词,例如包括甚至相反的替代词。 (毕竟,“热”和“冷”在很多方面都是非常相似的词——都是形容词,主要与温度有关,也比喻用于相同类型的非温度上下文。只有在它们的对比中,它们才是反义词。)

    您可能需要使用其他技术(可能与 word2vec 配合使用)来进行纯同义词发现。

    【讨论】:

    • 是的,我想知道“其他技术”是什么。无论如何,谢谢您的回复!
    • [自动同义词识别]或[自动同义词提取]将是查找提出方法的学术论文的好查询 - 调查包括使用词嵌入的一些方法的查询是 ufal.mff.cuni.cz/pbml/105/art-leeuwenberg-et-al.pdf>。在stackoverflow.com/questions/11370247/… 上还有关于一般任务的另一个 SO 答案
    • 我会试试这些,非常感谢!
    【解决方案2】:
    import nltk
    import gensim
    
    nltk.download('word2vec_sample')
    
    word2vec_sample = str(find('models/word2vec_sample/pruned.word2vec.txt'))
    
    model = gensim.models.KeyedVectors.load_word2vec_format(word2vec_sample, binary=False)
    
    top=model.most_similar(positive=['cricket'], topn = 3)
    
    print(top)
    

    【讨论】:

    • 代码在附有解释时会更有帮助。 Stack Overflow 是关于学习的,而不是提供 sn-ps 来盲目复制和粘贴。请edit您的问题并解释它如何回答所提出的具体问题。见How to Answer
    猜你喜欢
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多