之前有点好奇有道词典中的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. Olympic Class Ships【奥林匹克级邮轮】

    Olympic Class Ships You probably know about the Titanic, but it was actually just noe of three state ...

  2. g++编译器的使用(转载)

    关于g++ g++  是GNU组织开发出的编译器软件集合(GCC)下的一个C++编译器.它是Unix 和 Linux  系统下标配的 基于命令行的 C++编译器.如果你的系统是Windows,可以按照 ...

  3. Diycode开源项目 NodeListFragment分析

    1.整体分析 1.1.作用讲解 这个类没有用到,只是一个备用的. 分类列表,用于定制首页内容 考虑到节点列表一般不会变化,所以直接将数据封装在客户端中,可以直接查看,提高效率. 1.2.整体分析 首先 ...

  4. MySQL之架构与历史(一)

    MySQL架构与历史 和其他数据库系统相比,MySQL有点与众不同,它的架构可以在多种不同的场景中应用并发挥好的作用,但同时也会带来一点选择上的困难.MySQL并不完美,却足够灵活,它的灵活性体现在很 ...

  5. Redis实现之RDB持久化(二)

    RDB文件结构 在Redis实现之RDB持久化(一)这一章中,我们介绍了Redis服务器保存和载入RDB文件的方法,在这一节,我们将对RDB文件本身进行介绍,并详细说明文件各个部分的结构和意义.图1- ...

  6. Careercup - Microsoft面试题 - 24308662

    2014-05-12 07:31 题目链接 原题: I have heard this question many times in microsoft interviews. Given two a ...

  7. 69、Android 布局中轻松实现图片的全屏、居中、平铺

    public void paint() { if (item.laying_mode != 1)//平铺或者充满 { new AsyncTask<Void, Void, Void>() { ...

  8. 【SCOI 2010】股票交易

    题目 最近 \(\text{lxhgww}\) 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,\(\text{lxhgww}\) 预测到了未来 \(T ...

  9. Selenium 中 高亮元素

    //高亮元素 WebElement  element = driver.findElement(By.cssSelector(".table1 .btn-public label" ...

  10. 基于单层决策树的AdaBoost算法源码

    基于单层决策树的AdaBoost算法源码 Mian.py # -*- coding: utf-8 -*- # coding: UTF-8 import numpy as np from AdaBoos ...