文件修复方法及装置
技术领域
本公开涉及文件处理技术领域,尤其涉及一种文件修复方法及装置。
背景技术
在实际应用中,某些文件因文本信息被损坏或去除,无法对文本进行复制或搜索等操作。目前,普遍做法是基于光学字符识别(Optical Character Recognition,OCR)进行文件修复。但是OCR的输入是图片,不仅需要把文件转换为图片才能进行修复,而且识别准确率低,计算复杂度高。
发明内容
本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本公开的第一个目的在于提出一种文件修复方法。
本公开的第二个目的在于提出一种文件修复装置。
本公开的第三个目的在于提出一种电子设备。
本公开的第四个目的在于提出一种计算机可读存储介质。
为达上述目的,本公开第一方面实施例提出了一种文件修复方法,包括:
获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示;
在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示;
获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。
作为一种可能的实现方式,所述字形参数包括贝塞尔曲线参数,所述根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示包括:
根据每个待修复字符的贝塞尔曲线参数绘制对应的贝塞尔曲线;
采用至少一条直线段对所述塞尔曲线进行直线化处理,并确定每个直线段的几何信息;
对各个直线段的几何信息进行离散化处理,得到所述每个待修复字符的向量化表示。
作为一种可能的实现方式,所述几何信息包括长度和角度。
作为一种可能的实现方式,在所述获取文件中缺失字符编码的每个待修复字符之前,还包括:
确定至少一个标准字符,并根据每个标准字符的字形参数确定所述每个标准字符的向量化表示;
按照前缀树的形式存储各个标准字符的向量化表示。
作为一种可能的实现方式,在获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码之前,还包括:
若查找到多个与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示,计算每个待修复字符的向量化表示分别与各个相匹配的标准字符的向量化表示之间的向量夹角;
根据向量夹角确定与所述每个待修复字符的向量化表示最匹配的标准字符的向量化表示;
所述获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码包括:
获取与最匹配的标准字符的向量化表示对应的标准字符的目标字符编码。
作为一种可能的实现方式,所述根据向量夹角确定与所每个待修复字符的向量化表示最匹配的标准字符的向量化表示包括:
判断向量夹角是否满足预设条件,将满足预设条件的向量夹角对应的标准字符的向量化表示确定为最匹配的标准字符的向量化表示,其中,预设条件为与0°或180°差值最小的向量夹角。
本公开实施例的文件修复方法,通过获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示;在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示;获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。由此,从而能够基于字形参数确定待修复字符的向量化表示,在获取到与每个待修复字符的向量化表示相匹配的标准字符的向量化表示之后,便可基于相匹配的标准字符的字符编码对待修复字符进行自动修复处理,提高修复处理效率和准确性。
为达上述目的,本公开第二方面实施例提出了一种文件修复装置,包括:
获取模块,用于获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示;
查找模块,用于在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示;
修复模块,用于获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。
作为一种可能的实现方式,所述字形参数包括贝塞尔曲线参数,获取模块具体用于:
根据每个待修复字符的贝塞尔曲线参数绘制对应的贝塞尔曲线;
采用至少一条直线段对所述塞尔曲线进行直线化处理,并确定每个直线段的几何信息;
对各个直线段的几何信息进行离散化处理,得到所述每个待修复字符的向量化表示。
作为一种可能的实现方式,所述几何信息包括长度和角度。
作为一种可能的实现方式,所述装置还包括存储模块,用于:
确定至少一个标准字符,并根据每个标准字符的字形参数确定所述每个标准字符的向量化表示;
按照前缀树的形式存储各个标准字符的向量化表示。
作为一种可能的实现方式,所述装置还包括:
计算模块,用于若查找到多个与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示,计算每个待修复字符的向量化表示分别与各个相匹配的标准字符的向量化表示之间的向量夹角;
处理模块,用于根据向量夹角确定与所述每个待修复字符的向量化表示最匹配的标准字符的向量化表示;
所述修复模块具体用于:
获取与最匹配的标准字符的向量化表示对应的标准字符的目标字符编码。
本公开实施例的文件修复装置,通过获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示;在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示;获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。由此,从而能够基于字形参数确定待修复字符的向量化表示,在获取到与每个待修复字符的向量化表示相匹配的标准字符的向量化表示之后,便可基于相匹配的标准字符的字符编码对待修复字符进行自动修复处理,提高修复处理效率和准确性。
为达上述目的,本公开第三方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的文件修复方法。
为了实现上述目的,本公开第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的文件修复方法。
本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本公开实施例提供的一种文件修复方法的流程示意图;
图2为示例性的正常PDF文档;
图3为示例性的异常PDF文档;
图4为示例性的微软雅黑字体的“文”字;
图5为示例性的二阶贝塞尔曲线直线化示意图;
图6为本公开实施例提供的又一种文件修复方法的流程示意图;
图7为本公开实施例提供的一种文件修复装置的结构示意图;
图8为本公开实施例提供的另一种文件修复装置的结构示意图;
图9为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
下面参考附图描述本公开实施例的文件修复方法及装置。
图1为本公开实施例提供的一种文件修复方法的流程示意图。如图1所示,该文件修复方法包括以下步骤:
步骤101、获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示。
本公开提供的文件修复方法的执行主体为文件修复装置,文件修复装置具体可以为硬件设备,或者硬件设备中安装的软件。其中,硬件设备例如可以为终端设备、服务器等。
其中,文件例如为PDF(Portable Document Format,可移植文档格式)文件、TTF文件、OTF(Open Type,字体)文件、TTF(True Type Font,字体文件格式)文件,但并不限于此。
为了便于理解,本公开实施例以PDF文件为例进行说明。可移植文档格式是一种能独立于应用程序、硬件、操作系统的方式呈现文档的文件格式。PDF文件能很好的还原文档样式,也支持文本的搜索与复制。
目前,基于OCR技术只能修复扫描版的PDF文件,无法直接修复文字版的PDF文件。若要修复文字版的PDF文件,需要将文字版的PDF文件转化为图片才能进行修复,而且识别准确率低,计算复杂度高。
具体而言,文本出现异常导致无法搜索或复制其中的文本,是由于该文本丢失了文本信息,文本中的字符缺失对应的字符编码。可以理解的是,待修复字符为缺失了对应的字符编码的字符。
其中,字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
其中,字符编码(Character encoding)是字符对应的二进制编码,每个字符都对应一个唯一的二进制编码。字符编码例如为ASCII(American Standard Code forInformation Interc hange,美国信息交换标准代码)字符编码、Unicode(统一码)字符编码、GBK(Chinese Internal Code Extension Specification,汉字内码扩展规范)字符编码,但并不以此为限。
图2为示例性的正常PDF文档。图2中,在正常PDF文档中可以搜索到“文档”并可以复制、提取搜索到的“文档”。图3为示例性的异常PDF文档。图3中,异常PDF文档虽然显示正常,但是无法搜索、复制、提取文字。在异常PDF文档中输入“文档”,无法搜索到“文档”。
具体的,丢失文本信息的文本中的字符尽管缺失了对应的字符编码,但是,对应的字形参数仍然存在,阅读器通过提取各个字符的字形参数进行文字渲染,以在文件中正常显示各个字符。不同字符的字形参数不同,字形参数可以唯一标识字符。本公开实施例中,为了对缺失字符编码的每个待修复字符进行修复,需要根据每个待修复字符的字形参数确定每个待修复字符的向量化表示。同时,将字符转化为向量,能够便于迅速地模糊查询。
由于矢量字体在缩放时,其缩放精度不会降低,矢量字体被广泛应用到文件当中。矢量字体的字符由多组贝塞尔曲线(Bezier curve)组成。图4为示例性的微软雅黑字体的“文”字。图4中右侧显示的是“文”的贝塞尔曲线上各个控制点的参数。
由于不同字体的同一字符的字形会有差异,即使差异较小反应到贝塞尔曲线参数上也会有较大的不同。例如,微软雅黑字体的“文”和楷体的“文”的字形是不一样地。
进一步地,为了尽可能地消除这种差异,对字符的贝塞尔曲线进行直线化处理以得到每个待修复字符的向量化表示。具体的,字形参数包括贝塞尔曲线参数,根据每个待修复字符的字形参数确定每个待修复字符的向量化表示包括:根据每个待修复字符的贝塞尔曲线参数绘制对应的贝塞尔曲线;采用至少一条直线段对塞尔曲线进行直线化处理,并确定每个直线段的几何信息;对各个直线段的几何信息进行离散化处理,得到所述每个待修复字符的向量化表示。其中,贝塞尔曲线可以是二阶贝塞尔曲线、三阶贝塞尔曲线,但并不以此为限。直线段的几何信息包括长度和角度。
图5为示例性的二阶贝塞尔曲线直线化示意图。其中,二阶贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t)追踪,公式如下:
B(t)=(1-t)2μ0+2t(1-t)μ1+t2P2,t∈[0,1]
首先,取t=1/k,2/k,……1,从而可以用k个点将二阶贝塞尔曲线分成一系列首尾相接的直线段。例如,一系列首尾相接的直线段分别为P0B1、B1B2、B2B3、B3P2。其中,P0为二阶贝塞尔曲线的起点,P2为二阶贝塞尔曲线的终点。
其次,计算各个直线段的几何信息(l,θ)。其中,θ为每个直线段对应的向量与由贝塞尔曲线的起点指向终点的向量之间的角度。
继续以图5为例,对直线段P
0B
1,其几何信息为(l
1,θ
1),l
1为直线段P
0B
1的线段长度,θ
1为向量
与向量
的夹角;对直线段B
1B
2,其几何信息为(l
2,θ
2),l
2为直线段B
1B
2的线段长度,θ
2为向量
与向量
的夹角;对直线段B
2B
3,其几何信息为(l
3,θ
3),l
3为直线段B
2B
3的线段长度,θ
3为向量
与向量
的夹角;对直线段B
3P
2,其几何信息为(l
4,θ
4),l
4为直线段B
3P
2的线段长度,θ
4为向量
与向量
的夹角。
再次,对各个直线段的长度和角度进行离散化,得到对应字符的向量化表示。
具体的,可以根据大量的试验数据标定离散化标准。例如将长度落在区间[0,1]的都记为1,将长度落在区间(1,2]的都记为2,将长度落在区间(2,3]的都记为3,以此类推。同样地,将角度落在区间[0,0°]的都记为1,将角度落在区间(30°,60°]的都记为2,将角度落在区间(60°,90°]的都记为3,将角度落在区间(90°,120°]的都记为3,将角度落在区间(120°,150°]的都记为2,将角度落在区间(150°,180°]的都记为1。
步骤102、在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示。
具体的,预先存储了海量的标准字符的向量化表示,且预先建立了标准字符与其对应的字符编码的对应关系。在获取到与每个待修复字符的向量化表示相匹配的标准字符的向量化表示之后,便可基于相匹配的标准字符的字符编码对待修复字符进行修复处理,提高修复处理效率和准确性。
本公开实施例中,存储海量的标准字符的向量化表示的方式不限。
作为一种示例,为了便于快速检索,在步骤101之前,所述方法还包括:确定至少一个标准字符,并根据每个标准字符的字形参数确定所述每个标准字符的向量化表示;按照前缀树的形式存储各个标准字符的向量化表示。
其中,可以选用最常用的微软雅黑字体的各种字符作为标准字符,但并不以此为限。
进一步地,为了减少字符的搜索范围,选用常用的英文字母、常用符号、常用汉字(信息交换用汉字编码字符集GB2312中包含的6763个字)作为标准字符。
其中,前缀树又名Tries树、字典树、单词查找树等,常用于快速检索,大量字符串的排序和统计等。因此,基于前缀树的形式存储各个标准字符的向量化表示,可以提高查询与每个待修复字符的向量化表示相匹配的标准字符的向量化表示的查询效率。
需要指出的是,各个标准字符的向量化表示同样是根据对应的字形参数获取的,获取各个标准字符的向量化表示的具体实现方式参见上述获取待修复字符的向量化表示的具体实现方式,在此不再赘述。
步骤103、获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。
具体的,在获取到与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码之后,对相应的待修复字符进行修复处理,修复处理后的字符不再缺失字符编码,相应地,修改后的文件不再只是仅仅能正常显示文字,还支持对文字的搜索、复制、提取等操作。
本公开实施例提供的文件修复方法,通过获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示;在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示;获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。由此,从而能够基于字形参数确定待修复字符的向量化表示,在获取到与每个待修复字符的向量化表示相匹配的标准字符的向量化表示之后,便可基于相匹配的标准字符的字符编码对待修复字符进行自动修复处理,提高修复处理效率和准确性。
图6为本公开实施例提供的又一种文件修复方法的流程示意图。如图6所示,该文件修复方法还包括以下步骤:
步骤201、获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示。
步骤202、在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示。
本公开实施例中的步骤201的实现方式与上述实施例中的步骤101的实现方式相同,本公开实施例中的步骤202的实现方式与上述实施例中的步骤102的实现方式相同,在此不再赘述。
步骤203、若查找到多个与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示,计算每个待修复字符的向量化表示分别与各个相匹配的标准字符的向量化表示之间的向量夹角。
具体地,基于字形参数获取字符的向量化表示是一种量化方法,或多或少会出现一定的量化误差,因此,基于字符的向量化表示方法进行查找本质上是一种模糊查找方法,可能会出现多个查找结果,这时需要计算每个待修复字符的向量化表示分别与各个相匹配的标准字符的向量化表示之间的向量夹角,基于向量夹角选出与每个待修复字符的向量化表示最匹配标准字符的向量化表示。
例如,土和士的字形相似,在查找与待修复字符“土”相匹配的标准字符时,可能会匹配到两个标准字符“土”和“士”。这时,计算待修复字符“土”的向量化表示与标准字符“土”的向量化表示的向量夹角,以及计算待修复字符“土”的向量化表示与标准字符“士”的向量化表示的向量夹角。
步骤204、根据向量夹角确定与每个待修复字符的向量化表示最匹配的标准字符的向量化表示。
具体的,判断向量夹角是否满足预设条件,将满足预设条件的向量夹角对应的标准字符确定为最匹配的标准字符的向量化表示。其中,预设条件为与0°或180°差值最小的向量夹角。
具体而言,向量夹角越接近0°或180°,待修复字符的向量化表示与标准字符的向量化表示越相似。与0°或180°差值最小的向量夹角最近0°或180°。例如,第一向量夹角为1°,与0°的差值为1°。第二个向量173°,与180°的差值为2°,则第一向量夹角为满足预设条件的向量夹角。
步骤205、获取与最匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。
具体的,在确定最匹配的标准字符的向量化表示之后,根据对应标准字符的目标字符编码对每个待修复字符进行修复处理。
本公开实施例提供的文件修复方法,若从预先存储的各个标准字符的向量化表示中查找到多个与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示,计算每个待修复字符的向量化表示分别与各个相匹配的标准字符的向量化表示之间的向量夹角,根据向量夹角确定与所述每个待修复字符的向量化表示最匹配的标准字符的向量化表示;获取与最匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。由此,通过向量夹角找出与待修复字符的向量化表示最匹配的标准字符的向量化表示,利用最匹配的标准字符的向量化表示对每个待修复字符进行修复处理,进一步提高了文件修复的准确性。
图7为本公开实施例提供的一种文件修复装置的结构示意图。如图7所示,该文件修复装置包括:获取模块11、查找模块12、修复模块13。
获取模块11,用于获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示;
查找模块12,用于在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示;
修复模块13,用于获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。
作为一种可能的实现方式,所述字形参数包括贝塞尔曲线参数,获取模块11具体用于:
根据每个待修复字符的贝塞尔曲线参数绘制对应的贝塞尔曲线;
采用至少一条直线段对所述塞尔曲线进行直线化处理,并确定每个直线段的几何信息;
对各个直线段的几何信息进行离散化处理,得到所述每个待修复字符的向量化表示。
作为一种可能的实现方式,所述几何信息包括长度和角度。
作为一种可能的实现方式,所述装置还包括存储模块,用于:
确定至少一个标准字符,并根据每个标准字符的字形参数确定所述每个标准字符的向量化表示;
按照前缀树的形式存储各个标准字符的向量化表示。
需要说明的是,前述对文件修复方法实施例的解释说明也适用于该实施例的文件修复装置,此处不再赘述。
本公开实施例的文件修复装置,通过获取文件中缺失字符编码的每个待修复字符,并根据所述每个待修复字符的字形参数确定所述每个待修复字符的向量化表示;在预先存储的各个标准字符的向量化表示中,查找与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示;获取与相匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。由此,从而能够基于字形参数确定待修复字符的向量化表示,在获取到与每个待修复字符的向量化表示相匹配的标准字符的向量化表示之后,便可基于相匹配的标准字符的字符编码对待修复字符进行自动修复处理,提高修复处理效率和准确性。
图8为本公开实施例提供的另一种文件修复装置的结构示意图。如图8所示,在图7所示的实施例的基础上,该文件修复装置还包括计算模块14、处理模块15;
其中,计算模块14,用于若查找到多个与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示,计算每个待修复字符的向量化表示分别与各个相匹配的标准字符的向量化表示之间的向量夹角;
处理模块15,用于根据向量夹角确定与所述每个待修复字符的向量化表示最匹配的标准字符的向量化表示;
所述修复模块13具体用于:
获取与最匹配的标准字符的向量化表示对应的标准字符的目标字符编码。
需要说明的是,前述对文件修复方法实施例的解释说明也适用于该实施例的文件修复装置,此处不再赘述。
本公开实施例的文件修复装置,若从预先存储的各个标准字符的向量化表示中查找到多个与所述每个待修复字符的向量化表示相匹配的标准字符的向量化表示,计算每个待修复字符的向量化表示分别与各个相匹配的标准字符的向量化表示之间的向量夹角,根据向量夹角确定与所述每个待修复字符的向量化表示最匹配的标准字符的向量化表示;获取与最匹配的标准字符的向量化表示对应的标准字符的目标字符编码,根据所述目标字符编码对所述每个待修复字符进行修复处理。由此,通过向量夹角找出与待修复字符的向量化表示最匹配的标准字符的向量化表示,利用最匹配的标准字符的向量化表示对每个待修复字符进行修复处理,进一步提高了文件修复的准确性。
下面参考图9,其示出了适于用来实现本公开实施例的电子设备800的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储装置808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM 802被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取输入框中当前的输入内容;获取所述输入内容对应的第一候选列表;对所述输入内容进行错误识别,判断所述输入内容是否存在错误;若所述输入内容不存在错误,则将所述输入内容对应的第一候选列表,确定为建议候选列表。可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的文件修复方法。
本公开还提供一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的文件修复方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。