具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种特定文本信息的识别的方法,如图1所示,该方法应用于识别目标文本中具有特定格式的文本信息,且该特定格式能够通过不同状态的转移进行限定与表达,具体步骤包括:
101、根据预置维度对目标文本进行多维度向量化。
要识别目标文本首先是要对该目标文本进行向量化表示,而向量化文本也是一般文本处理都要执行的操作步骤。本发明实施例对目标文本进行的向量化是对目标文本进行分词处理,将分词结果作为一个维度来表示该目标文本,同时,还将该目标文本以其他预置的维度进行向量化表示,使得目标文本具有多个维度的向量化表示结果,例如,可以基于分词的结果将目标文本进一步分解为字的向量化表示,以字的维度对目标文本进行表示,或者是根据分词的词性对目标文本进行向量化表示等。
本发明实施例中对目标文本的多维度向量化表示需要预先设置向量化的维度数量,维度数量越高,对应的目标文本处理复杂度也越大,而其向量化表示的结果相对于与其他文本的区分度也越高。为了能够平衡文本处理的复杂性与区分度的关系,将维度数量的确定设置为可选模式,也就是在文本处理之前,可根据目标文本的具体情况自由设定文本向量化的维度数量。
102、获取向量化文本中符合预置状态转移规则的文字信息。
其中,预置状态转移规则就是根据所要识别的特定文本信息制定的判断规则,本发明实施例中的预置的状态是由特定文本信息的格式所确定的,例如,特定文本信息为地址时,则预置的状态中就可以为地名、省、市、区县、街道等状态,而为时间信息时,包括的状态有:数字、年、月、日,或者是小时、分钟、秒等,其中数字还包括中文或数字。针对所设置的状态,要识别目标文本中是否存在特定的文本信息,还需要确定不同状态之间的转移规则。比如,所要识别的时间格式是包括:“时”、“分”、“秒”三个状态的时间信息,那么所设置的状态转移规则就为:“数字”至“数字”;“数字”至“时”、“分”、“秒”;“时”至“数字”;“分”至“数字”;并且以“数字”状态启示,以“时”或“秒”状态结束,根据上述的状态转移规则,在目标文本中所匹配出的时间信息可能为,1时2分3秒,或者12时01分50秒;还可以是3分40秒16时等等。
对于预置的状态转移规则,在本发明实施例中,可以设置单独的状态转移规则,也可以设置多个不同状态的不同转移规则,还可以针对相同的状态设置不同的转移规则。例如,针对上述的时间状态转移规则,还可以将其中的“时”状态去除再设置一条状态转移规则,如此所识别的结果就还可以出现3分40秒或者5秒13分等结果。而如果在上述的时间状态转移规则中再加入地址状态转移规则,则在识别结果中就可能出现对应的地址结果,如北京市海淀区中关村大街1号这样的识别结果。
需要说明的是,本发明实施例中所设置的状态,能够对应于不同维度中的向量值,也就是说,根据101的多维度向量化表示的目标文本中不同维度下的向量值都与所设置的状态存在对应关系,而这里所指的对应关系并非为一一对应,例如,在词性的向量维度中,“数字”状态对应的是数词,而“时”、“分”、“秒”状态所对应的都是时间名词;而在字的向量维度中,“数字”状态对应的是阿拉伯数字或中文数字,而“时”、“分”、“秒”状态所对应的就分别为:时、分、秒这三个字。可见,对于不同维度,在判断状态转移时其区分度的准确性也存在差异。对于状态区分度高的维度,其判断的准确性也相对较高。
103、利用动态规划算法计算所获取的文字信息,并确定出符合预设格式的最优文字信息加以输出。
对于102中所获取的文字信息,当所设置的状态转移规则较为宽泛时,针对目标文本中同一条特定格式的文字信息,可能会得出多个识别结果,例如,对12时01分50秒这条时间信息,最后得到的结果可能包括12时01分50秒,和2时01分50秒,而对于后一个结果显现是错误的识别结果。而要避免出现不需要或错误的结果,就需要对所获取的文字信息进一步计算,在本发明实施例中,采用动态规划算法计算符合特定文本信息的预设格式的最优结果。也就是通过动态规划算法计算与状态转移规则最为匹配,或者长度最长的文本信息。由于动态规划算法的方式众多,并且也都能够实现最优结果的计算,因此对于具体的态规划算法,本发明实施例不做具体限定。
需要说明的是,本步骤中的动态规划计算是针对目标文本中同一条特定格式的文字信息所计算的最优文字信息,也就是说,对于目标文本中不同的文字信息是分别采用动态规划算法来计算最优文字信息的。从识别结果上看,最终所输出的识别结果将是在目标文本中不同位置的符合状态转移规则的多条最优文字信息。
结合上述的实现方式可以看出,本发明实施例所采用的特定文本信息的识别方法,主要用于识别目标文本中具有一定特定格式的文本信息,且这些特定格式能够通过不同状态的转移进行限定与表达。通过对目标文本的多维度向量化,确定其状态变化的维度,并根据向量化文本中字符的状态变化,利用预置的状态转移规则以及动态规划算法计算得到符合特定格式的文字信息,再将该文字信息作为识别结果加以输出显示。相对于现有的识别方式,本发明实施例所采用的识别方式是将状态转移与动态规划计算相结合,在计算前只需要设定状态转移的规则以及参与计算的向量维度,即可得出相应的识别结果,而不需要获取相关的模型训练样本进行反复的训练学习。因此,在实际应用中只需通过简单的设置,便能够快速地对目标文本进行识别,得到该目标文本中具有特定格式的特定文本信息。
以下为了更加详细地说明本发明提出的一种特定文本信息的识别方法,本发明实施例将结合具体示例说明所提出了一种特定文本信息的识别方法,如图2所示,该方法在识别特定文本信息的过程中,匹配状态转移与动态规划计算是同时执行的,即在匹配状态转移的过程中同时计算出最优的文字信息组合并加以输出,具体步骤如下:
201、设置状态转移规则。
本发明实施例以短句代表目标文本进行举例说明,短句为“中国诞生于1949年10月1日的上午”,所要识别的特定文本信息为日期信息,也就是“1949年10月1日”。在进行识别操作之前,首先要确定日期的状态转移规则,针对本例所要识别的日期信息,需要定义4个状态,即“数字”,“年”,“月”,“日”。该日期信息的格式所对应的状态转移关系为:数字转移为年或月或日或数字;年转移为数字;月转移为数字。
在确定状态转移规则的同时,还需要确定日期信息的起始状态和结束状态,以此来确定特定格式的文本信息的起始点和结束点,在该例中,起始状态为“数字”,结束状态为“日”。
202、对目标文本中的字进行多维度向量化。
对短句中的每一个字进行多维度的向量化主要是以字、词性、分词结果三个维度将其进行向量化,其中,分词结果是将短句通过分词处理所得到的词。对于分词处理所采用的具体方式,本发明实施例不做具体限定。词性的确定是根据预先设置的词性对照表进行的向量化处理。具体的向量化结果详见下表:
表1、基于三维度的短句向量化表
其中,第一行为以字的维度进行向量化表示;第二行是以词性的维度进行向量化表示,第三行是以分词结果的维度进行的向量化表示。
对于上表中词性的向量化表示,是基于下面的词性对照表:
表2、词性对照列表
其中,该表为截取词性对照表中的部分内容,而每一种词性还会对应众多的词或字。
203、根据预置状态转移规则计算符合预设格式的最优文字信息。
在完成对目标文本的多维向量化表示后,就是根据201中设置的状态转移规则,在结合动态规划算法计算出最符合预设格式的文字信息。具体的识别匹配过程包括:
首先是根据目标文本中的字符排列顺序确定具有起始状态的首字符。由于定义起始状态为“数字”,针对短句而言,在按照顺序逐一判断短句中的每个字后,在判断到“1”字时,其符合“数字”状态,将其设置为文字信息的起始点。
其次,是判断与“1”相邻的“9”字之间的状态变化关系是否符合所设置的状态转移关系,若符合则依次向后进行判断,而如果不符合则判断当前字,即“9”字,是否为具有起始状态的字符,并在此基础上继续匹配状态转移规则。
第三,是在判断出有两个以上的多个连续字符合状态转移规则后,对于当前字在判断其符合状态转移规则之后,还需要再判断该字的当前状态是否为结束状态,也就是判断字的状态是否为“日”状态,若不是,则向后面的字继续判断,而如果是,则确定当前字为尾字符,并将首字符与尾字符所截取出的文字信息作为待选的、符合状态转移规则的文字信息。对于上面的短句,所截取出的时间信息为:“1949年10月1日”,“949年10月1日”,“49年10月1日”,“9年10月1日”,“1日”。对于这些时间信息,显然是第一条“1949年10月1日”为所需的最优文本信息。
而要将上面的不正确的时间信息过滤掉,就需要通过动态规划算法来计算最合理的时间信息。在本发明实施例中,采用维特比算法(viterbi)来确定最优的时间信息。该算法主要用于计算相邻两个字之间的状态转换的概率,该算法现有的应用场景主要用是在隐马尔可夫模型中,其中,在具体计算时还需要满足一定的条件设定,即当前时刻的状态仅由前一时刻的状态确定。而在本发明实施例中,由于前一个字的状态会对应于多个不同的维度,因此,在计算时,当前字的状态概率值将是针对前一个字在不同维度中的概率值之和。进一步的,由于不同维度的向量化表示对状态转移的区分程度不同,因此,可以针对不同的维度设置不同的权重,以此计算出当前字的状态的加权概率值。需要说明的是,在计算之前,需要先设置参与计算的维度数量,以及各维度的权重值,而维度的数量则取决于对目标文本向量化的维度数量,也就是说,动态规划计算时所确定的维度数量是小于等于向量化的维度数量的。
对于目标文本中的单个字采用维特比算法计算得到的不同维度的加权概率值后,将该概率值定义为不同维度下相邻字符间符合预设格式的综合概率值。再将该综合概率值与预置的阈值进行比较,若大于,则将与该字相邻的字确定为最优文本信息的一部分。而要小于该阈值,则可以将这两个字拆分。其中,阈值为经验值,是可以通过人工设置进行调整的。
在本发明实施例中,经过维特比算法或其他的动态规划算法的计算,其目的就是要得到一条最符合特定文本信息格式的最优文本信息,在上述的短句中,其主要作用就是选择一个最长的文本信息,即“1949年10月1日”。
此外,对于“1日”的错误结果,可以通过状态转移规则的设置进行过滤,例如,在状态转移规则中,加入“年”,“月”,“日”状态均应出现在识别出的时间信息中,如此便可避免出现“1日”的错误结果。也就是说,可以通过设置文字信息中字符的状态转移格式,判断该格式是否符合特定文本信息的状态转移格式来获取相应的文字信息。
204、输出识别出的最优文本信息。
经过动态规划计算后,最终输出的识别结果为“1949年10月1日”,而如果目标文本中存在过个日期信息时,会针对不同的日期信息对应的输出一个最优的识别结果。从而提高对目标文本内容的识别准确度。
进一步的,作为对上述方法的实现,本发明实施例提供了一种特定文本信息的识别装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置用于分析或获取文本信息的设备中,如图3所示,该装置包括:
向量化单元31,用于根据预置维度对目标文本进行多维度向量化,得到向量化文本;
获取单元32,用于获取所述向量化单元31得到的向量化文本中符合预置状态转移规则的文字信息;
确定单元33,用于利用动态规划算法计算所述获取单元32得到的文字信息,并确定符合预设格式的最优文字信息,输出所述最优文字信息为所述目标文本中特定文本信息的识别结果。
进一步的,如图4所示,所述确定单元33包括:
设置模块331,用于设置动态规划算法中计算字符的维度数量,以及各维度的权重值;
计算模块332,用于利用维特比算法计算所述设置模块331设置的不同维度下相邻字符间符合预设格式的综合概率值;
确定模块333,用于将所述计算模块332计算的综合概率值大于预置阈值的文字信息确定为最优文字信息。
进一步的,如图4所示,所述装置还包括:
设置单元34,用于在所述获取单元32获取所述向量化文本中符合预置状态转移规则的文字信息之前,根据所述预设格式设置字符状态的转移关系;
所述设置单元34还用于,设置所述预设格式的起始状态和结束状态。
进一步的,如图4所示,所述获取单元32包括:
确定模块321,用于根据所述向量化文本中的字符排列顺序确定具有起始状态的首字符;
第一判断模块322,用于判断所述确定模块321确定的首字符与其后面的相邻字符的状态转移是否符合设置的转移关系;
第二判断模块323,用于判断所述第一判断模块322判断的符合所述转移关系的字符是否具有结束状态,若具有则确定所述字符为尾字符;
获取模块324,用于获取所述确定模块321确定的首字符至所述第二判断模块323确定的尾字符之间的文字信息为符合预置状态转移规则的文字信息。
进一步的,如图4所示,所述获取模块324包括:
判断子模块3241,用于判断所述文字信息中字符的状态转移格式是否符合特定文本信息的状态转移格式;
获取子模块3242,用于当所述判断子模块3241的判断结果为符合时,获取所述文字信息为符合预置状态转移规则的文字信息。
进一步的,如图4所示,所述向量化单元31包括:
分词模块311,用于对所述目标文本进行分词;
转化模块312,用于选择字、词性以及所述分词模块311的分词结果为维度,将所述目标文本转化三维向量。
综上所述,本发明实施例所采用的特定文本信息的识别方法及装置,主要用于识别目标文本中具有一定特定格式的文本信息,且这些特定格式能够通过不同状态的转移进行限定与表达。通过对目标文本的多维度向量化,确定其状态变化的维度,并根据向量化文本中字符的状态变化,利用预置的状态转移规则以及动态规划算法计算得到符合特定格式的文字信息,再将该文字信息作为识别结果加以输出显示。相对于现有的识别方式,本发明实施例所采用的识别方式是将状态转移与动态规划计算相结合,在计算前只需要设定状态转移的规则以及参与计算的向量维度,即可得出相应的识别结果,而不需要获取相关的模型训练样本进行反复的训练学习。因此,在实际应用中只需通过简单的设置,便能够快速地对目标文本进行识别,得到该目标文本中具有特定格式的特定文本信息。而对于状态转移规则的设置,通过设置的详细程度还可以实现对所需文本信息的模糊匹配。此外,对于增加动态规划的计算维度以及对应的权值分配能够更加准确地控制特定文本信息内容,从而提高特定文本信息的识别准确度。
所述特定文本信息的识别装置包括处理器和存储器,上述向量化单元、获取单元和确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现快速、便捷地识别目标文本中具有特定格式的文本信息。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:根据预置维度对目标文本进行多维度向量化,得到向量化文本;获取所述向量化文本中符合预置状态转移规则的文字信息;利用动态规划算法计算所述文字信息,并确定符合预设格式的最优文字信息,输出所述最优文字信息为所述目标文本中特定文本信息的识别结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。