1.5.3 什么是Tokenizer-分词
什么是Tokenizer-分词
分词器的工作就是分解文本流成词(tokens).在这个文本中,每一个token都是这些字符的一个子序列.一个分析器(analyzer)必须知道它所配置的字段,但是tokenizer不需要,分词器(tokenizer)从一个字符流(reader)读取数据,生成一个Token对象(TokenStream)的序列.
输入流中的一些字符可能会被丢弃,如空格和一些分隔符;也可能会被添加或者替换,如别名映射和缩写.一个token包含多种元数据除了它的原始文本值,如字段中词(token)出现的位置.因为分词器从输入文本中发散之后生成词(tokens),你是不能假定token的文本和字段中出现的文本相同的.在原始的文本中很有可能超过一个的token拥有相同的位置或者关联相同的偏移量(offset).如果你使用token元数据做高亮时,请注意这一点儿.
<fieldType name="text" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory" />
</analyzer>
</fieldType>
这里边tokenizer元素的class的值并不是实际的值,而是一个实现了org.apache.solr.analysis.TokenizerFactory接口的类.这个工厂类被调用用来创建所需要的新的tokenizer实例.源自org.apache.lucene.analysis.TokenStream,工厂创建的对象显示了它们产生的tokens序列.如果tokenizer生成的token正是它所需要的,那么它也许就是analyzer的唯一组件.否则,分词器的输出的tokens将作为管道中第一个过滤器的输入.
TypeTokenFilterFactory可用于创建一个TypeTokenFilter,这个对象过滤tokens基于它们的TypeAttribute的.可以在factory.getStopTypes中设置.
CharFilter vs TokenFilter
这里有好几对的CharFilters和tokenFilters是有关联(MappingCharFilter和ASCIIFoldingFilter)或者是几乎相同(PatternReplaceCharFilterFactory和PatternReplaceFilterFactory)的功能.通常不好区分哪一个才是最好的选择.
使用哪个过滤器很大程度上依赖于你使用的是哪个分词器(tokenizer),你是否需要预处理字符流.
举例来说,假设你有一个StandardTokenizer的分词器,并且你很想知道它整体上是如何工作的,你想要自定义了一些指定的字符的行为表现.你需要修改你的规则,重新编译你得分词器(tokenizer).但是在分词前使用一个charFilter简单映射一些字符会使它变的更加简单.
1.5.3 什么是Tokenizer-分词的更多相关文章
- solr学习之六--------Analyzer(分析器)、Tokenizer(分词器)
首先,不知道大家在前面的例子中没有试着搜索文本串,就是在第二节,我们添加了很多文档.如果字段值是一个文本.你如果只搜索这个字段的某个单词,是不是发现搜不到? 这就是因为我们没有配置Analyzer,因 ...
- solr介绍一:Analyzer(分析器)、Tokenizer(分词器)
首先,不知道大家在前面的例子中没有试着搜索文本串,就是在第二节,我们添加了很多文档.如果字段值是一个文本.你如果只搜索这个字段的某个单词,是不是发现搜不到? 这就是因为我们没有配置Analyzer,因 ...
- python环境jieba分词的安装
我的python环境是Anaconda3安装的,由于项目需要用到分词,使用jieba分词库,在此总结一下安装方法. 安装说明======= 代码对 Python 2/3 均兼容 * 全自动安装:`ea ...
- jieba中文分词
jieba中文分词¶ 中文与拉丁语言不同,不是以空格分开每个有意义的词,在我们处理自然语言处理的时候,大部分情况下,词汇是对句子和文章的理解基础.因此需要一个工具去把完整的中文分解成词. ji ...
- python第三方库------jieba库(中文分词)
jieba“结巴”中文分词:做最好的 Python 中文分词组件 github:https://github.com/fxsjy/jieba 特点支持三种分词模式: 精确模式,试图将句子最精确地切开, ...
- ES中的分词器
基本概念: 全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Token(词元), 这些算法称为Tokenizer(分词器), 这些Token会被进一步处理, 比如转成小写等, 这 ...
- [ES]elasticsearch章5 ES的分词(二)
Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将 ...
- 自然语言处理之jieba分词
在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...
- 发布了一个基于jieba分词的ElasticSearch插件
github地址: https://github.com/hongfuli/elasticsearch-analysis-jieba 基于 jieba 的 elasticsearch 中文分词插件. ...
- 自然语言处理--jieba和gensim的分词功能
一.jieba分词功能 1.主要模式 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析: 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义: 搜索引擎模 ...
随机推荐
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (0/1-Trie树)
Vasiliy's Multiset 题目链接: http://codeforces.com/contest/706/problem/D Description Author has gone out ...
- [原创]Devexpress XtraReports 系列 3 创建主从报表
昨天写了系列的第二篇Devexpress XtraReports 系列 2 创建表格报表 . 今天我们来继续系列 3 创建主从报表 首先我们来看看最后实现的效果.Demo最后附上. 开始吧. 第一步, ...
- Java沙箱技术
自从Java技术出现以来,有关Java平台的安全性及由Java技术发展所引发的新的安全性问题,引起了越来越多的关注.目前,Java已经大量应用在各个领域,研究Java的安全 性对于更好地使用Java具 ...
- HDU 5703 Desert (找规律)
题意:一杯水有n的容量,问有多少种方法可以喝完. 析:找规律,找出前几个就发现规律了,就是2的多少次幂. 代码如下: #include <cstdio> #include <stri ...
- 队列与DelphiXe新语法
好久没写代码了,更久没上博客园的博客了,无聊写几行试一下新语法. 1 unit Main; interface uses Winapi.Windows, Winapi.Messages, System ...
- 转载php在IIS中运行
在IIS中配置PHP运行环境简单步骤 安装 IIS 7.0 打开 Control Panel\Programs\Programs and Features\Turn Windows features ...
- MyEclipse 8.6反编译插件安装
一.下载插件文件:jad.exe.jadeclipse http://www.varaneckas.com/sites/default/files/jad/jad158g.win.zip ...
- 浏览器URL访问网页具体发生了什么
[详细讲解:http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html] ——浏览器输入URL ——DNS解析过程 解析域名,找到 ...
- Notepad++配置Python运行环境
转自:http://www.cnblogs.com/zhcncn/p/3969419.html Notepad++配置Python开发环境 1. 安装Python 1 下载 我选择了32位的2.7 ...
- 不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常
使用SSH终端操作Linux/UNIX时,很多时候需要传一些文件到服务器上,或说从服务器上下载一些文件,这类文件传输动作一般使用FTP即可,但是需要架设FTP Server,每次传输不太方便,还要另外 ...