锁定老帖子 主题:中文手写输入 (一)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-06
最后修改:2008-12-06
先上个截图: 你可以在线测试: http://quake.3322.org/ 我最先google到一个开源的手写输入引擎是Tomoe: http://tomoe.sourceforge.jp,它包括识别引擎,整套的用户界面(GTK)以及SCIM的输入法模块,最初是只支持识别日文,在0.6.0版本red hat的工程师贡献了简体中文字典。因为在android系统上已经有很好的用户界面支持(触摸屏api),其实只需要一个识别引擎就可以了,Tomoe的代码太多,学习起来比较耗费时间。后来在Tomoe的邮件列表上发现了Zinnia: http://zinnia.sourceforge.net/,这个东西很小巧,也很有特色: 1. 基于SVM,识别率高 2. 基于C++标准库,容易移植 3. 提供线程安全库,C/C++/Perl/Ruby/Python容易调用 4. 训练速度和识别速度都很快,识别据说可以达到50~100字/秒 安装zinnia很简单,下载源代码以后解压缩编译安装即可: ./configure make sudo make install 因为我对ruby比较熟悉,顺便测试了一下它的ruby库调用,在zinnia源代码目录下面有个ruby目录,运行 ruby extconf.rb make sudo make install 就可以安装好它的ruby扩展库,如何调用代码可以看一下ruby目录下面的test.rb Zinnia通过解析用户输入的笔画顺序以及坐标,列出前N个最合适的文字,输入字符串包括画布宽度/高度以及坐标值,格式如下: (character (width canvas width) (height canvas height) (strokes ((0-th-stroke 0-th-strokey) ... (0-th-stroke 0-th-strokey)) ((1-th-stroke 0-th-strokey) ... (1-th-stroke 1-th-strokey)) ((2-th-stroke 2-th-strokey) ... (2-th-stroke 2-th-strokey)) ...)) 前面的demo是抄袭一个基于ajax的日文手写输入Demo:http://www.chasen.org/~taku/software/ajax/hwr/,后台是通过ruby调用zinnia,你可以从附件下载到源代码。 测试下来有少量的字识别率不高,比如"子","人"等,猜测可能和模型数据和算法都有关系。 因为zinnia是基于C++的,下一步要学习一下如何在android上交叉编译,过一段时间再写第2篇博客介绍。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-06
直接可以装到机子上吗?
|
|
返回顶楼 | |
发表时间:2008-12-08
索马里海盗 写道 直接可以装到机子上吗?
还不行呢,还在学习如何将C的库编译到android系统上。 |
|
返回顶楼 | |
发表时间:2008-12-08
这个将来的主要应用场景是什么啊?
|
|
返回顶楼 | |
发表时间:2008-12-08
测试了一下,一些简单的字倒是识别率不高,复杂的还是挺高的
|
|
返回顶楼 | |
发表时间:2008-12-08
主要是没钱买android手机,以后要是山寨手机也支持就好了
|
|
返回顶楼 | |
发表时间:2008-12-12
貌似支持向量机对简单的字识别率不是很好啊?
复杂的字到不错,反正是基于超空间拟合的,估计要 笔画复杂一点好识别。关于简单的字,可以考虑 识别笔画,然后到数据库里去查匹配的字, 比如识别'二',就是两个横,不管这两横隔的多远, 都是'二',quake可以试一试。应该很好写, 而且简单的字识别率不错。 |
|
返回顶楼 | |
发表时间:2008-12-12
fins 写道 这个将来的主要应用场景是什么啊?
主要应用在不会拼音的人群 |
|
返回顶楼 | |
发表时间:2009-01-05
Quake Wang 你买了G1了吗?
|
|
返回顶楼 | |
发表时间:2009-05-14
现在已经无法访问了
|
|
返回顶楼 | |