lucene 多个分词查找_使用Lucene的新FreeTextSuggester查找长尾建议

lucene 多个分词查找

Lucene的“ 建议”模块提供了许多有趣的自动建议实现,以便在用户将每个字符输入搜索框时为他们提供实时搜索建议。

例如, WFSTCompletionLookup将所有建议及其权重编译到一个紧凑的有限状态传感器中 ,从而可以对基本建议进行快速前缀查找。

AnalyzingSuggester使用Analyzer对建议和用户查询进行规范化, Analyzer对此进行了改进,以使Analyzer确定的空白,大小写,停用词,同义词等琐碎的差异不会阻止建议的匹配。

最后, AnalyzingInfixSuggester允许相匹配,以便每个建议(不只是前缀)内部的话可以触发匹配更进一步。 您可以在我最近创建的Lucene / Solr Jira搜索应用程序 (例如尝试“ python”)中看到这一动作, 该动作可以吃我们自己的狗粮 。 这也是迄今为止唯一支持突出显示的建议程序实现( 事实证明 ,这对其他建议程序具有挑战性 )。

但是,所有这些建议者的共同限制是,他们只能从有限的先前构建的建议集中提出建议。 如果您的建议是过去的用户查询,并且您有很多建议(例如,您是Google),那么这可能不是问题。 另外,如果您的建议天生就是封闭的,例如Netflix搜索将建议的电影和电视节目名称,或电子商务网站上的所有产品名称,则建议使用一组封闭的建议。

N-Gram语言模型

对于其他所有人,其中大部分传入查询都落入了前所未有的长尾巴中 ,Lucene的最新建议者FreeTextSuggester可以为您提供帮助! 它使用此Google博客文章中描述的方法。

与其精确地匹配先前的建议,不如从所有建议中构建一个简单的统计n-gram语言模型 ,并查看最后的标记(加上用户键入的任何最终标记的前缀,如果存在),以预测最可能的下一个标记令牌。

例如,到目前为止,用户的查询可能是:“ flashforge 3d p”,并且由于flashforge是3D打印机的罕见品牌,因此从未向建议者添加此特定建议前缀。 但是,“ 3d打印机”在其他情况下(不同品牌)是一个经常出现的短语。 在这种情况下,即使从未明确添加“ flashforge 3d打印机”作为建议, FreeTextSuggester仍将为下一个标记看到“ 3d”和“ p”前缀并预测打印机。

创建建议者时,您可以指定模型的顺序(N):N的值越大,需要更多的数据来进行正确训练,但可以做出更准确的预测。 还构建了所有低阶模型,因此,如果指定N = 3,则将得到三字母组,双字母组和单字母组,它们全部编译为单个加权FST,以最大程度地共享文本令牌。 当然,更大的N将创建更大的FST。 在实践中,N = 3是您应该采取的最高方法,除非您有大量的建议要训练,并且RAM拥有大量的结果以保持FST。

为了处理稀疏数据,在给定上下文(前N-1个单词)的出现频率不足以做出准确的预测的情况下,建议者使用愚蠢的退避语言模型 (是的,这确实是它的名字,是的,它的表现很好!)。

我希望使用此新的FreeTextSuggester的最佳方法将是回退:您将首先使用现有的完全匹配建议者之一,但是当这些建议者找不到给定查询的任何建议时,因为它“不寻常”且已交叉从长尾巴上FreeTextSuggester ,然后又回到FreeTextSuggester

谷歌似乎用这样的模式方法的建议,以及:如果键入“flashforge 3D P”你应该看到这样的事情,其中每个建议涵盖整个查询到目前为止(事实上,谷歌已经听到了flashforge品牌的3D打印机!):

建议1

但是,如果您继续输入并输入“ flashforge 3d打印机电源u”,则建议会发生变化:Google不会建议一个完整的查询,而是匹配我键入的所有内容,而是建议最后一两个字:

建议2

与往常一样,此功能是非常新的功能,可能包含令人兴奋的错误! 有关详细信息, 请参见Jira问题LUCENE-5214 。 如果您使用这个新的建议者,请在Lucene的用户列表上开始讨论!

参考: 使用我们的JCG合作伙伴 Michael Mc Candless在Lucy Bits博客上使用Lucene的新FreeTextSuggester查找长尾建议 。

翻译自: https://www.javacodegeeks.com/2014/01/finding-long-tail-suggestions-using-lucenes-new-freetextsuggester.html

lucene 多个分词查找

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

32linux下安装mysql5.7_Linux系统下以RPM方式安装mysql-5.7.9

1在开始安装之前,我们先来一小段官方文档,看下图。图中英文翻译过来就是:从MySQL5.7.4起,以RPM包的方式安装后的MySQL的部署默认是安全的,并且有这些特点:在大多数情况下,你只需要安装MySQL-ser…

PoE交换机的4种连接方法

POE也被称为基于局域网的供电系统或有源以太网,有时也被简称为以太网供电,一个完整的POE系统包括供电端设备和受电端设备两部分。可能会有一些朋友对poe供电有一些疑问,这个在之前也有很多朋友问到过,那么,今天就由飞畅…

带有NetBeans 10的Java EE

Apache NetBeans项目正在逐步形成。 10.0版于2018年12月27日发布。 下载版中列出了自9.0版以来添加的主要功能。 对我个人而言,最重要的功能是JDK 11支持。 那么,Java EE呢? 在将所有NetBeans源从Oracle转移到Apache并合并到Apache NetBean…

POE交换机供电原理及工作过程

POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机、无线局域网接入点AP、网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术.就是支持以太网供电的交换机。那么&am…

PoE交换机可以当普通交换机使用吗?

PoE交换机是一种新型的多功能交换机,随着PoE交换机的广泛应用,人们对PoE交换机有了一定的了解。然而,很多人认为PoE交换机可以自行发电,这种说法并不正确,通常所讲的PoE交换机供电指的是PoE交换机通过网线来给其他设备…

光纤收发器和光电转换器有什么区别?

光纤收发器,是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元,在很多地方也被称之为光电转换器(Fiber Converter)。那么,光纤收发器和光电转换器有区别吗?接下来就由飞畅科技…

mysql innodb redolog_Mysql的binlog 和InnoDB的redo-log

mysql日志系统之redo log和bin log12018.12.02 01:35:06字数 997阅读 3,248首先,我们先来看看一次查询/更新语句流程图mysql查询/更新流程图.png本文会将重点放在执行器存储引擎之间的交互。mysql不是每次数据更改都立刻写到磁盘,而是会先将修改后的结果…

光纤收发器按照网管怎么分类?

光纤收发器,是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元,在很多地方也被称之为光电转换器(Fiber Converter),那么,光纤收发器按照网管怎么分类的?接下来我们…

电话光端机和PDH光端机的区别

电话光端机就是把传统的电话信号转换成光信号,可通过光纤传输电话、以太网、音频的设备,让电话信号能够传输的更长距离,而且传输速率上也有很大的提高。电话光端机和PDH光端机用法各不一样,而PDH光端机简单的说是通过光纤来传输E1信号和100M以太网信号。…

jcmd,大约JDK 11

NicolasFrnkel最近在博客文章“ 行业工具OpenJDK 11 ”中发布了与OpenJDK 11一起提供的命令行工具的调查。 在那篇文章中,他简要总结了工具jps (一个JVM进程状态工具 ), jinfo (一个JVM配置详细信息 )&…

android 保存文件_Android 数据库操作框架LitePal使用介绍(一)

在Android开发中,前端开发很多情况数据都是从服务器端获取的,使用本地数据库的情况可能不会太常见。有一些需要本地保存的配置数据,也是使用Hawk框架等本地缓存框架进行保存。但是对于如果是一些需要本地保存的,又是大量的数据时&…

PDH光端机常见故障问题解决方法

在数字通信传输系统中,有两种数字光端机系列,一种叫“准同步数字系列光端机”(PlesiochronousDigitalHierarchy),简称PDH光端机;另一种叫“同步数字系列光端机”(SynchronousDigitalHierarchy&a…

安防监控专用工业交换机与普通交换机的区别

工业交换机即工业以太网交换机,它作用是放到路由器后端,来扩展路由器接口,以解决接口不够用的问题。以太网在设计时,由于其采用载波侦听多路复用冲突检测(CSMA/CD机制),在复杂的工业环境中应用,其可靠性大大…

电话光端机与PCM复用设备的区别

电话光端机与PCM复用设备,都是使用标准PCM脉冲编码调制技术,具备滤波功能,使语音通话更清晰稳定!设备采用专用数字复接芯片,它将设备中的数字逻辑功能几乎全部集成,从而提高了产品的性能,且每路…

选择安防交换机时需要避免哪些误区呢?

安防交换机是专为家庭、学校宿舍、办公室、小型监控等简易网络环境设计,是一种非常常用的一种交换机设备,那么我们在采购安防交换机的时候,是否有很多人都存在误区,造成踩雷,选择到劣质设备,可以说花不少的…

简而言之SPIFFE

我一直在研究SPIFEE(每个人的安全生产身份框架)[1],在这里,我正在按照我现在的理解起草流程,以使任何试图理解流程的人受益。 身份注册表 – SPIRE服务器具有自己的身份注册表,该注册表保留两个粗粒度属性…

c++ 多个字符串排序_Python小白干货宝典:sorted()函数:列表元素排序

定义:sorted() 函数对所有可迭代的对象进行排序操作。内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。语法:sorted 语法:sorted(iterable, cmpNone, keyNone, reverseFalse)返回值:返回重…

工业级以太网交换机的使用情况分析

工业级以太网交换机是专门为满足灵活多变的工业应用需求而设计,提供一种高性价比工业以太网通讯解决方案。工业以太网交换机,作为我们广为使用的局域网硬件设备,一直为大家所熟悉。它的普及程度其实是由于以太网的广泛使用,作为今…

工业级以太网交换机产品特征及应用案例介绍

工业以太网交换机(简称工业交换机)是专门为满足灵活多变的工业应用需求而提供的一种高性价比的组网设备。针对工业控制的实际需求,工业交换机解决了通信实时性、网络可用性能和安全性等技术问题。与普通商业交换机相比,工业交换机…

mysql 热块_MySQL分布式集群之MyCAT(三)rule的分析【转】

首先写在最前面,MyCAT1.4的alpha版本已经发布了,这里面修复了不少的bug,也完善了一细节,之前两篇博客已经做了一些修改---------------------------------------------------------------------------------这才是本体~----------…