输出语句生成装置、方法和程序与流程

文档序号:15445458发布日期:2018-09-14 23:18阅读:249来源:国知局

本公开内容涉及输出语句生成装置、输出语句生成方法以及输出语句生成程序。



背景技术:

在自然语言处理系统中,使用神经网络的语句生成技术已经为人所知(例如,参见日本未审查专利申请公开第h01-255966号)。近来,使用学习的神经网络的语句生成装置已经为人所知。当被提供有关键词时,学习的神经网络取其中适量数目的关键词来生成语句。



技术实现要素:

当神经网络利用一些学习数据学习时,它得知包括重叠提供的关键词的语句是正确的语句。当使用以这样的方式进行学习的学习神经网络时,存在以下问题:频繁生成取其中重叠提供的关键词的语句。在实际的自然语句中,很少存在特定词重叠的情况。因此,希望较少频繁地生成包括重叠关键词的这样的语句。然而,为了实现该目的,有必要准备大量的学习数据来提高神经网络的学习准确度。这需要较大的工作量。此外,将会失去使用现有神经网络的便利性。

本公开内容提供了用于生成避免重叠关键词的输出语句的技术,从而在使用学习神经网络时给出更自然的印象。

本公开内容的第一示例方面是用于根据多个输入关键词自动生成一个输出语句的输出语句生成装置。输出语句生成装置包括:并入学习的神经网络的候选语句生成器,其被配置成接收多个关键词,并且生成均包括多个关键词中的至少一些的多个候选语句;以及评估输出器,其被配置成:针对由候选语句生成器生成的多个候选语句中的每个来计算重叠比率,并且增大重叠比率小的候选语句的评估,从而从多个候选语句中确定输出语句。重叠比率是重叠词的出现次数相对于在对应候选语句中包括的全部词的出现次数。

根据以这样的方式配置的输出语句生成装置,不需要重新调整学习的神经网络。此外,对从学习的神经网络输出的多个候选语句进行评估:它们是否包括重叠的关键词。因此,可以通过在利用现有资源的同时进行简单处理来生成避免重叠关键词的输出语句。

此外,上述评估输出器可以增大重叠比率小的候选语句的评估,针对多个候选语句中的每个计算关键词比率,并且增大关键词比率小的候选语句的评估,从而从多个候选语句中确定输出语句并且输出该输出语句。关键词比率为:多个关键词的组与对应的候选语句中包括的全部词的组的交集中的元素的数目相比于多个关键词的组与在对应候选语句中包括的全部词的组的并集中的元素的数目。以这样的方式,通过还考虑关键词比率来进行评估,可以降低可能将取其中少量关键词的语句确定为输出语句的可能性。

在这样的情况下,上述候选语句生成器连同多个候选语句中的每个一起生成评估分数n。候选语句可能被确定为输出语句的可能性越高,评价分数n的值变得越大。评估输出器计算p=1-(重叠词的出现次数)/(全部词的出现次数)作为重叠比率。评估输出器计算j=(多个关键词的组与在对应的候选语句中包括的全部词的组的交集中的元素的数目)/(多个关键词的组与在对应的候选语句中包括的全部词的组的并集中的元素的数目)作为关键词比率。评估输出器可以输出具有n×p×j的最大值的候选语句作为输出语句。以这样的方式,通过用具体的和简单的数值代替评估,可以更快地确定输出语句。

在这样的评估中,当计算重叠比率时并且当计算关键词比率时,可以将小品词、助动词和连词排除在外。从重叠词给予自然语句的印象来看,与其他词类相比,词之中的小品词、助动词和连词是不同的(heterogeneous)。因此,在上述方法中,作为元素计数的词被限制为不包括小品词、助动词和连词的实义词。此外,除了排除小品词、助动词和连词,还可以排除特定词类(specificpartsofspeech)。通过将特定词类排除在外,可以根据使用目的和使用状态输出高准确度的输出语句。而且,可以预期计算速度增加。

本公开内容的第二示例方面是用于根据多个输入关键词自动生成一个输出语句的输出语句生成方法。输出语句生成方法包括:接收多个关键词,并且使用学习的神经网络生成均包括多个关键词中的至少一些的多个候选语句;以及针对在生成过程中生成的多个候选语句中的每个来计算重叠比率,并且增大重叠比率小的候选语句的评估,从而从多个候选语句中确定输出语句。重叠比率是重叠词的出现次数相比于在对应候选语句中包括的全部词的出现次数。

本公开内容的第三示例方面是用于根据多个输入关键词自动生成一个输出语句的输出语句生成程序。输出语句生成程序使得计算机执行:接收多个关键词,并且使用学习的神经网络生成均包括多个关键词中的至少一些的多个候选语句;以及针对在生成过程中生成的多个候选语句中的每个来计算重叠比率,并且增大重叠比率小的候选语句的评估,从而从多个候选语句确定输出语句。重叠比率是重叠词的出现次数相比于在对应候选语句中包括的全部词的出现次数。可以期望第二和第三示例方面实现与第一示例方面相同的效果。

根据本公开内容,可以生成避免重叠关键词的输出语句,从而在使用学习的神经网络时给出更自然的印象。

根据下面给出的详细描述和附图,将会更全面地理解本发明的上述和其他目的、特征和优点,附图仅仅是以说明方式给出的,因此不应被认为是对本发明的限制。

附图说明

图1示出了根据该实施方式的输出语句生成装置的功能框图;

图2是示出从输入至输出的具体示例的图;

图3是示出总处理流程的流程图;以及

图4是示出作为设备的应用示例的智能电话的图。

具体实施方式

在下文中,尽管将参照本发明的实施方式来描述本公开内容,但是根据权利要求书的本公开内容不限于以下实施方式。而且,在下面的实施方式中描述的全部组件对于解决问题的手段不一定是必不可少的。

图1是根据该实施方式的输出语句生成装置100的功能框图。当提供多个关键词时,输出语句生成装置100自动生成包括这些关键词中的至少一些的一个语句并且输出该语句。例如,输出语句生成装置100被并入与用户进行语音对话的仿人机器人中。当仿人机器人回答以确认用户的意图时,它将从用户的话语提取到的关键词传递至输出语句生成装置100,接收作为其结果而生成的语句,并且从扬声器等发出该语句。替选地,服务器可以用作输出语句生成装置100。例如,服务器可以使用经由网络从用户终端传送的关键词来生成语句,并且将该语句发送回终端。

如以上所述,输出语句生成装置100可以不包括作为硬件的独立结构。替选地,输出语句生成装置100可以被并入作为另一装置的一部分。此外,诸如asic的芯片可以是输出语句生成装置100的实体。

在该实施方式中描述的输出语句生成装置100包括作为输入接口的关键词输入单元110和作为输出接口的呈现单元140。输出语句生成装置100还包括候选语句生成单元120和评估输出单元130,作为执行计算的计算单元。例如,候选语句生成单元120和评估输出单元130中的每个可以由作为通用运算处理芯片的cpu或专用设计的asic组成。

此外,计算单元可以包括例如存储被组织到语料库中的语言数据库的存储器,或者计算单元可以被配置成访问在外部存储器中存储的语言数据库。候选语句生成单元120通过参考语言数据库来生成语句。

关键词输入单元110例如由作为硬件的麦克风和分析输入语音的语音分析单元组成。在这样的情况下,关键词输入单元110通过语音分析来提取关键词并且将它们传递至候选语句生成单元120。关键词输入单元110可以接受经由键盘等从用户直接输入的关键词。当输出语句生成装置100被并入另一装置中时,关键词输入单元110是接受来自输出语句生成装置100的目标语句或关键词的接口。

呈现单元140例如由作为硬件的扬声器和将生成的语句转换成语音信号的信号转换单元组成。在这样的情况下,呈现单元140将从评估输出单元130接收到的一个语句转换成语音信号并且从扬声器发出该语音信号。呈现单元140可以是以文本形式显示从评估输出单元130接收到的一个语句的显示单元。当输出语句生成装置100被并入至另一装置中时,呈现单元140是将从评估输出单元130接收到的语句传递至输出语句生成装置100的接口。

候选语句生成单元120通过在其中并入作为学习的神经网络的nn生成器121来组成。候选语句生成单元120可以被配置成能够经由通信接口更新nn生成器121。

nn生成器121接收从关键词输入单元110提供的关键词,生成均包括这些关键词中的至少一些的多个候选语句,并且计算每个候选语句的基本分数。基本分数由nn生成器121评估。基本分数表示候选语句作为输出语句的适合程度。基本分数是以这样的方式限定的:例如,在0与1之间,基本分数越接近1,候选语句越适合作为输出语句。换言之,nn生成器121进行评估使得计算出的值越接近1,候选语句越适合作为输出语句。

在被实现为nn生成器121的神经网络中,由外部计算机执行模式学习。在模式学习中,从作为监督数据提供的正确语句提取不包括代词、冠词、辅助小品词、助动词和连词的实义词,从所提取的实义词生成一个语句,并且重复更新各个层中的错误,使得生成的语句变得接近正确语句。

根据该实施方式的候选语句生成单元120可以使用各种类型的已知神经网络作为nn生成器121。可以用作nn生成器121的已知神经网络的示例是:通过使用lstm的seq2seq的语句生成模块(例如,参见2014年nips中ilyasutskever、oriolvinyals和quocvle,“sequencetosequencelearningwithneuralnetworks”或者2014年ssst中kyunghyuncho、bartvanmerrienboer、dzmitrybahdanau和yoshuabengio,“onthepropertiesofneuralmachinetranslation:encoder-decoderapproaches”)、通过使用rnn的seq2seq的语句生成模块(例如,参见2016年icassp中lianglu、xingxingzhang、steverenais,“ontrainingtherecurrentneuralnetworkencoder-decoderforlargevocabularyend-to-endspeechrecognition”或者iulianv.serban、alessandrosordoni、yoshuabengio、aaroncourville和joellepineauy,“buildingend-to-enddialoguesystemsusinggenerativehierarchicalneuralnetworkmodels”,https://arxiv.org/pdf/1507.04808.pdf)、通过使用双向lstm的seq2seq的语句生成模块(例如,参见xuezhema、eduardhovy,“end-to-endsequencelabelingviabi-directionallstm-cnns-crf”,https://arxiv.org/abs/1603.01354或者2015年cvpr中andrejkarpathy、lifei-fei,“deepvisual-semanticalignmentsforgeneratingimagedescriptions”)、在日本未审查专利申请公开号第h01-255966中公开的语句生成模块以及2016年在dusek+中公开的语句生成模块(参见2016年acl中ondrejdusek和filipjurcicek,“sequence-to-sequencegenerationforspokendialogueviadeepsyntaxtreesandstrings”)。

由nn生成器121生成的候选语句可以多次使用提供的关键词。这是因为在学习期间并入的神经网络已经多次学习了包括相同词的正确语句。然而,在实际的自然语句中,很少存在特定词重叠的情况。因此,希望不频繁地生成包括重叠关键词的这样的语句。然而,为了实现该目的,有必要准备大量的学习数据以提高神经网络的学习精度。这需要很大的工作量。此外,将会丢失使用现有神经网络的便利性。

由于上述原因,在该实施方式中,在仍然使用学习神经网络的同时进一步分析输出候选语句,以避免使用重叠关键词的候选语句。评估输出单元130计算重叠比率和关键词比率以评估候选语句。重叠比率表示由候选语句生成单元120生成的多个候选语句中的每个中实义词重叠的程度。关键词比率表示由候选语句生成单元120生成的多个候选语句中的每个中有多少提供的多个关键词被采用。然后,评估输出单元130将具有最高评估的候选语句确定为输出语句,并且将其输出至呈现单元140。在下文中,以下将通过示出具体示例来描述用于计算和评估重叠比率和关键词比率的方法。

图2是示出从输入至输出的具体示例的图。这里,描述了以下情况:提供三个实义词“commit”、“sin”和“every”作为关键词的示例。输出语句生成装置100旨在输出自然语句,其包括尽可能多的这些关键词,并且还避免相同关键词的重叠。

nn生成器121根据所提供的关键词“commit”、“sin”和“every”生成多个语句。在所生成的语句中,具有高基本分数的三个语句被确定为候选语句。在这种情况下,假设已经生成“icommitasinofasin”的候选语句1、“icommitaruleofasin”的候选句子2以及“icommiteverysin”的候选语句3。此外,在该示例中,假设针对三个候选语句的基本分数被计算为n=0.8。

评估输出单元130接收这些三个候选语句,并且分数计算单元131计算评估值。分数计算单元131首先计算惩罚系数。惩罚系数是重叠比率的一个指标。重叠比率表示重叠实义词的出现次数相对于候选语句中包括的全部实义词的出现次数的比率。更具体地说,惩罚系数p定义如下。

p=1-(重叠实义词的出现次数)/(全部实义词的出现次数)

由于在候选语句1中包括“sin”、“sin”和“commit”三个实义词,所以候选语句1中的实义词的出现次数是“3”。此外,在候选语句1中,“sin”出现两次。因此,重叠的实义词的出现次数是“1”。注意,当候选语句中重叠的相同实义词出现n(n是2或更大的自然数)次时的出现次数被计为“n-1”。因此,候选语句1的惩罚系数是p=1-1/3=2/3。

由于在候选语句2中包括“sin”、“rule”和“commit”三个实义词,所以候选语句2中的实义词的出现次数是“3”。此外,在候选语句2中,不存在重叠的实义词。因此,重叠的实义词的出现次数是“0”。因此,候选语句2的惩罚系数是p=1-0/3=1。

由于在候选语句3中包括“sin”、“every”和“commit”三个实义词,所以候选语句3中的实义词的出现次数是“3”。此外,在候选语句3中,不存在重叠的实义词。因此,重叠的实义词的出现次数是“0”。因此,候选语句3的惩罚系数是p=1-0/3=1。

然后,分数计算单元131计算jaccard系数。jaccard系数是关键词比率的一个指标。关键词比率表示:关键词的组与在候选语句中包括的全部实义词的组的交集中的元素数目相比于关键词的组与在候选语句中包括的全部实义词的组的并集中的元素的数目。更具体地说,如下限定jaccard系数。

j=(关键词的组与在候选语句中包括的全部实义词的组的交集中的元素的数目)/(关键词的组与在候选语句中包括的全部实义词的组的并集中的元素的数目)

关键词的组是{“commit”“sin”“every”},并且在候选语句1中包括的全部实义词的组是{“sin”“commit”}。这些组的交集是{“commit”“sin”},并且元素的数目是“2”。同样,这些组的并集是{“commit”“sin”“every”},并且元素的数目是“3”。因此,候选语句1的jaccard系数是j=2/3。

类似地,在候选语句2中包括的全部实义词的组是{“sin”“rule”“committed”}。与关键词的组的交集是{“commit”“sin”},并且元素的数目是“2”。同样,并集是{“commit”“sin”“every”“rule”},并且元素的数目是“4”。因此,候选语句2的jaccard系数是j=2/4=1/2。

类似地,在候选语句3中包括的全部实义词的组是{“sin”“every”“commit”}。与关键词的组的交集是{“commit”“sin”“every”},并且元素的数目是“3”。同样,这些组的并集是{“commit”“sin”“every”},并且元素的数目是“3”。因此,候选语句3的jaccard系数是j=3/3=1。

确定单元132接收由分数计算单元131计算出的每个候选语句的p值和j值,针对每个候选语句计算n×p×j,并且将计算的值确定为最终分数。具体地,候选语句1的最终分数为0.36,候选语句2的最终分数为0.40,候选语句3的最终分数为0.80。因此,确定单元132将具有最高分数的候选语句3确定为输出语句。

注意,从重叠词给予自然语句的印象的来看,与其他词类相比,词语之中的小品词、助动词和连词是不同的。因此,在上述方法中,在每个候选语句中,作为元素要被计数的词被限制为不包括代词、冠词、小品词、助动词和连词的实义词。然而,包括代词、冠词、小品词、助动词和连词的全部词都可以根据目的而被计数。相反地,即使在实义词之中,诸如副词和形容词的某些词类也可以被排除在外。在任何情况下,可以根据输出语句生成装置100的使用目的和使用状态进行适当的调整。通过以这样的方式进行调整,可以根据使用目的和使用状态输出高精确度的输出语句。而且,由于简化计算,可以预期计算速度提高。

在上述方法中,惩罚系数被用作重叠比率。然而,可以使用任何特定的计算公式,只要是增大重叠比率小的候选语句的评估的系数即可。类似地,在上述方法中,jaccard系数被用作关键词比率。然而,可以使用任何特定的计算公式,只要是增大关键词比率大的候选语句的评估的系数即可。

此外,在上述示例中,描述了对于候选语句而言基本分数是相同的以阐明惩罚系数和jaccard系数对分数的影响。然而,实际的nn生成器121可以给出不同的基本分数。因此,关于具有惩罚系数和jaccard系数的相同乘积的多个候选语句,根据候选语句的基本分数的大小来选择是否将它们确定为输出语句。

在上面的示例中,考虑了重叠比率和关键词比率两者。然而,关于避免候选语句包括重叠提供的关键词,可以仅考虑重叠比率。在那样的情况下,基本分数可以乘以惩罚系数来获得最终分数。

接下来,将描述输出语句生成装置100的总处理流程。图3是示出总处理流程的流程图。所示出的处理流程是通过执行从存储器读出的输出语句生成程序来实现的。

在步骤s101中,关键词输入单元110接受多个关键词的输入。取决于装置的配置,如上所述,关键词输入单元110可以从用户的话语提取关键词,或者可以从键盘等直接接受关键词。

在后续的步骤s102中,候选语句生成单元120生成多个候选语句和各个基本分数并且输出它们。更具体地,如上所述,作为学习的神经网络的nn生成器121执行该处理。

在步骤s103中,评估输出单元130接收多个候选语句和各个基本分数,并且分数计算单元131计算每个候选语句的经校正的分数。经校正的分数是通过校正基本分数而获得的分数。在参照图2描述的示例中,经校正的分数是通过将基本分数乘以惩罚系数和jaccard系数来获得的。

在步骤s104中,在评估输出单元130中,确定单元132将多个候选语句的经校正的分数相互比较,将具有最高校正分数的候选语句确定为输出语句,并且将输出语句传递给呈现单元140。取决于装置的配置,如上所述,呈现单元140从扬声器发出所确定的语句或者以文本语句将其显示在显示面板上。当完成对输出语句的呈现时,一系列处理结束。

图4是示出作为设备的应用示例的智能电话700的图。如图4中所示,输出语句生成装置100可以被并入智能电话中。智能电话700包括显示单元710、麦克风711和扬声器712。麦克风711用作关键词输入单元110的一部分。显示单元710和扬声器712用作呈现单元140的一部分。

呈现单元140可以在显示单元710上显示例如表示cg中的机器人的角色800。角色800具有如同对话机器人那样的头部和身体。呈现单元140可以根据输出语句的话语通过动画来表达动作。输出语句可以从扬声器712发出。另外地或替选地,可以在显示单元710上显示气球810并且可以以文本形式将输出语句通知给用户。

可以使用任何类型的非暂态计算机可读介质来存储程序并将其提供给计算机。非暂态计算机可读介质包括任何类型的有形存储介质。非暂态计算机可读介质的示例包括磁存储介质(例如软盘、磁带、硬盘驱动器等)、光磁存储介质(例如,磁光盘)、cd-rom(光盘只读存储器)、cd-r(可刻录光盘)、cd-r/w(可重写光盘)以及半导体存储器(例如,掩模型rom、prom(可编程rom)、eprom(可擦除prom)、闪存rom、ram(随机存取存储器)等)。可以使用任何类型的暂态计算机可读介质将程序提供给计算机。暂态计算机可读介质的示例包括电信号、光信号和电磁波。暂态计算机可读介质可以经由有线通信线路(例如,电线和光纤)或无线通信线路将程序提供给计算机。

因此,根据描述的本发明,明显的是,本发明的实施方式可以以许多方式变化。这样的变化不被认为是脱离本发明的精神和范围,并且对于本领域技术人员明显的是,全部这样的修改旨在被包括在所附的权利要求的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1