首页 / 专利分类库 / 本部其他类目中不包括的技术主题 / 用于组织和处理基于特征的数据结构的系统和方法

用于组织和处理基于特征的数据结构的系统和方法

申请号 CN201680002011.0 申请日 2016-12-14 公开(公告)号 CN107427732A 公开(公告)日 2017-12-01
申请人 香港应用科技研究院有限公司; 发明人 刘扬; 冯超; 招琸珩; 吴康恒; 雷志斌;
摘要 一种用于组织和处理基于特征的数据结构的方法,该数据结构可用在语言拼写检查和自动校正中,该方法包括:基于共同特征的不同值,将原始词典划分成子词典,共同特征例如高频词;接收包含错误的输入文本;由输入的人类可读文本确 定子 词典选择共同特征;基于确定的子词典选择特征选择子词典;执行选择的子词典中的第一匹配,其中,如果输入文本中的错误附近的字符、单词或短语与子词典中的字符、单词或短语之间的相似度在 阈值 以上,则找到了匹配;如果找到了唯一匹配,则返回结果作为纠正错误的输出;否则,利用上升的阈值执行第二匹配,并且重复第二匹配,直到找到唯一匹配。
权利要求

1.一种用于组织和处理语言拼写检查和自动校正中的基于特征的数据结构的系统,包括:
计算机处理器,其被配置为:
使用显式划分或隐式划分将原始词典划分为两个或更多个子词典,其中每个子词典的大小都小于原始词典;
接收输入的人类可读文本,该输入的人类可读文本包含一个或多个错误;
由输入的人类可读文本确定子词典选择共同特征或选择标准;
基于确定的子词典选择特征或选择标准选择子词典;
执行输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与选择的子词典中的字符、单词和短语的第一匹配,其中,如果输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与子词典中的候选匹配字符、单词或短语之间的相似度在相似程度阈值以上,则找到了匹配;
如果找到了唯一匹配,则返回选择的子词典中的唯一匹配的字符、单词或短语作为纠正错误的输出;
否则,如果找到不止一个候选匹配,则利用上升的相似程度阈值执行输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与选择的子词典中的字符、单词和短语的第二匹配;并且重复第二匹配,直到找到唯一匹配,并返回选择的子词典中的唯一匹配的字符、单词或短语作为纠正错误的输出。
2.根据权利要求1所述的系统,其中,所述显式划分包括:
识别原始词典中的字符、单词和短语之间的共同特征;和
根据所识别的共同特征的差异值,将原始词典中的字符、单词和短语划分为两个或更多个子词典。
3.根据权利要求2所述的系统,其中,所述共同特征是高频词。
4.根据权利要求2所述的系统,其中,所述共同特征是字符、单词和短语的长度。
5.根据权利要求2所述的系统,其中,所述共同特征对地理属性、学科、情感以及字符、单词和短语的重要性等级中的至少一种上下文敏感。
6.根据权利要求1所述的系统,其中,隐式划分包括:
使用字符、单词和短语的Unicode值,确定原始词典中的每个字符、单词和短语的向量空间;
确定原始词典中的字符、单词和短语的向量空间的中心值;和
将原始词典中的字符、单词和短语划分成两个或更多个子词典,使得每个子词典包含向量空间中心在特定值范围内的字符、单词和短语。
7.根据权利要求1所述的系统,其中,通过在比较下确定输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与选择的子词典中的字符、单词和短语之间的Unicode差异,来执行第一匹配和第二匹配。
8.一种用于组织和处理语言拼写检查和自动校正中的基于特征的数据结构的方法,该方法包括:
使用显式划分或隐式划分将原始词典划分为两个或更多个子词典,其中每个子词典的大小都小于原始词典;
接收输入的人类可读文本,该输入的人类可读文本包含一个或多个错误;
由输入的人类可读文本确定子词典选择共同特征或选择标准;
基于确定的子词典选择共同特征或选择标准选择子词典;
执行输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与选择的子词典中的字符、单词和短语的第一匹配,其中,如果输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与子词典中的候选匹配字符、单词或短语之间的相似度在相似程度阈值以上,则找到了匹配;
如果找到了唯一匹配,则返回选择的子词典中的候选匹配字符、单词或短语作为纠正错误的输出;
否则,如果找到不止一个候选匹配,则利用上升的相似程度阈值执行输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与选择的子词典中的字符、单词和短语的第二匹配;并且重复第二匹配,直到找到唯一匹配,并返回选择的子词典中的唯一匹配的字符、单词或短语作为纠正错误的输出。
9.根据权利要求8所述的方法,其中,显式划分包括:
识别原始词典中的字符、单词和短语之间的共同特征;和
根据所识别的共同特征的差异值,将原始词典中的字符、单词和短语划分为两个或更多个子词典。
10.根据权利要求9所述的方法,其中,所述共同特征是高频词。
11.根据权利要求9所述的方法,其中,所述共同特征是字符、单词和短语的长度。
12.根据权利要求9所述的方法,其中,所述共同特征对地理属性、学科、情感以及字符、单词和短语的重要性等级中的至少一种上下文敏感。
13.根据权利要求8所述的方法,其中,隐式划分包括:
使用字符、单词和短语的Unicode值,确定原始词典中的每个字符、单词和短语的向量空间;
确定原始词典中的字符、单词和短语的向量空间的中心值;和
将原始词典中的字符、单词和短语划分成两个或更多个子词典,使得每个子词典包含向量空间中心在特定值范围内的字符、单词和短语。
14.根据权利要求8所述的方法,其中,通过在比较下确定输入的人类可读文本中的错误附近的一个或多个字符、单词或短语与选择的子词典中的字符、单词和短语之间的Unicode差异,来执行第一匹配和第二匹配。

说明书全文

用于组织和处理基于特征的数据结构的系统和方法

技术领域

[0001] 本发明通常涉及用于组织电子数据的方法和系统。更具体地说,本发明通常涉及电子词典的应用和使用、语言错误检测和修正,例如拼写检查和自动校正。

背景技术

[0002] 移动电子设备的激增允许在我们的日常生活中瞬时收集大量的数字数据。这些数字数据中的大部分要被处理,并且最终以图形和文本格式(例如数字新闻、瞬时图像捕获和文本信息)显示出来。将以二进制和/或机器可读格式收集或捕获的这些原始数字数据转换为人类可读文本的处理可包含某些数据解码步骤、其他特定的转换步骤(诸如光学字符识别(OCR))和/或语言翻译。然而,这些数据处理过程不是无差错的,并且往往会导致错误的字符和单词,甚至难以辨认的文字。因此,需要有语言错误检测和修正(例如拼写检查和自动校正)的附加步骤。
[0003] 常规拼写检查和自动校正是占用大量资源的计算机操作,它需要大量的中央处理单元(CPU)处理周期和易失性存储空间。在诸如智能手机的移动计算设备中,CPU处理能和存储空间两者都比普通计算机更加有限。另一方面,拼写检查和自动校正的用户体验需要实时性能和高精度。因此,需要能更有效使用计算资源的一种更好的系统和/或方法,该系统和/或方法用来组织和处理由原始数据产生的输入文本和用于拼写检查和自动校正该输入文本的词典。

发明内容

[0004] 本发明的目的是提供一种用于组织和处理基于特征的数据结构的系统和方法,该数据结构可用于语言拼写检查和自动校正。当在电子电路中实现时,这种系统和方法基本上比常规拼写检查器和自动校正软件或设备具有更少的CPU和易失性存储空间需求。
[0005] 根据本发明的一方面,原始数字词典首先被划分成多个子词典。该划分可以是显式的或者是隐式的。在显式划分方法中,针对共同特征识别原始数字词典中的内容。一种可能的共同特征是频繁使用的字符、单词和短语(高频词)。另一种共同特征是字符、单词和短语的长度。其他共同特征可以是上下文敏感的,例如地理属性、学科、情感以及字符、单词和短语的重要性等级。因此,根据作为索引的共同特征的不同值,可将原始词典显式划分成两个或更多个子词典。子词典可通过包含一些相同的字符、单词和短语而相互重叠,但每个子词典的大小都小于原始词典。
[0006] 在一个实施例中,组织每个子词典中的内容以形成子词典层次结构。例如,以层次结构树的方式组织包含在每个子词典中的字符、单词和短语,其中每个顶部节点包含具有至少一个共同特征的字符、单词和短语,并且每个下级节点包含与之紧邻的上方节点的具有更多共同特征的字符、单词和短语的子集。随着分层节点越来越往下,子集会变得越来越小,但会具有更多共性,最终,最底层的节点只包含单个字符、单词和短语。
[0007] 在另一个实施例中,一种隐式划分方法是,通过确定每个字符、单词和短语的向量空间,首先识别出原始词典的内容。计算出每个向量空间的数学中心。字符、单词或短语的Unicode值可用在矢量确定中。然后生成子词典,每个子词典都包含向量空间中心在特定值范围内的字符、单词和短语。
[0008] 根据本发明的另一方面,处理输入数据流以产生人类可读文本。在人类可读文本包含一个或多个错误的情况下,一个或多个错误中的每个错误附近的一个或多个字符、单词或短语可以在显式划分词典的情况下用于确定选择子目录时的选择特征,或者可以在隐式划分词典的情况下用于确定选择向量空间中心。那么,一个或多个错误中的每个错误附近的一个或多个字符、单词或短语,连同错误一起被用作输入;并且非错误字符、单词或短语充当定位点,以在子词典中找到匹配的字符、单词或短语作为纠正错误的输出。通过子词典层次结构树来横向执行输入字符、单词或短语与子词典中的字符、单词和短语的比较。
[0009] 在一个实施例中,子词典中的字符、单词或短语的匹配不需要是精确的。可根据在阈值以上的相似程度(例如具有在Unicode距离内的输入字符、单词或短语与候选输出之间的Unicode差异)找到匹配。如果在子词典中找到输入字符、单词或短语的唯一匹配,则输出是子词典中的匹配的字符、单词或短语。然而,可能会找到在相似程度阈值以上的多个匹配的候选输出。在这种情况下,可利用向上调整的相似程度阈值执行第二轮比较,向上调整的相似程度阈值意味着需要更高的相似程度。重复此步骤,直到只找到一个结果匹配进行输出。
[0010] 由于每个子词典的大小都小于原始词典,并且只有选择的子词典用于匹配输入字符、单词或短语,所以用于加载选择的子词典的易失性存储空间比用于加载整个原始词典的易失性存储空间小。这实现了本发明的比常规拼写检查器和自动更正软件或设备需要更少的易失性存储空间的一个目的。由于以层次结构的方式组织子词典的内容,因此允许实施高效的搜索算法以用于输入字符、单词或短语与子词典的比较;如此,实现了本发明的另一目的。
[0011] 本发明可用于所有的书面语言,包括字母表、音节表和语标类别的书面语言。根据本发明的用于组织和处理基于特征的数据结构的系统和方法的实施例也可应用于除书面语言之外的数据类型,例如图像和声音。附图说明
[0012] 参考附图,在下文中更详细地描述了本发明的实施例,其中:
[0013] 图1描述了根据本发明的一个实施例的用于组织和处理基于特征的数据结构的系统的逻辑框图,所述数据结构用在语言拼写检查和自动校正中;
[0014] 图2描述了根据本发明的一个实施例的通过显式划分方法将示例英文词典划分成子词典的逻辑框图;
[0015] 图3描述了根据本发明的一个实施例的通过显式划分方法将示例中文词典划分成子词典的逻辑框图;
[0016] 图4描述了根据本发明的一个实施例的通过隐式划分方法将示例中文词典划分为子词典的逻辑框图;
[0017] 图5示出了根据本发明的一个实施例的用于组织和处理基于特征的数据结构的方法的流程图,所述数据结构用在语言拼写检查和自动校正中;和
[0018] 图6描述了根据本发明的一个实施例的通过显式划分方法将图像集合划分成子集合的逻辑框图。

具体实施方式

[0019] 在下面的描述中,将阐述作为优选实例的、用于组织和处理基于特征的数据结构的系统和方法,所述数据结构可用在语言拼写检查和自动校正以及类似任务中。对本领域的技术人员而言显而易见的是,可以在不偏离本发明的范围和精神的情况下进行改进,包括附加和/或替换。为了不使本发明模糊不清,可省略具体细节;然而,本公开是为了使本领域的技术人员能够在不过度实验的情况下实施本文的教导。
[0020] 参考图1,根据本发明的一个实施例,用于组织和处理基于特征的数据结构的系统实施在计算设备101中,该计算设备101可以是移动计算设备,其至少包括用于执行和存储在执行方法过程时所需的机器指令的专配置的CPU以及充足的易失且非瞬态存储器。该系统采用了可存储在非瞬态存储器空间以进行组织处理的词典102以及已被处理和转换为人类可读文本但包含一个或多个实时或非实时错误的输入数据流103,并且输出校正的人类可读文本输出104。根据另一个实施例,用于组织和处理基于特征的数据结构的方法可被实现为由专用或通用CPU执行的一组机器指令(或软件模)。
[0021] 根据本发明的一方面,原始数字词典首先被划分成多个子词典。该划分可以是显式的或者是隐式的。在显式划分方法中,针对共同特征来识别原始数字词典的内容。一种可能的共同特征是频繁使用的字符、单词和短语(高频词)。另一种共同特征是字符、单词和短语的长度。其他共同特征可以是上下文敏感的,例如地理属性、学科、情感、以及字符、单词和短语的重要性的等级。因此,基于共同特征的不同值,可将原始词典显式划分成两个或更多个子词典。该子词典可通过包含一些相同的字符、单词和短语而相互重叠,但每个子词典的大小都小于原始词典。
[0022] 参考图2,其作为例子示出了根据高频词的共同特征将原始词典显式划分为两个子词典。在这个例子中,原始词典201包含单词和短语:“steak and kidney pudding”、“steak pie”、“steak and oyster pie”和“pork pie”。选择的两个高频词是“steak”和“pie”。在显式划分之后,第一个子词典202包含单词和短语:“steak  and  kidney pudding”、“steak pie”和“steak and oyster pie”,第二子词典203包含单词和短语:“steak pie”、“steak and oyster pie”和“pork pie”。
[0023] 参考图3,其作为另一个例子示出了根据高频词的共同特征将汉语原始词典显式划分为两个子词典。在这个例子中,原始词典301包含单词和短语:“形势大好”、“投资加大”、“大派红利”和“红火”。选择的两个高频词是“大”和“红”。在显式划分之后,第一子词典302包含单词和短语:“形势大好”、“投资加大”和“大派红利”,第二子词典303包含单词和短语:“大派红利”和“红火”。
[0024] 在一个实施例中,组织每个子词典中的内容来形成子词典层次结构。例如,以层次结构树的方式组织包含在每个子词典中的字符、单词和短语,其中每个顶部节点包含具有至少一个共同特征的字符、单词和短语,并且每个下级节点包含与之紧邻的上方节点的具有更多共同特征的字符、单词和短语的子集。随着分层节点越来越往下,子集会变得越来越小,但会具有更多共性,最终,最底层的节点只包含单个字符、单词和短语。
[0025] 在另一个实施例中,一种隐式划分方法是,通过确定每个字符、单词和短语的向量空间,首先识别出原始词典的内容。计算出每个向量空间的数学中心。可以在矢量确定中使用字符、单词或短语的Unicode值。然后生成子词典,每个子词典都包含向量空间中心位于特定值范围内的字符、单词和短语。例如,如果原始词典中的大部分单词和短语具有四个字符,那么向量空间维数是四。在每个单词和短语中的每个字符的Unicode是其相应单词或短语的向量空间的矢量值。在找到四个向量和它们的值的情况下,从数学上确定单词或短语的四维向量空间中心。另一个实施例使用了用于隐式划分的k-均值聚类技术。
[0026] 参考图4,其作为例子示出了基于高频词的共同特征将原始汉语词典显式划分为两个子词典。包含短语“清蒸鲫鱼”、“红烧鲫鱼”、“鱼香肉丝”和“鱼香茄子”的原始词典401被划分成第一子词典402和第二子词典403,第一子词典402包含具有向量空间中心Center 1的“清蒸鲫鱼”和“红烧鲫鱼”,第二子词典403包含具有向量空间中心Center 2的“鱼香肉丝”和“鱼香茄子”。
[0027] 根据本发明的另一方面,处理输入数据流以产生人类可读文本。在人类可读文本包含一个或多个错误的情况下,一个或多个错误中的每个错误附近的一个或多个字符、单词或短语可以在显式划分词典的情况下用作选择子目录时的选择特征。在隐式划分词典的情况下,用在隐式划分中的相同方法(即向量维数中心或k-均值)被用于获得子目录选择标准。那么,一个或多个错误中的每个错误附近的一个或多个字符、单词或短语,连同错误一起被用作输入;并且非错误字符、单词或短语充当定位点,以在子词典中找到匹配的字符、单词或短语作为纠正错误的输出。通过子词典层次结构树来横向执行输入字符、单词或短语与子词典中的字符、单词和短语的比较。
[0028] 在一个实施例中,子词典中的字符、单词或短语的匹配不需要是精确的。可根据阈值以上的相似程度(例如具有在Unicode距离阈值内的输入字符、单词或短语与候选输出之间的Unicode差异)找到匹配。如果在子词典中找到输入字符、单词或短语的唯一匹配,则输出是子词典中的匹配的字符、单词或短语。然而,可能会找到在相似程度阈值以上的多个匹配的候选输出。在这种情况下,可利用向上调整的相似程度阈值执行第二轮比较,向上调整的相似程度阈值意味着需要更高的相似程度。重复此步骤,直到仅找到一个结果匹配进行输出。
[0029] 参考图5,其示出了根据本发明的一个实施例的用于组织和处理基于特征的数据结构的方法的流程图,所述数据结构用在语言拼写检查和自动校正中。用于组织和处理用在语言拼写检查和自动校正中的基于特征的数据结构的方法包括:在步骤501中,使用显式划分方法或隐式划分方法将原始词典划分为子词典;在步骤502中,接收输入的人类可读文本,该输入的人类可读文本包含一个或多个错误;在步骤503中,由输入文本确定子词典选择特征或选择标准;在步骤504中,基于确定的子词典选择特征或选择标准选择子词典;在步骤505中,执行错误附近的一个或多个字符、单词或短语与选择的子词典中的字符、单词和短语的第一匹配;如果找到唯一匹配,则返回结果匹配作为输出;否则,如果找到多个匹配的候选输出,则进行步骤506,即,利用上升的相似程度阈值执行选定子词典中的错误附近的一个或多个字符、单词或短语的第二匹配;以及重复步骤506,直到找到唯一匹配。
[0030] 本发明可用于所有的书面语言,包括字母表、音节表和语标类别的书面语言。根据本发明的用于组织和处理基于特征的数据结构的系统和方法的实施例也可应用于除书面语言之外的数据类型,例如图像和声音。例如,图6描述了根据本发明的一个实施例的通过显式划分方法将图像集合划分成子集合的逻辑框图。根据共同特征值(分别为:具有黄色的脸、具有小眼睛和其他特征)将原始图像集合601划分成了三个子目录602、603和604。
[0031] 本文公开的实施例可使用通用或专用计算设备、计算机处理器或者电子电路来实现,该电子电路包括但不限于数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA),以及根据本公开的教导配置或编程的其他可编程逻辑器件。根据本公开的教导,运行在通用或专用计算设备、计算机处理器或可编程逻辑器件中的计算机指令或软件代码可以容易地被技术人员配备在软件或电子技术中。
[0032] 在一些实施例中,本发明包括具有存储在其中的计算机指令或软件代码的计算机存储介质,该计算机指令或软件代码可用于对计算机或微处理器进行编程以执行本发明的任何处理。该存储介质可包括但不限于软盘、光盘、蓝光光盘、DVD、CD-ROM和磁光盘、ROM、RAM、闪存器,或适于存储指令、代码和/或数据的任何类型的媒体或设备。
[0033] 为了示例和描述的目的,提供了本发明的上述描述。这并不意味着上述描述是详尽的或者使本发明限制于公开的精确形式。对本领域的技术人员来说,许多改变和变更将是显而易见的。
[0034] 为了最好地理解本发明的原则及其实际应用,公开并描述了实施例,从而使本领域的其他技术人员能够理解本发明的适用于设想的特定用途的各种实施例和各种变更。这意味着本发明的范围由下面的权利要求和其等价物来限定。
QQ群二维码
意见反馈