elasticsearch高亮之词项向量】的更多相关文章

一.什么是词项向量 词项向量(term vector)是有elasticsearch在index document的时候产生,其包含对document解析过程中产生的分词的一些信息,例如分词在字段值中的位置.开始和结束的字符位置.分词的元数据payloads等: term vector是单独进行存储的,会额外多占用一杯的空间,所以elasticsearch默认情况下禁用词项向量,如果要启用,我们需要在字段的mapping中使用term_vector进行设置: 二.term_vector的配置选项…
一.基于词项与全文的搜索 1.词项 Term(词项)是表达语意的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term. Term的使用说明: 1)Term Level Query:Term Query.Range Query.Exists Query.Prefix Query.Wildcard Query: 2)在ES中,对于Term查询的输入是不做分词处理的,会将输入作为一个整体,在倒排索引中查找准确的词项,并且使用相关度算分公式为每个包含该词项的文档进行相关度算分: 3)通过C…
一.词项相似度 elasticsearch支持拼写纠错,其建议词的获取就需要进行词项相似度的计算:今天我们来通过不同的距离算法来学习一下词项相似度算法: 二.数据准备 计算词项相似度,就需要首先将词项向量化:我们可以使用以下两种方法 字符向量化,其将每个字符映射为一个唯一的数字,我们可以直接使用字符编码即可: import numpy as np def vectorize_words(words): lower_words = [word.lower() for word in words]…
六.莱文斯坦编辑距离 前边的几种距离计算方法都是针对相同长度的词项,莱文斯坦编辑距离可以计算两个长度不同的单词之间的距离:莱文斯坦编辑距离是通过添加.删除.或者将一个字符替换为另外一个字符所需的最小编辑次数: 我们假设两个单词u.v的长度分别为i.j,则其可以分以下几种情况进行计算 当有一个单词的长度为0的时候,则编辑距离为不为零的单词的长度: \[ld_{u,v}(i,j)=max(i,j)\; \; \; \; \; \; \; \; min(i,j) = 0 \] 从编辑距离的定义上来看,…
词嵌入向量WordEmbedding的原理和生成方法   WordEmbedding 词嵌入向量(WordEmbedding)是NLP里面一个重要的概念,我们可以利用WordEmbedding将一个单词转换成固定长度的向量表示,从而便于进行数学处理.本文将介绍WordEmbedding的使用方式,并讲解如何通过神经网络生成WordEmbedding. WordEmbedding的使用 使用数学模型处理文本语料的第一步就是把文本转换成数学表示,有两种方法,第一种方法可以通过one-hot矩阵表示一…
一.TF-IDF 词项频率: df:term frequency. term在文档中出现的频率.tf越大,词项越重要. 文档频率: tf:document frequecy.有多少文档包括此term,df越大词项越不重要. 词项权重计算公式: tf-idf=tf(t,d)*log(N/df(t)) W(t,d):the weight of the term in document d tf(t,d):the frequency of term t in document d N:the numb…
[词项邻近] 邻近操作符(proximity)用于指定查询中的两个词项应该在文档中互相靠近,靠近程度通常采用两者之间的词的个数或者是否同在某个结构单元(如句 子或段落)中出现来衡量. [停用词] 一些常见词在文档和用户需求进行匹配时价值并不大, 需要彻底从词汇表中去除.这些词称为停用词(stop word).一个常用的生成停用词表的方法就是将词项按照文档集频率(collection frequency,每个词项在文档集中出现的频率)从高到低排列,然后手工选择那些语义内容与文档主题关系不大的高频词…
准备 首先先声明下,我这里使用的 ES 版本 5.2.0. 为了便于理解,这里以如下 index 为格式,该格式是通过 PMACCT 抓取的 netflow 流量信息, 文中所涉及的到的例子,全基于此 index. 本篇涉及的内容可以理解为 ES 的入门内容,主要针对词项的过滤,为基础篇. { "_index": "shflows_agg_1600358400", "_type": "shflows_agg", "_…
热更新概述 ik分词器本身可以从配置文件加载扩张词库,也可以从远程HTTP服务器加载. 从本地加载,则需要重启ES生效,影响比较大.所以,一般我们都会把词库放在远程服务器上.这里主要有2种方式: 借助Nginx,在其某个目录结构下放一个dic.txt,我们只要更新这个文件,不需要重启ES也能达到热更新的目的.优点是简单,无需开发,缺点就是不够灵活. 自己开发一个HTTP接口,返回词库.注意:一行代表一个词,http body中,自己追加\n换行. 这里主要介绍第2种接口方式.  热更新原理 查看…
一.highlight简介 highlight是提升用户体验的重要手段,搜索引擎通过高亮突出命中关键字等方式,方便用户通过关键字周围的信息快速的确认是否是自己希望的结果: highlight功能通常包含以下三个主要的处理过程 1.将字段文本拆分为小的片段: 2.找出最相关的片段: 3.高亮查询关键字: 二.elasticsearch的highlight功能 elasticsearch提供了专门的高亮请求参数highlight,返回的记过中也会包含对应的高亮信息: 在查询语句中,我们要求对text…