具体实施方式
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
词是一个句子的基本单元。对于人工智能语义识别而言,机器要想理解人类用户的一句话,首先要理解每个词的意思。在人工智能语义识别系统的知识库中存在各种词库,例如同义词库、词类库等等,其中存储了海量的机器能够理解的词语。
若一个词语在知识库中已经存在,机器即能理解该词语。然而,在人机对话时,人类用户可能不一定会使用该词语,也有可能会使用该词语的同义词。因此,机器也需要能够理解该词语的同义词。包括同义词的词库可被称为同义词库。
一般地,知识库中维护有同义词库。传统上,同义词库中的同义词是通过人力“想”出来的。这种方法非常耗费人力,而且“漏想”的概率很高。
在本发明中,通过利用现有的同义词库,自动地生成新的同义词。随着同义词库的不断迭代、更新。同义词库的规模会越来越大,亦越来越准确。
第一实施例:
图1是示出了根据本发明的第一实施例的生成同义词的方法100的流程图。如图1所示,方法100可包括以下步骤:
步骤102:将输入的新词拆分成多个子词。
首先,输入希望为其生成同义词的新词。例如,该输入的新词为W。该新词被拆分为多个子词,例如A1+B1。
这里,可以基于现有的同义词库来拆分该新词,例如准则是使得拆分所得到的至少一部分子词在现有的同义词库中具有同义词。换言之,拆分得到的A1、B1中至少有一者存在于现有的同义词库中,从而能够找到A1、B1中至少一者的同义词。例如,现有的同义词库中可以找到A1的同义词、或者可以找到B1的同义词,或者较理想的可以找到A1、B1两者的同义词。
注意,这里新词W被拆分为两个子词,但是可以理解的是,这仅仅是作为示例以用于说明,事实上,W也可以被拆分为两个以上的子词。
此拆分可以是基于人工选择来执行的,也可以是自动拆分的,或者是自动拆分和人工选择相结合的,例如,自动拆分后人工加以筛选确认。
步骤104:从现有的同义词库检索这多个子词中各个子词的同义词。
获得该新词W的子词A1、B1后,可以从现有同义词库中检索出每个子词的同义词,例如在现有同义词库中:
子词A1包括同义词:A1、A11、A12
子词B1包括同义词:B1、B11、B12、B13
注意,这里由于A1、A11、A12相互之间是同义词,所以A1也被广义地认为是子词A1本身的同义词。类似的,B1也是子词B1的同义词。
这里子词A1包括三个同义词,子词B1包括四个同义词,但是这里的数目仅仅是示例以用于说明,每个子词的同义词的数量根据实际情况可以是其他的数目。
步骤106:排列这多个子词的同义词所有可能的组合以获得若干同义词组合。
继续上述例子:子词A1的同义词为:A1、A11、A12;
子词B1的同义词为:B1、B11、B12、B13
子词A1和B1的同义词的所有可能组合如下表1所示:
表1
步骤108:筛选该若干同义词组合以获得该新词的同义词。
在一实例中,该筛选可以是取决于人工选择的。该人工选择可以考虑各种因素,例如可以响应于人工选择从这些同义词组合中选取语义通顺的同义词组合作为该新词的同义词。
以上述表1中的所有组合为例,若A11+B11、A12+B13在语义上是通顺的,而其他组合是语义不同的,则可以选择A11+B11、A12+B13这两个同义词组合作为该新词W的同义词,而放弃其他同义词组合。
在另一实例中,该筛选可以是完全自动地执行的。例如,可以根据现有词库来选取已经存在于现有词库中的同义词组合作为所述新词的同义词。
以上述表1中的所有组合为例,若A11+B11、A12+B13恰好是知识库的词库中已经存在的词语,而其他组合则不是,则可以选择A11+B11、A12+B13这两个同义词组合作为该新词W的同义词,而放弃其他同义词组合。
第二实施例:
图2是示出了根据本发明的第二实施例的生成同义词的方法200的流程图。如图2所示,方法200可包括以下步骤:
步骤202:将输入的新词拆分成多个子词。
首先,输入希望为其生成同义词的新词。例如,该输入的新词为W。该新词被拆分为多个子词,例如A1+B1。
这里,可以基于现有的同义词库来拆分该新词,例如准则是使得拆分所得到的至少一部分子词在现有的同义词库中具有同义词。换言之,拆分得到的A1、B1中至少有一者存在于现有的同义词库中,从而能够找到A1、B1中至少一者的同义词。例如,现有的同义词库中可以找到A1的同义词、或者可以找到B1的同义词,或者较理想的可以找到A1、B1两者的同义词。
此拆分可以是基于人工选择来执行的,也可以是自动拆分的,或者是自动拆分和人工选择相结合的,例如,自动拆分后人工加以筛选确认。
步骤204:检索每个子词所在的词类所包含的所有同词类词语。
获得该新词W的子词A1、B1后,可检索知识库中的词类库。一般地词类是按照词的语义进行划分的,把一组相关的词组织在一起形成一个树状结构的词类库,在这个树状结构中的任意一个非叶子结点都称作一个词类(广义词类),其中直接包含词的第一级词类称为狭义词类。定义词类的目的主要是为了分词、构造语义表达式以及使用其携带的语义信息进行语义相似度计算。
从词类库中,可以检索到每个子词A1、B1所在的词类所包含的所有词(在本文称为“同词类词语”)。例如,在现有的词类库中:
A1所在的词类包括:A1、A2,那么A1的同词类词语为A1、A2;
B1所在的词类包括:B1、B2,那么B1的同词类词语为B1、B2。
步骤206:从现有的同义词库检索各子词的所有同词类词语的同义词以作为相应子词的同义词。
即,可以从同义词库中检索所有同词类词语A1、A2、B1、B2的同义词,例如将A1、A2的同义词作为子词A1的同义词,将B1、B2的同义词作为子词B1的同义词。
例如,在现有的同义词库中,
A1包括同义词:A1、A11、A12
A2包括同义词:A2、A21、A22
B1包括同义词:B1、B11、B12、B13
B2包括同义词:B2、B21、B22
相应地:
子词A1的同义词为:A1、A11、A12、A2、A21、A22
子词B1的同义词为:B1、B11、B12、B13、B2、B21、B22
步骤208:排列这多个子词的同义词所有可能的组合以获得若干同义词组合。
继续上述例子:
子词A1的同义词为:A1、A11、A12、A2、A21、A22;
子词B1的同义词为:B1、B11、B12、B13、B2、B21、B22
子词A1和B1的同义词的所有可能组合如下表2所示:
表2
步骤210:筛选该若干同义词组合以获得该新词的同义词。
在一实例中,该筛选可以是取决于人工选择的。该人工选择可以考虑各种因素,例如可以响应于人工选择从这些同义词组合中选取语义通顺的同义词组合作为该新词的同义词。
以上述表2中的所有组合为例,若A11+B11、A12+B22、A21+B13在语义上是通顺的,而其他组合是语义不同的,则可以选择A11+B11、A12+B22、A21+B13这两个同义词组合作为该新词W的同义词,而放弃其他同义词组合。
在另一实例中,该筛选可以是完全自动地执行的。例如,可以根据现有词库来选取已经存在于现有词库中的同义词组合作为所述新词的同义词。
以上述表2中的所有组合为例,若A11+B11、A12+B22、A21+B13恰好是知识库的词库中已经存在的词语,而其他组合则不是,则可以选择A11+B11、A12+B22、A21+B13这两个同义词组合作为该新词W的同义词,而放弃其他同义词组合。
第三实施例:
图3是示出了根据本发明的第三实施例的生成同义词的方法300的流程图。如图3所示,方法300可包括以下步骤:
步骤302:将输入的新词拆分成多个子词。
首先,输入希望为其生成同义词的新词。例如,该输入的新词为W。该新词被拆分为多个子词,例如A1+B1。
这里,可以基于现有的同义词库来拆分该新词,例如准则是使得拆分所得到的至少一部分子词在现有的同义词库中具有同义词。换言之,拆分得到的A1、B1中至少有一者存在于现有的同义词库中,从而能够找到A1、B1中至少一者的同义词。例如,现有的同义词库中可以找到A1的同义词、或者可以找到B1的同义词,或者较理想的可以找到A1、B1两者的同义词。
此拆分可以是基于人工选择来执行的,也可以是自动拆分的,或者是自动拆分和人工选择相结合的,例如,自动拆分后人工加以筛选确认。
步骤304:检索每个子词所在的词类所包含的所有同词类词语。
获得该新词W的子词A1、B1后,可以检索到每个子词A1、B1所在的词类所包含的所有词(在本文称为“同词类词语”)。例如,在现有的词类库中:
A1所在的词类包括:A1、A2,那么A1的同词类词语为A1、A2;
B1所在的词类包括:B1、B2,那么B1的同词类词语为B1、B2。
步骤306:从各子词的所有同词类词语中删除与该新词的词义相关性较弱的同词类词语。
上述检索到的每个子词的所有同词类词语中,可能并不是每个同词类词语都适用于组合。例如,有的同词类词语可能与最初新词W在词义上相关性较弱,甚至完全不相关,则这些词义相关性较弱的同词类词语可被删除。
例如,若A1的同词类词语A1、A2中,A2的词义与新词W的词义相关性较弱,则可以删除A2。若B1的同词类词语B1、B2中,B2的词义与新词W的词义相关性较强,则可以保留B2。
步骤308:从现有的同义词库检索各子词的经删除后的、与该新词的词义相关性较强的同词类词语的同义词作为相应子词的同义词
以上述示例为例,
子词A1的经删除后的、与该新词W的词义相关性较强的同词类词语为A1(即子词A1自身);
子词B1的经删除后的、与该新词W的词义相关性较强的同词类词语为B1、B2(即除了子词B1自身,还包括B2)。
例如,在现有的同义词库中,
A1包括同义词:A1、A11、A12
B1包括同义词:B1、B11、B12、B13
B2包括同义词:B2、B21、B22
相应地:
子词A1的同义词为:A1、A11、A12;
子词B1的同义词为:B1、B11、B12、B13、B2、B21、B22。
步骤310:排列这多个子词的同义词所有可能的组合以获得若干同义词组合。
继续上述例子:
子词A1的同义词为:A1、A11、A12;
子词B1的同义词为:B1、B11、B12、B13、B2、B21、B22。
子词A1和B1的同义词的所有可能组合如下表3所示:
表3
步骤312:筛选该若干同义词组合以获得该新词的同义词。
在一实例中,该筛选可以是取决于人工选择的。该人工选择可以考虑各种因素,例如可以响应于人工选择从这些同义词组合中选取语义通顺的同义词组合作为该新词的同义词。
以上述表3中的所有组合为例,若A11+B11、A12+B22在语义上是通顺的,而其他组合是语义不同的,则可以选择A11+B11、A12+B22这两个同义词组合作为该新词W的同义词,而放弃其他同义词组合。
在另一实例中,该筛选可以是完全自动地执行的。例如,可以根据现有词库来选取已经存在于现有词库中的同义词组合作为所述新词的同义词。
以上述表3中的所有组合为例,若A11+B11、A12+B22恰好是知识库的词库中已经存在的词语,而其他组合则不是,则可以选择A11+B11、A12+B22这两个同义词组合作为该新词W的同义词,而放弃其他同义词组合。
实例:
以上示出了本发明的各个实施例,现在以实际的词语“农业机器”为例,示出本发明的具体实例。
(a)输入新词:“农业机器”
(b)拆分结果:[农业]+[机械|电脑|仪器]
即包含“农业”的词类有“农业”;
包含“机器”的词类有“机械”、“电脑”和“仪器”
(c)筛选
在上述同词类词语中,“电脑”与新词“农业机器”在词义上几乎没有相关性,因此被删除。“仪器”与新词“农业机器”在词义上相关性较弱,因此也可以删除。“机械”与“农业机器”在词义上相关性较强,因此保留。
(d)检索同义词
假设在现有同义词库中:
“农业”包括同义词:农、农业、农村、农用
“机械”包括同义词:器械、机、机具、机器、机械、械
(e)排列组合产生所有可能的结果,如下表4所示
表4
(f)筛选
选择“正确”的结果。除了人工勾选外,还可以根据已有的“词库”自动判断是否为正确的结果。
筛选后的可被用作“农业机器”的同义词组合为:农机、农机具、农业机器、农业器械、农用机器、农用机械。
由此,可以得到“农业机器”的同义词:农机、农机具、农业机器、农业器械、农用机器、农用机械。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
图4是示出了根据本发明的一方面的生成同义词的装置400的框图。
如图4所示,装置400可包括拆分单元402、检索单元404、组合单元406以及筛选单元408。
拆分单元402可用于将输入的新词拆分成多个子词。在一实例中,拆分单元402可基于现有的同义词库来拆分新词,使得拆分所得到的至少一部分子词在现有的同义词库中具有同义词。
检索单元404可用于从现有的同义词库检索这些子词中各个子词的同义词。在一实例中,检索单元404可检索每个子词所在的词类所包含的所有同词类词语,然后从现有的同义词库检索各子词的所有同词类词语的同义词以作为相应子词的同义词。
组合单元406可用于排列这些子词的同义词所有可能的组合以获得若干同义词组合。
然后,可由筛选单元408筛选这若干同义词组合以获得该输入的新词的同义词。在一实例中,该筛选单元可响应于人工选择从这若干同义词组合中选取语义通顺的同义词组合作为该新词的同义词,或者可根据现有词库来选取已经存在于现有词库中的同义词组合作为该新词的同义词,或者可结合这两者。
在另一实例中,在检索单元404检索到每个子词的所有同词类词语后,筛选单元408可从这些同词类词语中删除与该新词的词义相关性较弱的同词类词语,然后检索单元404可仅检索各子词的经删除后的、与该新词的词义相关性较强的同词类词语的同义词作为相应子词的同义词。
生成的同义词可以用于更新同义词库,因为还保留编辑修改过程,随着同义词库的不断迭代、更新,同义词库的规模会越来越大,亦越来越准确。通常同义词库的使用会限定在特定领域,以满足服务需求,例如面对银行用户有金融词库,面对航空公司有航空服务词库,所以使用程序自动处理错误率可以很低,人工介入的需求不高。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
软件应当被宽泛地解释成意味着指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其它术语来述及皆是如此。
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。