Havenask 分词器开发

简介: 本次分享由阿里云智能引擎工程师江半介绍Havenask分词器开发,内容涵盖三部分:1. 分词器插件简介,Tokenizer是Analyzer内部组件,负责文本切词;2. 内置分词器介绍,包括simple、aliws、multilevel_aliws和singlews等类型;3. 分词器开发实战,通过特定分隔符切词的TestTokenizer插件,详细讲解编写分词器插件的流程。整个过程涉及初始化、配置读取及Token生成等步骤。

Havenask 分词器开发

 

内容介绍:

一、分词器插件简介

二、内置分词器介绍

三、分词器开发实战

 

本次分享的主题是 Heavenask 的分词器开发,由阿里云智能引擎工程师江半分享。

image.png  

以下三点展开,第一介绍分词器插件,第二介绍内置分词器,第三从实战角度看分词开发运作

image.png

 

一、分词器插件简介

Tokenizer 是一个工作在 Analyzer 内部的组件,Analyzer 一般将处理后文本交给 Tokenizer 组件进行切,比如归一化后的文本Tokenizer 的输入是一段文本,输出是一段 Token 序列,其中 Token 是倒排检索最小

image.png  

 

二、内置分词器介绍

Heavenask 常用的内置分词器对于文本的切词需求,不同应用之间各不相同,引擎通过默认支持内置通用 Tokenizer 来支持常见的切词需求。当前内置支持的Tokenizer类型包括simplealiwS、 multilevel_aliws和singlews等。

simple 是一个简单的分词器,它通过配置一个分隔符,将一段文本按照配置的分隔符进行分词,默认的分隔符是\t.

aliws 分词器基本支持检索度,也可以通过配置获得扩展检索单元默认 tokenizer_id 为INTERNET_ CHN, use_extend_retrieve 默认不开启,开启后会打开AliWS的ws::SEG_TOKEN_RETRIEVE_BASICI WS::SEG_TOKEN_RETRIEVE_EXTEND选项

singlews是简单的单词分词器,会把英文的单词以及数字组合按照空格等字符分割,中文被切成单字,如果有特定字需分子的需求,就需要用到分词器开发,multilevel_aliws 相对 aliws 增加了检索度和语义度的分词功能需要 parameters 配置

image.png

 

三、分词器开发实战

Tokenizer可以让用户根据自己的搜索需求去定制特定的分词逻辑,本节将通过一个按照特定分隔符切词的 TestTokenizer 插件,介绍编写分词器插件的一般流程。比如用户配置分隔符为“:”,如果词器开发实战中有两个“:”,对于分词器“:”开发“:”实战一段文本切词结果是分词“:”加开发“:”,然后再加实战,一共是5个token,其中包含两个分隔符

系统在创建 Tokenizer 对象首先调用 init 接口的时候 TestTokenizer 可以读取 analyzer.jason 中的配置的参。如果 init 接口返回失败,Tokenize r就创建失败,在分词时,analyzer会循环调用tokenizernext接口,把需要分词的文本传给 tokenizer,next 接口会依次返回token 序列中的下一个token

系统在创建 analyzer 对象时,调用 tokenizer clone 接口,克隆出一个 tokenizer 对象传给 analyzer, analyzer 在析构的过程中负责释放克隆的 tokenizer。

最后是 TestTokenizer 在init接口中读取 separator 参数获取分割符的配置第一点是先实现 testtognide

image.png

第二点实现 Tokenizer Module Factory 类Togonizer 对象是由 Tokenizer Manage r对象生成。testTokenizerModuleManager TokenizerModuleFactory 的子类。在使用过程中,Tokenizer 对象主要向 TokenizerManager 对象获取。TokenizerManager 根据配置内容生成,在生成 TokenizerManager 过程中涉及到 Tokenizer 插件的加载以及 Tokenize 对象被 TokenizerModuleFactory 生成的过程。整个过程首先去初始化 Tokenizer 工厂,里面的 KeyValueMap& 是配置文件中去传入的参数列表,根据 Tokenizer 类型会创建指定的 Tokenizer,根据传入的 tokenat typ e创建具体的 Tokenizer 引擎根据 SO 内部定义 creatFactory 方法创建具体的TestTokenizerFactory 对象,factory 使用完成之后,调用 SO 内部的 destroy Factory 销毁 factory 对象

image.png

以上是本次分享的全部内容。

image.png

相关文章
|
存储 人工智能 自然语言处理
ElasticSearch实战指南必知必会:安装分词器、高级查询、打分机制
ElasticSearch实战指南必知必会:安装分词器、高级查询、打分机制
ElasticSearch实战指南必知必会:安装分词器、高级查询、打分机制
|
9月前
|
存储 自然语言处理 搜索推荐
【技术解析 | 实践】Havenask分析器
本次分享内容为Havenask的分析器,本次课程主要分为3部分内容(分析器介绍、解释分析器主要配置、实战演示),希望本次通过分享帮助大家更好了解和使用Havenask。
52278 3
【技术解析 | 实践】Havenask分析器
|
6月前
|
自然语言处理 应用服务中间件 nginx
一文教会你 分词器elasticsearch-analysis-ik 的安装使用【自定义分词库】
这篇文章是关于如何在Elasticsearch中安装和使用ik分词器的详细教程,包括版本匹配、安装步骤、分词测试、自定义词库配置以及创建使用ik分词器的索引的方法。
一文教会你 分词器elasticsearch-analysis-ik 的安装使用【自定义分词库】
|
9月前
|
搜索推荐 大数据 数据库
【Havenask实践篇】搭建文本检索服务
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文举例数据库检索加速的一个简单场景,使用Havenask对数据库的文本字段建立倒排索引,通过倒排检索列提高检索性能,缩短检索耗时。
114185 51
【Havenask实践篇】搭建文本检索服务
|
8月前
|
机器学习/深度学习 自然语言处理 算法
必知的技术知识:IK分词器实现原理剖析——一个小问题引发的思考
必知的技术知识:IK分词器实现原理剖析——一个小问题引发的思考
217 0
|
9月前
|
存储 自然语言处理 开发者
【技术解析 | 实践】Havenask文本索引
本次分享内容为Havenask的文本索引,本次课程主要分为两部分内容,首先简要介绍倒排索引的数据结构和文本索引的特性,然后进行对文本索引配置不同分析器的实践,希望通过分享帮助大家更好了解和使用Havenask。
41876 3
|
9月前
|
UED
Havenask
在追求知识的道路上,一款高效的学习工具能够为我们提供极大的帮助。今天,就让我们一起走进Havenask,了解它的使用方法、具体Demo案例以及需要注意的问题,为大家的学习之路增添一抹亮色。
64 2
|
自然语言处理 应用服务中间件
43分布式电商项目 - 中文分词器IK Analyzer配置
43分布式电商项目 - 中文分词器IK Analyzer配置
80 0
|
自然语言处理 Oracle 算法
【大数据开发运维解决方案】Solr5.1+Jcseg分词器安装部署(中英文同义词、停止词配置)
Solr5.1+Jcseg分词器安装部署(同义词、停止词) ############################################################################################### 注意: 本文使用得Solr环境是基于上一篇文章: Linux Solr5.1安装及导入Oracle数据库表数据 搭建得环境基础之上进行得配置测试,如...
【大数据开发运维解决方案】Solr5.1+Jcseg分词器安装部署(中英文同义词、停止词配置)
|
自然语言处理 安全 关系型数据库
白话Elasticsearch30-IK中文分词之热更新IK词库
白话Elasticsearch30-IK中文分词之热更新IK词库
277 0

热门文章

最新文章