如何使用神经网络构建全文搜索

为什么很难使用常规的全文本搜索来搜索非常短的文档,以及要执行的操作。





介绍



我们所有人都一直面临着所谓的全文搜索-通过搜索短语查找文档。最著名的例子是Google搜索。



有许多用于构建全文本搜索的工具。例如,一种非常流行的解决方案是Elasticsearch。在此基础上,可以在具有数千万个文档的庞大数据库中进行搜索。



在DD Planet,我们为B2B采购数据库开发搜索和分析服务,并积极使用Elasticsearch。但是,当我们尝试组织非常短的文档(产品名称)的搜索和比较时,我们遇到了许多问题。



全文搜索的工作方式



包括Elasticsearch在内的大多数全文搜索系统都基于反向索引-一种数据结构,在该数据结构中,对于文档库中的每个单词,都会存储其中出现的所有文档。反向索引用于文本搜索。



让我们从三个文本的基础获得一个语料库:



T0=" »", 
T1=" ", 
T2=" ",


:



"": {0, 1}
"": {0}
"": {1, 2}
"": {2}


— , . , . , , « ». «» {2}, «» — {0}. , . , {0, 2} c ½. , , TF-IDF, .





, , , -, :



  1. .

    : « » « » « » , , « » « », « ». , . 

    . : , . , , TF-IDF, .
  2. .

    — , , « 4», «4», « », « 4» . . 

    — Elasticsearch . , , .

  3. .

    , . , « » « Windows» «» .  



NLP



NLP . NLP (Natural Language Processing) — , . 



NLP - , - . , .



«»



NLP — Paraphrase Identification — (, ) , ( ).  : « 17:00» « ». ? , .



. . DeepPavlov.ai [1], , . , .



. ( ), . .. -. 



, DeepPavlov, — , .



,



, . ? , Øñ , Elasticsearch Ø日志ñ. .



: , . . 



, : — , d , :



  1. dXÿ=0, X=ÿ
  2. dXÿ=dÿX...
  3. dXždXÿ+dÿž... , , .


? (Nearest neighbor search) — . vantage-point tree, Ø日志ñ [2]. , , , , Kd-. , .



Vantage-point tree



, vantage-point tree [3]. ball-tree, . . , . (vantage-point) ( ).





, ( 小号 vantage-point), . — . . , S , . , .



, K X ( ). , (, ). d — . , .





X , «» . d. «» ? , d>Ť ( X ), . , «» .





K , dŤ, «» . .





FXÿ vantage-point tree :



  1. — , . , , . cosine Doc2Vec — . 



    dXÿ=FXÿ+ε小号dØC2VËCXÿ



    ε — .



  2. . ? , , , float32. - . X ÿ, , . 



    dXÿ=FXÿ+FÿX



  3. dXždXÿ+dÿž. . ,



    x=" ", y=" ", z=" "


    , dXždXÿ+dÿž... - . , Doc2Vec — . 





, , — , , . , : [2]. — , . 



. ( ). , , ( ). , . «» .







( ), . . 





. ? , . : , ? vantage-point tree , — vantage-point. 





, [2], . , . . 



« ». , . , . 



. , . GitHub pip install nlp-text-search.





[1] http://docs.deeppavlov.ai/en/master/.



[2] Yianilos (1993). Data structures and algorithms for nearest neighbor search in general metric spaces. Fourth annual ACM-SIAM symposium on Discrete algorithms. Society for Industrial and Applied Mathematics Philadelphia, PA, USA. pp. 311–321. pny93. http://web.cs.iastate.edu/~honavar/nndatastructures.pdf



[3] http://stevehanov.ca/blog/?id=130




All Articles