编写cnchar-draw的demo批量识别笔画
1. 先进入makemeahanzi/中,运行generate_words.py生成svg_words.txt,然后将生成的svg_words.txt复制到cnchar/npm/中去
2. 再安装一个Node.js的环境,参照下面的博客,有报错直接根据报的错补装一些东西即可
3. 配置cnchar-draw的环境
下载好cnchar,将要运行的demo脚本放在./cnchar/npm下,然后在当前位置打开终端$ node loadtxt.js运行就行了,之后会生成outputs.txt,每一行记录了 "汉字 笔画序列"
var cnchar = require('./cnchar/index');
var poly = require('./poly/index');
var order = require('./order/index');
var trad = require('./trad/index');
cnchar.use(order, trad, poly);
var fs = require("fs");
var readLine = require("readline");
// SVG中的有一些字cnchar是不能进行笔画解析的,这些字直接去掉就行了
function readFileToArr(fileName, callback) {
var arr = [];
var readObj = readLine.createInterface({
input: fs.createReadStream(fileName)
});
// 一行一行地读取文件
readObj.on('line', function (line) {
console.log(cnchar.stroke(line, 'order', 'shape'));
arr.push(line + " " + cnchar.stroke(line, 'order', 'shape'));
});
// 读取完成后,将arr作为参数传给回调函数
readObj.on('close', function () {
callback(arr);
});
}
// 读取数据后,处理完成后放入outpu.txt
readFileToArr('./words.txt', function (arr) {
// 通过回调得到的,按行获得的数据
console.log(arr);
var tempArr = [];
arr.forEach((ele) => {
tempArr.push(ele);
});
fs.writeFile('./outputs.txt', tempArr.join("\n"),
function (err) {
if (err) throw err;
});
});
相关github: