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

时间:2018-02-20 03:10:13

标签: machine-learning nlp keras word2vec word-embedding

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

1 个答案:

答案 0 :(得分:1)

如果“发现”是指受监督的学习,则datasets包含许多已经提取的关系,例如“城市中的城市”,“资本世界” ,“最高级”等。

此数据集是单词向量内在评估的常用选择 在完成单词矢量类比。另请参阅this question

高效无监督提取这些关系可能会非常棘手。一个朴素的算法需要O(n 2 )时间和内存,其中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