ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

3 分钟入门 Python 汉字拆解库 hanzi_chaizi:把任意汉字拆成偏旁部件

3 分钟入门 Python 汉字拆解库 hanzi_chaizi:把任意汉字拆成偏旁部件 3 分钟入门 Python 汉字拆解库 hanzi_chaizi把任意汉字拆成偏旁部件【免费下载链接】hanzi_chaizi汉字拆字库可以将汉字拆解成偏旁部首在机器学习中作为汉字的字形特征 | Hanzi Decomposition Library allows Chinese characters to be broken down into radicals and components, which can be used as character shape features in machine learning.项目地址: https://gitcode.com/gh_mirrors/ha/hanzi_chaizi很多人第一次接触 hanzi_chaizi都会被它的朴素打动这是一个纯粹的 Python 汉字拆解库安装、导入、查询三步完成把一个汉字拆成一组偏旁部件。无论你是想弄懂「汉字拆解」的底层逻辑还是要为机器学习模型补充字形特征它都能在毫秒级给出答案。本文不聊空泛的概念直接用代码带你走完从单字到整段文本的完整流程。一个解字引发的疑问先看一个字解。为什么它长成角 刀 牛古人造字的思路很直白——用刀把牛角剖开就是解开的本义。字形本身就在描述一次拆解的动作。推而广之汉字里藏着大量这样的结构信息明 日 月日月同辉光线充足好 女 子两性相谐笨 竹 本竹子的根部引申为不灵巧看懂结构比死记笔画高效得多。但问题来了两万多个常用字谁能一个一个拆如果有一个程序能替我们输出任意汉字的部件清单学习、教学、研究不就都省力了吗hanzi_chaizi 就是为这个念头而生的。它是什么一句话说清 30 秒装好用大白话定义hanzi_chaizi 是一个 Python 汉字拆字工具输入一个字返回它的偏旁部件列表。它的几个硬指标值得先记住覆盖20,000个汉字拆解数据来自权威的漢語拆字字典零第三方依赖纯 Python 实现装上就能跑数据一次性载入内存查询响应在毫秒级安装只需要一条命令pip install hanzi_chaizi装完立刻能验证效果from hanzi_chaizi import HanziChaizi # 创建拆字实例数据在初始化时全部载入 tool HanziChaizi() print(tool.query(明)) # 输出 [日, 月] print(tool.query(好)) # 输出 [女, 子]从导入到出结果前后不到十行代码。这就是一个库该有的样子。拆字引擎的大脑一份提前备好的部件清单hanzi_chaizi 凭什么拆得又快又准类比一下它不是现场看图识字而是像拿着一本预制好的 X 光片册——每个字该是什么结构早在编译阶段就整理成册查询只是翻页。这份X 光片册的来路很清晰数据源自 GitHub 上的漢語拆字字典kfcd/chaizi采用CC BY 3.0许可原始语料经过脚本解析打包成hanzi_chaizi/data/data.pkl文件pickle 格式结构就是一个普通字典字典的样子非常直观{ 明: [[日, 月]], 好: [[女, 子]], 名: [[夕, 口]] }query()做的事情其实只有两步到字典里按字取键再返回第一个拆解方案。因为所有数据都常驻内存所以查询本质是一次字典查找速度自然快得没话说——这也是它适合做深度学习字形特征的底气所在。动手实战从拆一个明到拆整段文章单字查询只是热身。真实场景里我们面对的多是一整段文本。下面这段代码演示了批量处理把每个字都拆一遍查不到的字比如标点用原字符兜底不让流程中断。def batch_decompose(text, tool): 把一段文本的每个字都拆成部件 result {} for char in text: # 查不到时返回原字符避免 None 混入结果 result[char] tool.query(char, default[char]) return result tool HanziChaizi() sentence 汉字拆解让学习变得简单 for char, parts in batch_decompose(sentence, tool).items(): print(char, -, parts)跑起来之后你会看到类似汉 - [水, 又]、字 - [宀, 子]这样的逐字输出。整套流程没有引入任何第三方库注释也只解释做什么不解释怎么做新手照着抄就能用。四个典型用户四种打开方式同样是拆字不同角色能拆出不同价值。汉语学习者把赢拆成亡、口、月、贝、凡五个部件后这个笔画繁多的字瞬间变得有章可循记忆负担直线下降。语文与对外汉语教师课堂讲结构时不再靠口述。现场输入一个字部件清单立刻上屏学生看到懂 心 董比听十遍解释更直观。NLP 与深度学习研究者汉字字形特征一直是模型的富矿。把每个字换成部件序列相似结构会得到相似表示直接作为下游模型的输入特征。class GlyphEncoder: 把字形拆解结果拼成特征串 def __init__(self): self.tool HanziChaizi() def encode(self, text): return [.join(self.tool.query(c, default[c])) for c in text] encoder GlyphEncoder() print(encoder.encode(人工智能)) # 每个字变成一段部件拼串字体设计与艺术创作者拆解结果天然就是一份结构灵感库部件的组合方式可以直接迁移到字体设计和创意排版里。避坑指南三个高频疑问一次说清用着用着你大概率会遇到下面三个问题这里提前给你答案。问拆出来的结果里有个怪字符\uf7ee是 bug 吗不是。它是 Unicode 私有区域字符专门用来表示**衣字下半部分的撇捺结构**——这个部件在标准 Unicode 里没有独立编码。你会在农、表、衣、囊这类字的拆解结果里看到它。问有些字怎么拆都拆不动正常现象。像一、民、马、木这类本身就是基础部件的字没有再拆的必要。项目贴心地在non_decomposable.txt里列全了这些不可再拆的字遇到时直接查这份清单即可。问输入了一个库里没有的字符返回了 None怎么处理用query()的default参数兜底。按业务需要传回原字符、空列表或占位符保证下游流程不出错。参与进来开发、改数据、引用这个项目不是装完即走的封闭工具它欢迎一切形式的共建。想二次开发仓库提供了成套的工程化命令make dev # 安装开发依赖 make test # 跑测试 make format # 统一代码风格 make dist # 构建发布包想扩充数据原始语料都在raw_data/目录下分为繁体chaizi-ft.txt和简体chaizi-jt.txt两个版本。改完数据用一条命令重新生成data.pkluv run python raw_data/parse.py想克隆源码动手改直接拉取即可git clone https://gitcode.com/gh_mirrors/ha/hanzi_chaizi学术研究中使用官方提供了标准的引用格式misc{kong2018hanzichaizi, title{Hanzi Chaizi}, author{Xiaoquan Kong}, howpublished{https://github.com/howl-anderson/hanzi_chaizi}, year{2018} }写在最后三步行动清单汉字拆解的价值不在拆这个动作本身而在于拆完之后结构信息可以被学习、被教学、被建模、被再创作。hanzi_chaizi 把这件事的成本压到了近乎为零。别让汉字停留在认得出的层面试着去看得透它。现在就可以动手执行pip install hanzi_chaizi装上这个 Python 汉字拆解库跑通query()亲手拆一个解、一个赢试着用batch_decompose处理一段你感兴趣的文本或者去扩充你常用的字库理解汉字的结构是通往中文世界的一扇门。hanzi_chaizi 帮你把这扇门推开剩下的探索交给你的好奇心。【免费下载链接】hanzi_chaizi汉字拆字库可以将汉字拆解成偏旁部首在机器学习中作为汉字的字形特征 | Hanzi Decomposition Library allows Chinese characters to be broken down into radicals and components, which can be used as character shape features in machine learning.项目地址: https://gitcode.com/gh_mirrors/ha/hanzi_chaizi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表