2017-02-23 70 views
7

我有大量的文本集合,其中每个文本都在快速增长。我需要实施相似性搜索。Word2vec与弹性搜索的文本相似度

这个想法是将每个单词嵌入为word2vec,并通过向量添加每个单词的嵌入将每个文本表示为一个归一化矢量。随后对文本的添加只会导致通过向其添加新的单词矢量来对生成的文本的矢量进行优化。

是否可以使用elasticsearch作为余弦相似度,只存储每个文本的归一化向量在文档中的坐标?如果是这样,这种搜索的适当索引结构是什么?

回答

3

elasticsearch plugin实现用于使用delimited-payload-tokenfilter

的该搜索的复杂性的文档数的线性函数存储矢量的得分函数(点积),并且它比TF-IDF更糟上的术语的查询,因为ES first searches on an inverted index那么它uses tf-idf for document scores,所以tf-idf不会在索引的所有文档上执行。使用向量,搜索的图像是具有较低余弦距离的文档的向量空间,没有倒排索引的优点。

+0

这是如何按比例缩放文档的?这种可扩展性比tf-idf差得多,只是保持倒排索引? –