KMaster知识管理平台
  • KMaster搜索引擎及信息关联

    2018年12月11日

    KMaster旨在为用户提供一套具备精准搜索算法的信息管理系统,让用户能够找到他真正需要的信息。KMaster改进了开源搜索引擎ElasticSearch的排序算法,并且开发了定制化的人工智能信息关联模块,这两项工作在业内属于领先水平。

    KMaster系统采用了开源的分布式搜索引擎ElasticSearchElasticSearch是一个分布式多用户能力的全文搜索引擎,作为Apache许可条款下的开放源码发布,设计用于云计算中,能够达到实时搜索,稳定,可靠,快速。该搜索引擎支持高并发,动态扩展,可以根据实际业务规模的增长,实时动态增加计算和存储资源。KMaster通过改进其搜索排序算法,按照信息平台独有的特性,改变某些搜索项的权限,使得搜索结果排序更准确,更有利于用户使用。

    并且KMaster系统还创新的在企业信息化系统中加入了人工智能助理的角色,用户可以直接跟助理对话,助理通过NLP理解用户的语义,并通过大纲以及ES搜索引擎返回用户需要的信息。

    KMaster在信息关联方面经验丰富,做了基于结构化和非结构化数据之间的关联。结构化数据方面,采用json格式,以及关键信息抽取方式,实现了结构化数据的关联。在非结构化数据方面,基于TensorFlow做了定制化的人工智能信息关联功能,通过人工智能算法,根据词频以及逆向文档频率,抽取文章关键词,将关键词转化为语义词向量,并通过向量距离建立文档信息关联。

    同时,为了使信息关联更加具象化,KMaster还开发了独有的知识脉络图呈现模块,使信息关联更加直观更加显性。

    以下附上TF/IDF关键算法:

    TF/IDF

    TF/IDF 即词频(Term Frequency/逆向文档频率(Inverse Document Frequency)。

    词频

    一个容易想到的思路,就是一批文档中,某篇文档出现关键词的次数越多,那么这篇文档就跟这个关键词越相关。如果某个词很重要,它应该在这篇文章中多次出现。

    我们用词频来表示。

    http://www.ruanyifeng.com/blogimg/asset/201303/bg2013031503.png

    考虑到不同文档的文本长度不一致,长度较长的文档中,出现该关键词的次数可能会更多,为了便于在不同文档中进行比较,我们可以对词频进行标准化:对词频取平方根用来消除长尾效应。

     

    tf(t in d) = √frequency https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/icons/callouts/1.png

     t 在文档 d 的词频( tf )是该词在文档中出现次数的平方根。

    当匹配到一组文档后,需要根据相关度排序这些文档,不是所有的文档都包含所有词,而且有些词比其他的词更重要。排序中,一个文档的相关度评分,部分取决于关键词在每篇文章中的词频权重。

          我们在考虑词频时,还需要对出现次数最多的词如""""""----这一类最常用的词。它们叫做"停用词"stop words),表示对找到结果毫无帮助、必须过滤掉。

     

    逆向文档频率

    另外一个需要考虑的因素,就是关键词本身,比如我们在法律文档库中,搜索“婚姻 法律 条款”,那么,由于文档库中,“法律”和“条款”可能在大部分文档中都存在,这时候,与“婚姻”相关的文档,应该具有更好的相关性,应该优先排序。

    那么,我们需要一个重要性调整系数,衡量一个词是不是常见词。如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,这篇文章与整个搜索关键词的相关性更大。

    http://www.ruanyifeng.com/blogimg/asset/201303/bg2013031506.png

    idf(t) = 1 + log ( numDocs / (docFreq + 1)) https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/icons/callouts/1.png

    https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/icons/callouts/1.png

     t 的逆向文档频率( idf )是:索引中文档数量除以所有包含该词的文档数,然后求其对数。

    字段长度归一值

    被搜索字段的长度是多少? 字段越短,字段的权重应该越高 。比如词出现在类似标题 title 这样的字段,要比它出现在内容 body 这样的字段中的相关度更高。

    字段长度的归一值公式如下:

    norm(d) = 1 / √numTerms https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/icons/callouts/1.png

    https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/icons/callouts/1.png

    字段长度归一值( norm )是字段中词数平方根的倒数。

    字段长度的归一值对全文搜索非常重要, 许多其他字段不需要有归一值。


    结合使用

    以下三个因素——词频(term frequency)、逆向文档频率(inverse document frequency)和字段长度归一值(field-length norm——是在索引时计算并存储的。 最后将它们结合在一起计算单个词在特定文档中的 权重 

     

联系我们

  • 咨询热线 400-001-5661
  • 邮箱 service@wejoysoft.com
  • 地址 北京市朝阳区白家庄商务中心1号楼A座