news 2026/5/15 22:51:36

使用 cnchar 生成汉字拼音、笔画、组词数据(Node.js 实战教程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 cnchar 生成汉字拼音、笔画、组词数据(Node.js 实战教程)

一、使用场景

在汉字学习、识字类项目中,通常需要提前生成:

  • 汉字
  • 拼音(带声调)
  • 笔画数
  • 笔画类型(横竖撇捺等)
  • 常见组词

本文使用Node.js + cnchar生成 JSON 数据,供后端直接导入数据库使用。


二、安装依赖

npminstallcnchar cnchar-order cnchar-poly cnchar-words cnchar-voice

三、生成脚本

generate_char_data1.js

// generate_char_data_for_execjs.js// Node ESM / execjs / cnchar// 生成:拼音 / 笔画数 / 笔画名 / 原始笔画数据importcncharfrom'cnchar';importorderfrom'cnchar-order';importpolyfrom'cnchar-poly';importwordsfrom'cnchar-words';importvoicefrom'cnchar-voice';importfsfrom'fs';// =======================// 1️ 注册插件// =======================cnchar.use(order,poly,words,voice);// =======================// 2️ 获取单字数据// =======================functiongetCharacterData(char){try{// 拼音constspell=cnchar.spell(char,'tone');constpinyin=Array.isArray(spell)?spell.join(' / '):spell||'';// 笔画数conststrokeCount=cnchar.stroke(char)||1;// 笔画名称(标准)conststrokeNameList=cnchar.stroke(char,'order','name');conststrokeNames=Array.isArray(strokeNameList)?strokeNameList.join(','):'';// ⭐ 原始笔画(detail 模式)conststrokeDetailList=cnchar.stroke(char,'order','detail');conststrokesRaw=cnchar.stroke(char,'order','shape')// 组词constwordList=cnchar.words(char);constwordsStr=Array.isArray(wordList)?wordList.slice(0,8).join(','):'';return{character:char,pinyin,stroke_count:strokeCount,stroke_names:strokeNames,strokes_raw:strokesRaw,// 新增字段words:wordsStr};}catch(err){return{character:char,pinyin:'',stroke_count:1,stroke_names:'',strokes_raw:[],words:''};}}// =======================// 3️Node 直接运行示例// =======================if(process.argv[1]&&process.argv[1].includes('generate_char_data')){constchars=['一','人','好','学','你','我'];constdata=chars.map(getCharacterData);fs.writeFileSync('./char_data.json',JSON.stringify({generated_at:newDate().toISOString(),total:data.length,characters:data},null,2),'utf-8');console.log(' 已生成 char_data.json(含原始笔画)');}// =======================// 4️ execjs 导出// =======================export{getCharacterData};

四、运行脚本

nodegenerate_char_data1.js

生成文件:

generated_characters.json

五、生成结果示例

{"generated_at":"2025-12-27T02:47:57.131Z","total":6,"characters":[{"character":"一","pinyin":"Yī","stroke_count":1,"stroke_names":"横","strokes_raw":[["一"]],"words":"八一,八一队,不一,不一定,创一流,初一,单一,第一"},{"character":"人","pinyin":"Rén","stroke_count":2,"stroke_names":"撇,捺","strokes_raw":[["丿","㇏"]],"words":"爱人,爱人民,保护人,被告人,北京人,本人,辩护人,别人"},{"character":"好","pinyin":"Hǎo","stroke_count":6,"stroke_names":"撇点,撇,横,横撇|横钩,竖钩,横","strokes_raw":[["𡿨","丿","一","㇇|乛","亅","一"]],"words":"爱好,爱好者,办好,备好,变好,不好,大好,打好"},{"character":"学","pinyin":"Xué","stroke_count":8,"stroke_names":"点,点,撇,点2,横撇|横钩,横撇|横钩,竖钩,横","strokes_raw":[["丶","丶","丿","㇀","㇇|乛","㇇|乛","亅","一"]],"words":"爱科学,爱学习,办学,博学,不科学,才学,辍学,初学"},{"character":"你","pinyin":"Nǐ","stroke_count":7,"stroke_names":"撇,竖,撇,横撇|横钩,竖钩,撇,点","strokes_raw":[["丿","丨","丿","㇇|乛","亅","丿","丶"]],"words":"你的,你好,迷你,你们,你我"},{"character":"我","pinyin":"Wǒ","stroke_count":7,"stroke_names":"撇,横,竖钩,提,斜钩|卧钩,撇,点","strokes_raw":[["丿","一","亅","㇀","㇂|㇃","丿","丶"]],"words":"你我,忘我,我厂,我处,我方,我国,我局,我军"}]}

六、注意事项(重要)

  • stroke_count可靠
  • stroke_names仅用于基础展示
  • 教学级笔顺 / 动画建议前端使用HanziWriter
  • 不推荐在 Django / Java 中直接计算笔画

七、总结

  • cnchar 适合数据预生成
  • Node.js 非常适合做汉字数据工具脚本
  • 后端只负责存储,前端负责交互与动画
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 16:32:42

揭秘Open-AutoGLM底层架构:如何安全高效修改关键模块?

第一章:揭秘Open-AutoGLM的核心设计哲学Open-AutoGLM 作为新一代开源自动化语言模型框架,其设计哲学根植于“透明、可扩展、以人为本”的三大核心原则。该框架旨在打破传统闭源模型的黑盒限制,赋予开发者对模型行为的完全掌控力,同…

作者头像 李华
网站建设 2026/5/3 6:27:50

专科生必看!10个降AIGC工具推荐,高效避坑指南

专科生必看!10个降AIGC工具推荐,高效避坑指南 AI降重工具的崛起,为论文写作带来新可能 随着人工智能技术的不断发展,越来越多的学术研究者和学生开始关注如何有效降低论文中的AIGC率,避免被系统误判为AI生成内容。对于…

作者头像 李华
网站建设 2026/5/11 17:44:17

如何用TensorFlow处理不平衡分类问题?

如何用TensorFlow处理不平衡分类问题? 在金融风控系统中,每天数百万笔交易里可能只有寥寥几起是欺诈行为;在医疗影像诊断中,成千上万张CT扫描图中罕见的病灶样本屈指可数。这些场景都有一个共同点:少数类虽少&#xff…

作者头像 李华
网站建设 2026/5/12 0:22:12

大模型AI应用,正在企业级赛道迅猛爆发

不论是ChatGPT带动的第一波浪潮,还是DeepSeek之后更多中国大模型AI应用的涌现,从AI智能助手到AI陪伴应用,再到AI在各个领域的产品,应用层在全面爆发。 但实际上,还有另一个易于忽略却刚需明确、广受看好的赛道&#xf…

作者头像 李华
网站建设 2026/5/12 6:06:40

【工具】Drawnix 开源白板工具全面教程

Drawnix 开源白板工具全面教程 Drawnix 是一款开源、免费的一体化在线白板工具,集思维导图、流程图、自由绘画等多种功能于一体。其名称源于“绘画”(Draw)与“凤凰”(Phoenix),象征创意如同凤凰般浴火重生…

作者头像 李华
网站建设 2026/5/7 16:56:11

【工具】Excalidraw 完全指南:从涂鸦白板到高效协作引擎

Excalidraw 完全指南:从涂鸦白板到高效协作引擎 Excalidraw 是一款开源的虚拟手绘风格白板工具。它以极简主义美学、流畅的实时协作能力和高度开放的技术架构为核心,极大降低了绘图门槛,让任何人都能快速将思路转化为可视化表达。无论是绘制…

作者头像 李华