elasticsearch系统学习笔记6-文本分析与分词器

elasticsearch系统学习笔记6-文本分析与分词器

概念

  • Analysis(文本分析) 是把全文本转换成一系列单词(term/token)的过程,也叫分词;
  • Analysis(文本分析) 是通过 Analyzer(分词器) 来实现的;
  • 可使用内置的分词器,也可以定制化分词器;

Analyzer 的组成

分词器一般由三部分组成(也可以只包含部分组件):

  • Character Filters - 对原始文本进行一些处理操作;比如转换与过滤(去除)
  • Tokenizer - 按照一定规则对文本进行切分;
  • Token Filters - 将切分后的单词进行一些处理;如转换,增加(同义词…)与删除(结尾词…)

内置分词器

  • Standard Analyzer - 默认分词器,按词切分,小写处理
  • Simple Analyzer - 按照非字母切分(符号被过滤),小写处理
  • Stop Analyzer - 小写处理,停用词过滤 the a is
  • Whitespace Analyzer - 按照空格切分,不转小写
  • Keyword Analyzer - 不分词,直接将输入当作输出
  • Patter Analyzer - 正则匹配,默认 \W+ (非字符切分)
  • Language - 提供常用语言的分词器

资料


举例一些分词器的构成

  1. standard analyzer
  • Character Filters
  • Tokenizer
    • standard
  • Token Filters
    • standard
    • Lower Case (小写转换)
    • Stop (默认关闭)
  1. simple analyzer
  • Character Filters
  • Tokenizer
    • Lower Case
  • Token Filters

Language Analyzers

  1. ICU analyzer
  • https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-icu.html
  • https://icu.unicode.org/

./bin/elasticsearch-plugin install analysis-icu

  • Character Filters
    • Normalization
  • Tokenizer
    • ICU Tokenizer
  • Token Filters
    • Normalization
    • Folding
    • Collation
    • Transform

v6.x测试

POST /_analyze
{
  "char_filter": [
    "icu_normalizer"
  ],
  "tokenizer": "icu_tokenizer",
  "filter": [
    "icu_normalizer",
    "icu_folding",
    "icu_transform"
  ],
  "text": "他说的确实在理"
}

v7.x测试

GET /_analyze
{
  "analyzer": "icu_analyzer",
  "text": "他说的确实在理"
}
  1. THULAC(THU Lexical Analyzer for Chinese)

由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能

https://nlp.csai.tsinghua.edu.cn/project/thulac/

_analyzer api

  1. 指定 Analyzer 进行测试
GET /_analyze
{
  "analyzer": "standard",
  "text": "Elasticsearch in Action"
}
  1. 指定索引的字段上所使用的分词器进行测试
POST user/_analyze
{
  "field": "name",
  "text": "Elasticsearch in action"
}
  1. 定制化分词器进行测试
POST /_analyze
{
  "tokenizer": "standard",
  "filter": ["uppercase"],
  "text": "Elasticsearch in action"
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值