Git地址:https://github.com/medcl/elasticsearch-analysis-pinyin
需求背景 因为用户前台输入的是汉字, 但是在创建图数据库的Tag节点的时候, 虽然能用中文, 但是我觉得还是不要用了, 就像是Java也能定义中文的类和字段一样奇怪, 但是又没有翻译API, 也可能又网络的问题..., 综合考虑, 可以直接转为汉字拼音 添加POM依赖 <!...import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /** * 汉字转换为拼音...:" + toPinyin("张三")); } /** * 获取字符串拼音的第一个字母 */ public static String toFirstChar...pinyinStr += newChar[i]; } } return pinyinStr; } /** * 汉字转为拼音
pinyin4j 2.5.1 汉字转拼音工具类...net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /**汉字解析拼音处理...String t4 = ""; int t0 = t1.length; try { for (int i = 0; i < t0; i++) { // 判断是否为汉字字符 if (java.lang.Character.toString...t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3); t4 += t2[0]; } else { t4 += java.lang.Character.toString
--汉语拼音工具--> com.belerweb ...net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; import org.apache.commons.lang3.StringUtils; /** * @program: simple_tools * @description: 拼音工具类...) { return null; } return pinyins[0]; } // 使用PinYin4j.jar将汉字转换为拼音
今天说一说结巴分词器_分词器原理,希望能够帮助大家进步!!!...utm_source=qq&utm_medium=social&utm_oi=780081763178258432 今天文章到此就结束了,感谢您的阅读,Java架构师必看祝您升职加薪,年年好运。
因为需要根据拼音字母来推断,因此要用到拼音分词功能。 要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。...地址:https://github.com/medcl/elasticsearch-analysis-pinyin 课前资料中也提供了拼音分词器的安装包: 安装方式与IK分词器一样,分三步: ①上传到虚拟机中...使用命令: docker volume inspect es-plugins 我们将ES拼音插件,上传到当前目录。...Tools里面,使用DSL语言测试: POST /_analyze { "text": ["我是中国人"], "analyzer": "pinyin" } 运行后结果: 我们可以看到每个字对应拼音出来
繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合。这里我们不再做过多描述。...·算法详解 · 《汉字转拼音与简繁转换的Java实现》 汉字转拼音 HanLP中的汉字转拼音功能也十分的强大。...·说明 · HanLP不仅支持基础的汉字转拼音,还支持声母、韵母、音调、音标和输入法首字母首声母功能。 · HanLP能够识别多音字,也能给繁体中文注拼音。...·算法详解 · 《汉字转拼音与简繁转换的Java实现》 拼音转中文 HanLP中的数据结构和接口是灵活的,组合这些接口,可以自己创造新功能,我们可以使用AhoCorasickDoubleArrayTrie...实现的最长分词器,需要用户调用setTrie()提供一个AhoCorasickDoubleArrayTrie 字符正则化 演示正规化字符配置项的效果(繁体->简体,全角->半角,大写
因为需要根据拼音字母来推断,因此要用到拼音分词功能。 2.1. 拼音分词器 要实现根据字母做补全,就必须对文档按照拼音分词。在 GitHub 上恰好有 elasticsearch 的拼音分词插件。...地址:https://github.com/medcl/elasticsearch-analysis-pinyin 课前资料中也提供了拼音分词器的安装包: 安装方式与 IK 分词器一样,分三步: ...自定义分词器 默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。...实现酒店搜索框自动补全 现在,我们的 hotel 索引库还没有设置拼音分词器,需要修改索引库中的配置。但是我们知道索引库是无法修改的,只能删除然后重新创建。...因此,总结一下,我们需要做的事情包括: 修改 hotel 索引库结构,设置自定义拼音分词器 修改索引库的 name、all 字段,使用自定义分词器 索引库添加一个新字段 suggestion
因为需要根据拼音字母来推断,因此要用到拼音分词功能。 2.1.拼音分词器 要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。...测试用法如下: POST /_analyze { "text": "如家酒店还不错", "analyzer": "pinyin" } 结果: 2.2.自定义分词器 默认的拼音分词器会将每个汉字单独分为拼音...,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。...因此,总结一下,我们需要做的事情包括: 修改hotel索引库结构,设置自定义拼音分词器 修改索引库的name、all字段,使用自定义分词器 索引库添加一个新字段suggestion,类型为completion...; import java.util.Arrays; import java.util.Collections; import java.util.List; @Data @NoArgsConstructor
IK分词器的使用 首先我们通过Postman发送GET请求查询分词效果 GET http://localhost:9200/_analyze { "text":"农业银行" } 得到如下结果,可以发现...es的默认分词器无法识别中文中农业、银行这样的词汇,而是简单的将每个字拆完分为一个词,这显然不符合我们的使用要求。...3 } ] } 首先我们访问 https://github.com/medcl/elasticsearch-analysis-ik/releases 下载与es对应版本的中文分词器...DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> IK Analyzer...-- words_location --> 再次查询发现es的分词器可以识别到弗雷尔卓德词汇
安装到最后发现装不上 sudo apt-get update sudo apt-get upgrade sudo apt-get install -f 搜狗拼音就自动被 apt-get install...-f 装上了 ---- 设置英语为默认输入语言 桌面右上角拼音图标 –> 设置 –> 高级(D) –> 打开Fcitx设置 : 将里面的 Keyboard-English(US) 调到 Sogou Pinyin
https://github.com/medcl/elasticsearch-analysis-ik/releases
最近项目上遇到一个需求:模糊搜索姓名时既可以输入汉字也可以输入拼音进行搜索,这就要求在保存姓名时也要将其拼音保存起来。 好了,废话不说了,直接上代码!
后端实现: 最开始选择pinyin4j来实现,但发现对多音字的处理不太友好,比如需要转重庆的拼音(可以看到结果并不是我们想要的): 解决方法就需要自己定义多音字字典来实现,解析这个文件优先从这个文件中获取拼音...version>portable-1.8.3复制代码在项目中定义一个工具类:public class PinyinUtil { /** * 获取中文完整拼音...pinyin.getPinyinWithoutTone()); } return stringBuilder.toString(); } /** * 获取中文拼音首字母
把可能的列出来就可以了,因此正则表达式这样写: [āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡa-zA-ZA-Za-z\\s∥-]+ 在c#中...
Successfully built 8c9220f304be Successfully tagged elasticsearch-ik-pinyin:5.6.9 创建容器 docker run -e ES_JAVA_OPTS...:9300 -e "discovery.type=single-node" --name elasticsearch_test elasticsearch-ik-pinyin:5.6.9 -e ES_JAVA_OPTS...elasticsearch 启动的内存大小,默认是系统一半内存 -e discovery.type 是设置为单节点 elasticsearch-ik-pinyin:5.6.9 就是构建镜像的镜像名和版本号 测试分词 测试拼音..."end_offset":9, "type":"CN_WORD", "position":9 } ] } 注:不管是拼音分词器还是...IK分词器,当深入搜索一条数据是时,必须是通过分词器分析的数据,才能被搜索到,否则搜索不到 IK分词和拼音分词的组合使用 PUT /my_index { "settings": {
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170079.html原文链接:https://javaforall.cn
本文主要介绍如何通过 IK 分词器进行词频统计。 使用分词器对文章的词频进行统计,主要目的是实现如下图所示的词云功能,可以找到文章内的重点词汇。...,黑名单,同义词等 现存的中文分词器有 IK、HanLP、jieba 和 NLPIR 等几种,不同分词器各有特点,本文使用 IK 实现,因为 ES 一般使用 medcl 等大佬封装的 IK 分词器插件作为中文分词器...由于 ES 的 IK 分词器插件深度结合了 ES,仅对文本分词使用不到 ES 的内容,所以文本采用申艳超大佬版本的 IK。...M 个数字获取 TopN 有以下算法: M 小 N 小:快速选择算法 M 大 N 小:小顶堆 M 大 N 大:归并排序 本文采用小顶堆方式实现,对应JAVA中的优先队列数据结构 PriorityQueue...但是功能比较基础,感兴趣的同学可以实现一下词排序方式变更(tf/idf)、词性标注、实体识别和情感分析等功能;IK 分词器较为局限,需要使用 HanLP(自带词性标注)等更高级的分词器以及 NLP 相关知识来辅助
com.github.stuxuhai.jpinyin.PinyinHelper; public class ChangeToPinYinJP { /** * 转换为有声调的拼音字符串...* @param pinYinStr 汉字 * @return 有声调的拼音字符串 */ public String changeToMarkPinYin(String...e.printStackTrace(); } return tempStr; } /** * 转换为不带音调的拼音字符串...* @param pinYinStr 需转换的汉字 * @return 拼音字符串 */ public String changeToTonePinYin(String...* @param pinYinStr 需转换的汉字 * @return 拼音字符串 */ public String changeToGetShortPinYin
领取专属 10元无门槛券
手把手带您无忧上云