当前位置: 首页 > news >正文

使用 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 非常适合做汉字数据工具脚本
  • 后端只负责存储,前端负责交互与动画
http://www.gsyq.cn/news/163715.html

相关文章:

  • 【Java毕设全套源码+文档】基于springboot的校友录管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 电脑硬件检测工具箱,牛批了
  • AWS or 阿里云?一张表看懂安全责任与核心服务,附新手入门实操清单
  • 2025年智能升降窗制造商推荐:靠谱的智能升降窗供应商有哪些? - 工业品牌热点
  • 【Java毕设全套源码+文档】基于springboot的“课件通”中小学教学课件共享平台设计与实现(丰富项目+远程调试+讲解+定制)
  • 2025年钻探设备厂家推荐:专业钻探设备供应商有哪些? - 工业品网
  • 2025家居环保板材TOP5权威测评:天坛精板质量怎么样? - 工业设备
  • 【Java毕设源码分享】基于springboot+vue的学生报名管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 供水机组哪家强?头部企业品牌格局与实力厂商盘点(2025年) - 品牌推荐大师1
  • 【Java毕设源码分享】基于springboot+vue的“课件通”中小学教学课件共享平台的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 企业为何选择TensorFlow而非其他框架?三大核心优势
  • 从内核到API,全面守护Open-AutoGLM:构建零信任防护架构的实战路径
  • 【Open-AutoGLM权限申请全攻略】:手把手教你7步获取无障碍权限
  • 2025 最新!10个AI论文工具测评:本科生写论文必备清单
  • 为什么顶级团队都在用USB直连运行Open-AutoGLM?实测数据揭示传输延迟下降87%
  • 计算机毕业设计springboot基于移动互联网(android)的流浪动物领养系统的设计与实现 基于Spring Boot与Android的流浪动物领养平台开发与实践 Spring Boot驱动的移
  • Open-AutoGLM浏览器插件安装实战(从零到一键启用)
  • Open-AutoGLM 2.0部署实战(20年专家亲测方案):下载安装一步到位
  • 北京兰亭妙微:深耕UI/UX全流程,以大数据可视化与3D场景设计驱动数字体验升级
  • DESP拖链性价比怎样?品牌知名度高吗? - 工业品牌热点
  • 2025年保温砂浆生产线直销厂家权威推荐榜单:石膏砂浆设备/预拌砂浆设备/真石漆搅拌机源头厂家精选 - 品牌推荐官
  • 接口测试之如何划分接口文档
  • 【Open-AutoGLM黑科技解析】:3步实现手机全场景自动操作
  • obs采集卡录制回音问题
  • 好写作AI:突破写作瓶颈,AI工具如何激发学术创作灵感?
  • Vue中vuex状态管理mutations用法
  • 2025年成都川菜推荐排名:5家必吃江湖菜馆全解析,本地人私藏的美味清单 - 工业品网
  • Open-AutoGLM插件安装失败怎么办?,资深专家总结的6种解决方案
  • 2025年电动风阀厂家实力推荐榜:湖南联泰环境设备有限公司,电动/手动/风管风阀源头工厂全系供应 - 品牌推荐官
  • TensorFlow工业级应用案例全揭秘