我正在开发一种词表示算法,类似于Word2Vec和GloVe。我被要求使其更加动态,以便在表示(向量)创建后,仍能向词汇表中添加新词,并提交新文档到程序中。
问题在于,如何知道我的表示是否有效?如何确定它是否真正捕捉到了每个词的含义?我如何将我的表示与其他现有的向量空间模型进行比较?
目前,我正在进行以下测试来检查我的词向量的质量:
距离测试:
向量之间的余弦距离是否反映了词之间的语义距离?
类比测试:
表示能否用来解决类似“国王之于女王相当于男人之于________”的问题?(答案应该是女人)
挑选异类:
向量能否用来从给定词列表中挑选出异类词?如果输入是{“cat”,”dog”,”phone”},输出应该是”phone”吗?
我还应该进行哪些测试来检查向量的质量?词向量预期应该能够完成哪些其他任务?是否有向量空间模型的基准?
回答:
你的测试听起来非常合理——这些是研究论文中用来测试词嵌入质量的常用评估任务。
此外,网站www.wordvectors.org可以让你很好地了解你的向量表现如何。它允许你上传你的嵌入,生成图表,提供与词对相似性排名的相关性,并将你的嵌入与之前研究中的预训练向量进行比较。你可以在附带的论文中找到更详细的描述。