共計 4560 個字符,預計需要花費 12 分鐘才能閱讀完成。
本篇內容主要講解“pyhanlp 拼音轉換與字符正則化”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“pyhanlp 拼音轉換與字符正則化”吧!
《漢字轉拼音與簡繁轉換的 Java 實現》
from pyhanlp import *
# 繁簡轉化
print(HanLP.convertToTraditionalChinese(“以后等你當上皇后,就能買草莓慶祝了”。發現一根白頭發))
print(HanLP.convertToSimplifiedChinese( 憑藉筆記簿型電腦寫程式 HanLP))
# 簡體轉臺灣繁體
print(HanLP.s2tw( hankcs 在臺灣寫代碼))
# 臺灣繁體轉簡體
print(HanLP.tw2s( hankcs 在臺灣寫程式碼))
# 簡體轉香港繁體
print(HanLP.s2hk( hankcs 在香港寫代碼))
# 香港繁體轉簡體
print(HanLP.hk2s( hankcs 在香港寫代碼))
# 香港繁體轉臺灣繁體
print(HanLP.hk2tw( hankcs 在臺灣寫代碼))
# 臺灣繁體轉香港繁體
print(HanLP.tw2hk( hankcs 在香港寫程式碼))
# 香港 / 臺灣繁體和 HanLP 標準繁體的互轉
print(HanLP.t2tw( hankcs 在臺灣寫代碼))
print(HanLP.t2hk( hankcs 在臺灣寫代碼))
print(HanLP.tw2t( hankcs 在臺灣寫程式碼))
print(HanLP.hk2t( hankcs 在臺灣寫代碼))
「以後等你當上皇后,就能買草莓慶祝了」。發現一根白頭髮
憑借筆記本電腦寫程序 HanLP
hankcs 在臺灣寫程式碼
hankcs 在臺灣寫代碼
hankcs 在香港寫代碼
hankcs 在香港寫代碼
hankcs 在臺灣寫程式碼
hankcs 在香港寫代碼
hankcs 在臺灣寫程式碼
hankcs 在臺灣寫代碼
hankcs 在臺灣寫代碼
hankcs 在臺灣寫代碼
漢字轉拼音
HanLP 中的漢字轉拼音功能也十分的強大。
說明
HanLP 不僅支持基礎的漢字轉拼音,還支持聲母、韻母、音調、音標和輸入法首字母首聲母功能。
HanLP 能夠識別多音字,也能給繁體中文注拼音。
最重要的是,HanLP 采用的模式匹配升級到 AhoCorasickDoubleArrayTrie,性能大幅提升,能夠提供毫秒級的響應速度!
算法詳解
《漢字轉拼音與簡繁轉換的 Java 實現》
# 漢字轉拼音
Pinyin = JClass(com.hankcs.hanlp.dictionary.py.Pinyin)
text = 重載不是重任!
pinyin_list = HanLP.convertToPinyinList(text)
print(原文,, end=)
print(text)
print(拼音(數字音調),, end=)
print(pinyin_list)
print(拼音(符號音調),, end=)
for pinyin in pinyin_list:
print(%s, % pinyin.getPinyinWithToneMark(), end= )
print(\n 拼音(無音調),, end=)
for pinyin in pinyin_list:
print(%s, % pinyin.getPinyinWithoutTone(), end= )
print(\n 聲調,, end=)
for pinyin in pinyin_list:
print(%s, % pinyin.getTone(), end= )
print(\n 聲母,, end=)
for pinyin in pinyin_list:
print(%s, % pinyin.getShengmu(), end= )
print(\n 韻母,, end=)
for pinyin in pinyin_list:
print(%s, % pinyin.getYunmu(), end= )
print(\n 輸入法頭,, end=)
for pinyin in pinyin_list:
print(%s, % pinyin.getHead(), end= )
print()
# 拼音轉換可選保留無拼音的原字符
print(HanLP.convertToPinyinString( 截至 2012 年,, , True))
print(HanLP.convertToPinyinString( 截至 2012 年,, , False))
原文,重載不是重任!
拼音(數字音調),[chong2, zai3, bu2, shi4, zhong4, ren4, none5]
拼音(符號音調),chóng, zǎi, bú, shì, zhòng, rèn, none,
拼音(無音調),chong, zai, bu, shi, zhong, ren, none,
聲調,2, 3, 2, 4, 4, 4, 5,
聲母,ch, z, b, sh, zh, r, none,
韻母,ong, ai, u, i, ong, en, none,
輸入法頭,ch, z, b, sh, zh, r, none,
jie zhi none none none none nian none
jie zhi 2 0 1 2 nian,
拼音轉中文
HanLP 中的數據結構和接口是靈活的,組合這些接口,可以自己創造新功能,我們可以使用 AhoCorasickDoubleArrayTrie 實現的最長分詞器,需要用戶調用 setTrie() 提供一個 AhoCorasickDoubleArrayTrie
StringDictionary = JClass(
com.hankcs.hanlp.corpus.dictionary.StringDictionary )
CommonAhoCorasickDoubleArrayTrieSegment = JClass(
com.hankcs.hanlp.seg.Other.CommonAhoCorasickDoubleArrayTrieSegment )
Config = JClass(com.hankcs.hanlp.HanLP$Config)
TreeMap = JClass(java.util.TreeMap)
TreeSet = JClass(java.util.TreeSet)
dictionary = StringDictionary()
dictionary.load(Config.PinyinDictionaryPath)
entry = {}
m_map = TreeMap()
for entry in dictionary.entrySet():
pinyins = entry.getValue().replace( [\\d,] , )
words = m_map.get(pinyins)
if words is None:
words = TreeSet()
m_map.put(pinyins, words)
words.add(entry.getKey())
words = TreeSet()
words.add(綠色)
words.add(濾色)
m_map.put(lvse , words)
segment = CommonAhoCorasickDoubleArrayTrieSegment(m_map)
print(segment.segment( renmenrenweiyalujiangbujianlvse))
print(segment.segment( lvsehaihaodajiadongxidayinji))
[renmenrenweiyalujiangbujian/null, lvse/[ 濾色, 綠色]][lvse/[ 濾色, 綠色], haihaodajiadongxidayinji/null]
字符正則化
演示正規化字符配置項的效果(繁體 - 簡體,全角 - 半角,大寫 - 小寫)。
該配置項位于 hanlp.properties 中,通過 Normalization=true 來開啟(現在直接通過 HanLP.Config.Normalization 開啟即可)。
切換配置后必須刪除 CustomDictionary.txt.bin 緩存,否則只影響動態插入的新詞。
在我動筆前一個星期,已經有同學添加了,添加自定義詞典之后,自動刪除緩存的功能。地址請點擊 https://github.com/hankcs/HanLP/pull/954,現在只需要開啟正則化即可
CustomDictionary =JClass(com.hankcs.hanlp.dictionary.CustomDictionary)
print(HanLP.Config.Normalization = False\n)
HanLP.Config.Normalization = False
CustomDictionary.insert(愛聽 4G , nz 1000)
print(HanLP.segment( 愛聽 4g))
print(HanLP.segment( 愛聽 4G))
print(HanLP.segment( 愛聽4G))
print(HanLP.segment( 愛聽4G))
print(HanLP.segment( 愛聽4G))
print(HanLP.segment( 喜歡4G))
print(HanLP.segment( hankcs 在臺灣寫代碼))
print(\nHanLP.Config.Normalization = True\n)
HanLP.Config.Normalization = True
print(HanLP.segment( 愛聽 4g))
print(HanLP.segment( 愛聽 4G))
print(HanLP.segment( 愛聽4G))
print(HanLP.segment( 愛聽4G))
print(HanLP.segment( 愛聽4G))
print(HanLP.segment( 喜歡4G))
print(HanLP.segment( hankcs 在臺灣寫代碼))
HanLP.Config.ShowTermNature = False
text = HanLP.s2tw(現在的 HanLP 已經添加了添加自定義詞典之后,自動刪除緩存的功能, 現在只需要開啟正則化即可)
print(text)
print(HanLP.segment(text))
HanLP.Config.ShowTermNature = False
HanLP.Config.Normalization = False
[愛聽 4g][愛聽 4G][愛, 聽, 4, G][愛, 聽, 4, G][愛, 聽, 4, G][喜歡, 4, G][hankcs, 在, 臺, 灣寫, 代, 碼]
HanLP.Config.Normalization = True
[愛聽 4g][愛聽 4g][愛聽 4g][愛聽 4g][愛聽 4g][喜歡, 4, g][hankcs, 在, 臺灣, 寫, 代碼]
現在的 HanLP 已經新增了新增自定義詞典之後,自動刪除快取的功能, 現在只需要開啟正則化即可
[現在, 的, hanlp, 已經, 新增, 了, 新增, 自定義, 詞典, 之后, ,, 自動, 刪除, 快, 取, 的, 功能, ,, 現在, 只, 需要, 開啟, 正, 則, 化, 即可]
到此,相信大家對“pyhanlp 拼音轉換與字符正則化”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!