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

How to search Word2Vec or GloVe Embedding to find words by semantic relationship

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

如果"discovered"你的意思是监督学习,有datasets包含很多已经提取的关系,比如"city-in-state", "capital-world"、"superlative" 等

该数据集是词向量内在评估的流行选择 在完成词向量类比。另见

高效无监督提取这些关系可能很棘手。朴素的算法需要 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