3 分钟入门 Python 汉字拆解库 hanzi_chaizi:把任意汉字拆成偏旁部件
2026/8/20 14:55:13 网站建设 项目流程

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.pkl

uv 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 把这件事的成本压到了近乎为零。

别让汉字停留在"认得出"的层面,试着去"看得透"它。

现在就可以动手:

  1. 执行pip install hanzi_chaizi,装上这个 Python 汉字拆解库
  2. 跑通query(),亲手拆一个"解"、一个"赢"
  3. 试着用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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询