汉字转拼音java
HanLP中的汉字转拼音功能也十分的强大。git
说明:github
算法详解:算法
1.原文, 重载不是重任!缓存
2.拼音(数字音调), [chong2, zai3, bu2, shi4, zhong4, ren4, none5]数据结构
3.拼音(符号音调), chóng, zǎi, bú, shì, zhòng, rèn, none,性能
4.拼音(无音调), chong, zai, bu, shi, zhong, ren, none,orm
5.声调, 2, 3, 2, 4, 4, 4, 5,接口
6.声母, ch, z, b, sh, zh, r, none,get
7.韵母, ong, ai, u, i, ong, en, none,
8.输入法头, ch, z, b, sh, zh, r, none,
9.jie zhi none none none none nian none
10.jie zhi 2 0 1 2 nian ,
拼音转中文
HanLP中的数据结构和接口是灵活的,组合这些接口,能够本身创造新功能,咱们能够使用AhoCorasickDoubleArrayTrie实现的最长分词器,须要用户调用setTrie()提供一个AhoCorasickDoubleArrayTrie
1.StringDictionary = JClass(
2."com.hankcs.hanlp.corpus.dictionary.StringDictionary")
3.CommonAhoCorasickDoubleArrayTrieSegment = JClass(
4."com.hankcs.hanlp.seg.Other.CommonAhoCorasickDoubleArrayTrieSegment")
5.Config = JClass("com.hankcs.hanlp.HanLP$Config")
6.
7.TreeMap = JClass("java.util.TreeMap")
8.TreeSet = JClass("java.util.TreeSet")
9.
10.dictionary = StringDictionary()
11.dictionary.load(Config.PinyinDictionaryPath)
12.entry = {}
13.m_map = TreeMap()
14.for entry in dictionary.entrySet():
15.pinyins = entry.getValue().replace("[\\d,]", "")
16.words = m_map.get(pinyins)
17.if words is None:
18.words = TreeSet()
19.m_map.put(pinyins, words)
20.words.add(entry.getKey())
21.words = TreeSet()
22.words.add("绿色")
23.words.add("滤色")
24.m_map.put("lvse", words)
25.
26.segment = CommonAhoCorasickDoubleArrayTrieSegment(m_map)
27.print(segment.segment("renmenrenweiyalujiangbujianlvse"))
28.print(segment.segment("lvsehaihaodajiadongxidayinji"))
1.[renmenrenweiyalujiangbujian/null, lvse/[滤色, 绿色]]
2.[lvse/[滤色, 绿色], haihaodajiadongxidayinji/null]
字符正则化
演示正规化字符配置项的效果(繁体->简体,全角->半角,大写->小写)。
该配置项位于hanlp.properties中,经过Normalization=true来开启(如今直接经过HanLP.Config.Normalization开启便可)。
切换配置后必须删除CustomDictionary.txt.bin缓存,不然只影响动态插入的新词。
在我动笔前一个星期,已经有同窗添加了,添加自定义词典以后,自动删除缓存的功能。地址请参阅github.com/hankcs/HanLP/pull/954,如今只须要开启正则化便可
1.CustomDictionary =JClass("com.hankcs.hanlp.dictionary.CustomDictionary")
2.print("HanLP.Config.Normalization = False\n")
3.HanLP.Config.Normalization = False
4.CustomDictionary.insert("爱听4G", "nz 1000")
5.print(HanLP.segment("爱听4g"))
6.print(HanLP.segment("爱听4G"))
7.print(HanLP.segment("爱听4G"))
8.print(HanLP.segment("爱听4G"))
9.print(HanLP.segment("愛聽4G"))
10.
11.print(HanLP.segment("喜欢4G"))
12.print(HanLP.segment("hankcs在臺灣寫代碼"))
13.
14.print("\nHanLP.Config.Normalization = True\n")
15.HanLP.Config.Normalization = True
16.print(HanLP.segment("爱听4g"))
17.print(HanLP.segment("爱听4G"))
18.print(HanLP.segment("爱听4G"))
19.print(HanLP.segment("爱听4G"))
20.print(HanLP.segment("愛聽4G"))
21.
22.print(HanLP.segment("喜欢4G"))
23.print(HanLP.segment("hankcs在臺灣寫代碼"))
24.
25.HanLP.Config.ShowTermNature = False
27.text = HanLP.s2tw("如今的HanLP已经添加了添加自定义词典以后,自动删除缓存的功能,如今只须要开启正则化便可")
28.print(text)
29.print(HanLP.segment(text))
30.HanLP.Config.ShowTermNature = False
1.HanLP.Config.Normalization = False
2.
3.[爱听4g]
4.[爱听4G]
5.[爱, 听, 4, G]
6.[爱, 听, 4, G]
7.[愛, 聽, 4, G]
8.[喜欢, 4, G]
9.[hankcs, 在, 臺, 灣寫, 代, 碼]
10.
11.HanLP.Config.Normalization = True
12.
13.[爱听4g]
14.[爱听4g]
15.[爱听4g]
16.[爱听4g]
17.[爱听4g]
18.[喜欢, 4, g]
19.[hankcs, 在, 台湾, 写, 代码]
20.現在的HanLP已經新增了新增自定義詞典之後,自動刪除快取的功能,現在只须要開啟正則化便可
21.[如今, 的, hanlp, 已经, 新增, 了, 新增, 自定义, 词典, 以后, ,, 自动, 删除, 快, 取, 的
---------------------