首页 文章

如何搜索Word2Vec或GloVe嵌入以通过语义关系查找单词

提问于
浏览
1

显示Word嵌入强度的常见示例是显示某些单词之间的语义关系,例如 king:queen = male:female . 如何发现这种关系?这是通过基于几何聚类的某种可视化吗?任何指针将不胜感激 .

1 回答

  • 1

    如果通过"discovered"表示 supervised 学习,则datasets包含许多已提取的关系,例如"city-in-state","capital-world","superlative"等 .

    该数据集是完成单词矢量类比的单词向量内在评估的流行选择 . 另见this question .

    提取这些关系可能会非常棘手 . 一个朴素的算法需要O(n2)时间和内存,其中n是词汇表中的单词数量,这是巨大的 . 一般来说,这个问题归结为有效的指数构建 .

    但是如果你只想自己训练并使用文字嵌入,你可以简单地使用gensim

    model = gensim.models.word2vec.Word2Vec(sentences=sentences, size=100, window=4,
                                            workers=5, sg=1, min_count=20, iter=10)
    word_vectors = model.wv
    similar = word_vectors.most_similar(positive=['woman', 'king'], negative=['man'])
    # [(u'queen', 0.7188869714736938), (u'empress', 0.6739267110824585), ...
    

    请注意,您需要一个大的语料库,例如text8 .

相关问题