php stemming,词干提取算法 | Elasticsearch: 权威指南 | Elastic

使用基于算法的词干提取器编辑

可以使用 porter_stem 词干提取器或直接使用 kstem 分词过滤器,或使用 snowball 分词过滤器创建一个具体语言的 Snowball 词干提取器。所有基于算法的词干提取器都暴露了用来接受 语言 参数的统一接口: stemmer token filter 。

例如,假设你发现 英语 分析器使用的默认词干提取器太激进并且

你想使它不那么激进。首先应在 language analyzers 查看 英语 分析器配置文件,配置文件展示如下:

{

"settings": {

"analysis": {

"filter": {

"english_stop": {

"type": "stop",

"stopwords": "_english_"

},

"english_keywords": {

"type": "keyword_marker", b12c25603599a7e8e98fa9ecc467e459.png

"keywords": []

},

"english_stemmer": {

"type": "stemmer",

"language": "english" 7ab1d8c2f4572920c33bb534c85838dd.png

},

"english_possessive_stemmer": {

"type": "stemmer",

"language": "possessive_english" dc056a6fc0a78531629fdc78152f802a.png

}

},

"analyzer": {

"english": {

"tokenizer": "standard",

"filter": [

"english_possessive_stemmer",

"lowercase",

"english_stop",

"english_keywords",

"english_stemmer"

]

}

}

}

}

}

b12c25603599a7e8e98fa9ecc467e459.pngkeyword_marker 分词过滤器列出那些不用被词干提取的单词。这个过滤器默认情况下是一个空的列表。

7ab1d8c2f4572920c33bb534c85838dd.pngdc056a6fc0a78531629fdc78152f802a.pngenglish 分析器使用了两个词干提取器: possessive_english 词干提取器和 english 词干提取器。 所有格词干提取器会在任何词传递到 english_stop 、 english_keywords 和 english_stemmer 之前去除 's 。

重新审视下现在的配置,添加上以下修改,我们可以把这份配置当作新分析器的基本配置:

修改 english_stemmer ,将 english (porter_stem 分词过滤器的映射)替换为 light_english (非激进的 kstem 分词过滤器的映射)。

添加 asciifolding 分词过滤器用以移除外语的附加符号。

移除 keyword_marker 分词过滤器,因为我们不需要它。(我们会在 控制词干提取 中详细讨论它)

新定义的分析器会像下面这样:

PUT /my_index

{

"settings": {

"analysis": {

"filter": {

"english_stop": {

"type": "stop",

"stopwords": "_english_"

},

"light_english_stemmer": {

"type": "stemmer",

"language": "light_english" b12c25603599a7e8e98fa9ecc467e459.png

},

"english_possessive_stemmer": {

"type": "stemmer",

"language": "possessive_english"

}

},

"analyzer": {

"english": {

"tokenizer": "standard",

"filter": [

"english_possessive_stemmer",

"lowercase",

"english_stop",

"light_english_stemmer", 7ab1d8c2f4572920c33bb534c85838dd.png

"asciifolding" dc056a6fc0a78531629fdc78152f802a.png

]

}

}

}

}

}

b12c25603599a7e8e98fa9ecc467e459.png7ab1d8c2f4572920c33bb534c85838dd.png将 english 词干提取器替换为非激进的 light_english 词干提取器

dc056a6fc0a78531629fdc78152f802a.png添加 asciifolding 分词过滤器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值