如何搜索 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。
显示词嵌入强度的常见示例是显示某些词之间的语义关系,例如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。