之前有点好奇有道词典中的OCR功能,具体来说就是强力取词功能。我知道的最有名的OCR库是tesseract,这个库是惠普在早些年前开源的。

  在用python做爬虫处理验证码的时候,就会用到这个库,对应的python封装版本名字叫pytesseract。在github上可以找到tesseract的源码

  不过,此前在有道词典安装之后的文件夹中,我并未找到tesseract库。直到最近,更新了有道词典,换了新版本,才意外在文件下找到一个名叫tessdll.dll的文件。

  

  与此同时,我对照了一下旧版本,其中有一个叫XDLL.dll的库。查看其属性可以看到,名字叫ksense:

  

  根据搜索结果可知,该XDLL.dll库来源于一款名叫"逍遥笔手写输入"的国产软件。值得注意的是,在加入tessdll.dll之后依然保留了XDLL.dll。

  要推断其中的原因。还有一个文件值得注意,那就是OcrInfo.xml,其内容为:

<?xml version="1.0" encoding="UTF-8" ?>
<Strings>
<Version>1.0</Version>
<Lang Name="OCRLe">
<String Name="en" Value="0" Size="3470" ReName="eng" UPDATE="0" LOAD="1"/>
<String Name="es" Value="1" Size="15580" ReName="spa" UPDATE="0" LOAD="0"/>
<String Name="pt" Value="2" Size="12612" ReName="por" UPDATE="0" LOAD="0"/>
<String Name="de" Value="3" Size="13054" ReName="deu" UPDATE="0" LOAD="0"/>
<String Name="fr" Value="4" Size="13715" ReName="fra" UPDATE="0" LOAD="0"/>
<String Name="ru" Value="5" Size="15774" ReName="rus" UPDATE="0" LOAD="0"/>
<String Name="ja" Value="6" Size="32298" ReName="jpn" UPDATE="0" LOAD="0"/>
<String Name="ko" Value="7" Size="12998" ReName="kor" UPDATE="0" LOAD="0"/>
</Lang>
<Lang Name="MultiLeSelect">
<String Name="英汉互译 " Value="eng" QueryName="en" ReName="英文" LeHint ="(英语)" />
<String Name="法汉互译 " Value="fra" QueryName="fr" ReName="法文" LeHint ="(法语)" />
<String Name="日汉互译 " Value="jpn" QueryName="ja" ReName="日文" LeHint ="(日语)" />
<String Name="德汉互译 " Value="deu" QueryName="de" ReName="德文" LeHint ="(德语)" />
<String Name="韩汉互译 " Value="kor" QueryName="ko" ReName="韩文" LeHint ="(韩语)" />
<String Name="葡汉互译 " Value="por" QueryName="pt" ReName="葡萄牙文" LeHint ="(葡萄牙语)" />
<String Name="西汉互译 " Value="spa" QueryName="es" ReName="西班牙文" LeHint ="(西班牙语)" />
<String Name="俄汉互译 " Value="rus" QueryName="ru" ReName="俄文" LeHint ="(俄语)" />
</Lang>
</Strings>

  据此可以推断,新版的有道词典加入tesseract库,主要为了支持更多的语言,而中文的OCR可能依然是使用ksense进行处理。

有道词典中的OCR功能:第三方库的变化的更多相关文章

  1. Bing词典vs有道词典比对测试报告——功能篇之核心功能

    必应词典vs有道词典 核心功能对比 从应用的UI布局来看,这两款软件的功能如下: 相同 不同 必应词典 词典.例句.翻译 百科 有道词典 词典.例句.翻译 应用 就词典类软件来说,词典是最核心的功能. ...

  2. 命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用

    在学习廖老师的Python教程的时候,遇到命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用的情况, 这种情况可能是由于在本地安装了多个Python版本的缘故(只是可能的情况之一 ...

  3. Bing词典vs有道词典比对测试报告——功能篇之辅助功能,差异化功能及软件的效能

    1.辅助功能: 和有道相比,必应的词典加入了换肤功能,用户可以选择喜欢的颜色,而且必应的皮肤也比较多,这一点设计给必应增色不少. 相对而言,有道则加入了调节客户端字体的大小,如下,也比较人性化 2.差 ...

  4. Swift中混编OC第三方库

    现在Swift的第三方库还比较少,有时候需要使用OC的第三方库,其实也是很容易的.   我们使用如下步骤: 1.新建的Swift项目,第一次创建OC文件时会询问是否生成 桥接头,选择是的话会生成一个桥 ...

  5. Robot Framework中经常用的第三方库的安装方法

    pip升级:python -m pip install --upgrade pip 一.安装robotframework-selenium2library,相当于python中的selenium    ...

  6. Python:在cmd中使用pip安装第三方库时出现SyntaxError

    原因:pip安装库时不需要进入Python环境,在Python环境下安装就会出现SyntaxError 解决方法:输入exit(),退出Python环境,然后就可以pip安装了

  7. Teamwork-Week2真对必应词典和有道词典的软件分析和用户需求调查(桌面版)

    经调查,现在有道词典在该领域拥有很大程度的市场占有率,所以我们将有道词典与必应词典进行对比. 核心功能一:单词本 有道词典中的单词本都只能是由用户手动添加不会的单词,而必应词典中的单词 不仅可以被自己 ...

  8. Python 标准库、第三方库

    Python 标准库.第三方库 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写 ...

  9. [置顶] android利用jni调用第三方库——第三篇——编写库android程序整合第三方库libhello.so到自己的库libhelloword.so

    0:前言: 在第二篇中,我们主要介绍了丙方android公司利用乙方C++公司给的动态库,直接调用库中的方法,但是这样方式受限于: 乙方C++公司开发的动态库是否符合jni的规范,如果不规范,则不能直 ...

随机推荐

  1. webpack的配置处理

    1.webpack对脚本的处理 1.Js用什么loader加载? 1>webpack 本身就支持js的加载, 2>通过babel-loader ES2015 加载js,再用 babel-p ...

  2. php中foreach循环遍历二维数组

    最近在用tp3.2框架,在查询的时候用到了select(),这条语句返回的是二维数组,所以在对返回的数据做处理时,遇到了些麻烦,百度了下foreach,终于用foreach解决了数据的筛选问题 (因为 ...

  3. Sublime Text配置python以及快捷键总结

    1.打开Tools > Build System > New Build System.. 2.点击New Build System后,会生成一个空配置文件,在这个配置文件内覆盖配置信息, ...

  4. P1616 疯狂的采药【模板】

    此题为NOIP2005普及组第三题的疯狂版. 此题为纪念LiYuxiang而生. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师. ...

  5. 笔记-python-__new__()

    笔记-python-__new__() 1.       __new__() __new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前. 验证代码: class Person(obj ...

  6. C#开发模式——dll多级引用的问题

    C#解决方案里有两种引用方式,项目引用和dll物理文件引用. 一.项目引用 严格引用,项目文件需包含在解决方案里,好处是便于调试,可直接进入代码.缺点是耦合度太高(必须全部编译通过才能run起来),项 ...

  7. Python虚拟机类机制之绑定方法和非绑定方法(七)

    Bound Method和Unbound Method 在Python中,当对作为属性的函数进行引用时,会有两种形式,一种称为Bound Method,这种形式是通过类的实例对象进行属性引用,而另一种 ...

  8. mysql中外联和 is null 结合使用

    今天学习mysql ,碰到了一个问题:有部门表,员工表,员工表中有一个部门表的外键,查询没有员工的部门名称. 表结构如下: 员工表employees: 部门表department表: 题目很简单呢,信 ...

  9. loj2056 「TJOI / HEOI2016」序列

    当年我还没学cdq的时候在luogu上写过树套树的代码orzzz ref #include <algorithm> #include <iostream> #include & ...

  10. loj2053 「HNOI2016」大数

    ref #include <algorithm> #include <iostream> #include <cstring> #include <cstdi ...