您的位置:首页 > 汽车 > 时评 > 网络推广平台推荐_阳性最新消息_企业网络推广软件_安徽网络优化公司排名

网络推广平台推荐_阳性最新消息_企业网络推广软件_安徽网络优化公司排名

2025/1/8 3:39:33 来源:https://blog.csdn.net/qq_61839608/article/details/143424609  浏览:    关键词:网络推广平台推荐_阳性最新消息_企业网络推广软件_安徽网络优化公司排名
网络推广平台推荐_阳性最新消息_企业网络推广软件_安徽网络优化公司排名

github地址:https://github.com/infinilabs/analysis-pinyin(各种版本,对接es版本)

拼音分词器存在的问题:

1、是直接将每个字的拼音返回和一段话的拼音首字母返回,不能很好的分词。

2、不会保留中文,转为拼音之后,没有中文存在。

自定义分词器
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。

elasticsearch中分词器(analyzer)的组成包含三部分:

1、 character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符
 2、tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smart
3、tokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等
文档分词时会依次由这三部分来处理文档:

自定义分词器的配置:(只能是相应的索引库使用,创建了test索引库,那么自定义的只能在这个索引库中使用。不能在其他索引库中使用)

#自定义分词器,在ik和py的基础上自定义
PUT /test
{"settings": {"analysis": {"analyzer": { "my_analyzer": { "tokenizer": "ik_max_word",        #分词用ik"filter": "py"            #配置拼音分词器}},"filter": {"py": { "type": "pinyin",        #拼音分词器"keep_full_pinyin": false,         #   关闭了单个字符的转为拼音"keep_joined_full_pinyin": true,    #开启了词语的拼音转换"keep_original": true,                #保留中文"limit_first_letter_length": 16,        #首字母的长度小于16"remove_duplicated_term": true,        #去除重复的"none_chinese_pinyin_tokenize": false    #禁止除中文以为的其他语言转为拼音}}}},"mappings": {"properties": {"name":{"type": "text","analyzer": "my_analyzer","search_analyzer": "ik_smart"}}}
}

为了避免搜索的时候使用拼音搜到同音词,所以在搜索的时候使用ik分词器"search_analyzer": "ik_smart"

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com