漢字轉拼音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, 已經, 新增, 了, 新增, 自定義, 詞典, 以後, ,, 自動, 刪除, 快, 取, 的
---------------------