繁简转换

HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合。这里我们不再做过多描述。

  • 说明

    • HanLP能够识别简繁分歧词,比如打印机=印表機。许多简繁转换工具不能区分“以后”“皇后”中的两个“后”字,HanLP可以。
  • 算法详解
    • 《汉字转拼音与简繁转换的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 繁简转换,拼音转换与字符正则化相关推荐

  1. pyhanlp 繁简转换之拼音转换与字符正则化

    繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合.这里我们不再做过多描述. ·说明 · Han ...

  2. java输出中文变火星文怎么办,繁/简/火星文转换示例代码

    package api.jisuapi.fontconvert; import java.net.URLEncoder; import api.util.HttpUtil; import net.sf ...

  3. 拼音转换---Python自然语言处理(6)

    目录 什么是拼音转换 拼音转换 输出音调 输出声调 输出声母 输出韵母 处理数字拼音 什么是拼音转换 在我们学习语言之前,我们一般会学习拼音来认识汉字,并学会如何读汉字.所以,拼音在对于我们语言的重要 ...

  4. java 中文分词转拼音_pyhanlp 繁简转换之拼音转换与字符正则化

    繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合.这里我们不再做过多描述. ·说明 · Han ...

  5. 汉语言处理工具pyhanlp的拼音转换与字符正则化

    汉字转拼音 HanLP中的汉字转拼音功能也十分的强大. 说明: HanLP不仅支持基础的汉字转拼音,还支持声母.韵母.音调.音标和输入法首字母首声母功能. HanLP能够识别多音字,也能给繁体中文注拼 ...

  6. 汉语言处理工具pyhanlp的拼音转换与字符正则化 1

    汉字转拼音 HanLP中的汉字转拼音功能也十分的强大. 说明: l HanLP不仅支持基础的汉字转拼音,还支持声母.韵母.音调.音标和输入法首字母首声母功能. l HanLP能够识别多音字,也能给 ...

  7. 汉语言处理工具pyhanlp的简繁转换

    繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合.这里我们不再做过多描述. 说明: ·HanL ...

  8. 汉字拼音首字母 简繁体等转换

    汉字转拼音,汉字转首字母,这个问题在网上搜索了N多资料,发现没有一个可以做到毫不问题的转换,总是存在生僻字以及多音字转换失败等等问题. 第一部分介绍的是网上一个朋友的方案.这是微软官方的一个类库,但是 ...

  9. 使用.NET进行中文繁简转换的两种方法

    方法一:调用VB.NET的类库. 引用Microsoft.VisualBasic.dll. 中文繁体 = Microsoft.VisualBasic.Strings.StrConv(中文简体,  Mi ...

  10. 用ASP实现简单的繁简转换

    用ASP实现简单的繁简转换 国际化似乎是一个很流行的口号了,一个站点没有英文版至少也要弄个繁体版,毕竟都是汉字,翻译起来不会那么麻烦:P 一般的繁简转换是使用字典,通过GB的内码算出BIG5字符在字典 ...

最新文章

  1. 远程连接docker中的mysql容器_docker构建mysql容器及Navicat 远程连接
  2. 剑指offer:反转链表 python实现
  3. 一道异常处理执行顺序面试题的简单分析
  4. C#语法基础之第三节
  5. 微软企业级加解密解决方案MBAM架构
  6. Python算法(含源代码下载)
  7. C程序设计语言现代方法17:指针的高级应用
  8. 【状压DP】易懂讲解状态压缩/状态压缩DP
  9. 微信表情商店视频动态暂停使用 6日恢复
  10. 疏忽导致易接SDK OpenGL error
  11. android手机界面分区,Android手机fastboot 刷机命令(示例代码)
  12. 反病毒引擎设计(一):绪论 本文来自:剑盟反病毒技术门户(www.janmeng.com)
  13. A - Round decimals
  14. mysql数据库test密码_TestCenter常见问题
  15. [ Node | koa2 ] 喜马拉雅JSSDK签名服务
  16. freemarker导出Word文档并在其中插入图片
  17. 2.5.3 文法二义性的消除
  18. Samsung Electronics (三星电子)
  19. C语言之用循环来打印各种各样的图案
  20. 猪皮做成眼角膜为盲人恢复视力,不用等人捐献了

热门文章

  1. 微信图片怎么添加竖排文字_微信图文排版怎么在图片上加文字?
  2. python之turtle使用:画一颗美美哒的树
  3. 计算机科学与技术民办大学排名,计算机科学与技术专业排名:这95所大学实力很强,包括公办、民办和中外合办院校...
  4. Spatial Transformer Networks(STN)-代码实现
  5. 用银行卡号查相应的归属银行,卡种类
  6. 计算机内存改成多少合适,32g内存需要设置虚拟内存吗?32g内存虚拟内存设置多少合适...
  7. Visio画UML用例图
  8. 买服务器上国外网站,国外服务器怎么买?
  9. python做一段有意思的代码_Python爬虫入门有意思的小长代码
  10. 知道为什么HTML页面在电脑上和手机上的布局不同吗?这篇文章带你走进Element UI的简单适配