一种实现指代消解的方法及装置与流程

文档序号:20753424发布日期:2020-05-15 17:14阅读:309来源:国知局
一种实现指代消解的方法及装置与流程

本发明涉及计算机技术领域,尤其涉及的是一种实现指代消解的方法及装置。



背景技术:

指代是自然语言中常见的语言现象,它对于简化表述,衔接上下文起着重要的作用。例如:小明的妈妈是一名工程师,她也很喜欢料理。句中代词“她”所指代的是“小明的妈妈”。在自然语言理解任务中,只有计算机清楚地了解这种指代的语言结构才能更好地理解语言所表达的具体信息。

在语言学中,指代词称为照应语,所指的对象或内容称为先行语。先行语可以在照应语前面,也可以在照应语后面。指代消解,就是确定照应语与先行语之间的相互关系,从而明确照应语指代的是什么对象。

相关技术中,指代消解通常采用基于句法分析的指代消解,这种方法利用句法层面知识,以启发式方法解决指代消解,比如rap(resolutionofanaphoraprocedure,过程消解)等。但是这种方法需要人工构建大量的语言学特征,模型的好坏很大程度上取决于对语言学特征的设计,如果对语言学的了解不够,则会影响模型的预测效果。



技术实现要素:

本文提供一种实现指代消解的方法及装置,能够通过神经网络机器学习代替大量的语言学特征设计以实现指代消解。

根据本申请的第一方面,本发明实施例提供一种实现指代消解的方法,包括:

向语言模型输入句子样本,对所述语言模型进行无监督预训练:随机掩盖所述句子样本的一部分原文,训练所述语言模型通过上下文的信息预测被掩盖的原文部分;其中,所述语言模型是基于神经网络的自然语言处理nlp模型;

对所述经过无监督预训练的语言模型进行针对指代消解任务的有监督训练:向所述语言模型输入句子样本以及所述句子样本中照应语的信息,训练所述语言模型预测照应语在句子中指代的先行语,为所述语言模型的输出添加指示先行语信息的输出标签;

向所述经过有监督训练的语言模型输入句子和照应语的信息,利用所述语言模型预测所述照应语在句子中指代的先行语。

根据本申请的第二方面,本发明实施例提供一种实现指代消解的装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的实现指代消解的程序,所述实现指代消解的程序被所述处理器执行时实现上述实现指代消解的方法的步骤。

根据本申请的第三方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现指代消解的程序,所述实现指代消解的程序被处理器执行时实现上述实现指代消解的方法的步骤。

与相关技术相比,本发明实施例提供的一种实现指代消解的方法及装置,在无监督训练阶段,向语言模型输入句子样本,对所述语言模型进行无监督预训练:随机掩盖所述句子样本的一部分原文,训练所述语言模型通过上下文的信息预测被掩盖的原文部分;其中,所述语言模型是基于神经网络的自然语言处理nlp模型;在有监督训练阶段,对所述经过无监督预训练的语言模型进行针对指代消解任务的有监督训练:向所述语言模型输入句子样本以及所述句子样本中照应语的信息,训练所述语言模型预测照应语在句子中指代的先行语,为所述语言模型的输出添加指示先行语信息的输出标签;在模型预测阶段,向所述经过有监督训练的语言模型输入句子和照应语的信息,利用所述语言模型预测所述照应语在句子中指代的先行语。本发明实施例的技术方案能够通过神经网络机器学习代替大量的语言学特征设计以实现指代消解。

附图说明

图1为本发明实施例1的一种实现指代消解的方法的流程图;

图2为本发明实施例1中对语言模型进行无监督训练的示意图;

图3为本发明实施例1中对语言模型进行有监督训练时的输入信息矩阵的示意图;

图4为本发明实施例1中对语言模型进行有监督训练时的输出信息以及输出标签的示意图;

图5为本发明实施例2的一种实现指代消解的装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

实施例1

如图1所示,本发明实施例提供了一种实现指代消解的方法,包括:

步骤s110,向语言模型输入句子样本,对所述语言模型进行无监督预训练:随机掩盖所述句子样本的一部分原文,训练所述语言模型通过上下文的信息预测被掩盖的原文部分;其中,所述语言模型是基于神经网络的自然语言处理nlp模型;

步骤s120,对所述经过无监督预训练的语言模型进行针对指代消解任务的有监督训练:向所述语言模型输入句子样本以及所述句子样本中照应语的信息,训练所述语言模型预测照应语在句子中指代的先行语,为所述语言模型的输出添加指示先行语信息的输出标签;

步骤s130,向所述经过有监督训练的语言模型输入句子和照应语的信息,利用所述语言模型预测所述照应语在句子中指代的先行语。

步骤s110中,在一种实施方式中,所述语言模型是采用transformer作为特征抽取器的自然语言处理nlp模型。在其他的实施方式中,所述语言模型也可以采用其他的神经网络编码器作为特征抽取器,比如采用cnn(convolutionalneuralnetwork,卷积神经网络)或rnn(recurrentneuralnetworks,循环神经网络)作为特征抽取器。

transformer是谷歌公司于2017年提出的网络架构。目前,在自然语言处理nlp领域,transformer与cnn、rnn一起被公认为三大特征提取器。transformer采用层叠的transformerencoder(transformer编码器)。通常层叠的层数越多,学习效果越好。

在一种实施方式中,所述对所述语言模型进行无监督预训练,包括:

采用自编码(autoencoding)的方式对所述语言模型进行预训练;

传统的语言模型训练方法多基于自回归(autoregressive)的模式,根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来,就是根据下文预测前面的单词。自回归语言模型有优点也有缺点,缺点是只能利用上文或者下文的信息,不能同时利用上文和下文的信息,优点是天然适应生成类的任务,比如文本摘要,机器翻译等,在实际生成内容的时候,就是从左向右的,自回归语言模型天然匹配这个过程。然而,指代消解任务通常是需要结合上下文去判断代词(照应语)所指的具体事物(先行语)。

由于指代消解任务通常是需要结合上下文去判断代词(照应语)所指的具体事物(先行语),因此,本发明实施例1的技术方案采用自编码的方式对所述语言模型进行预训练。自编码通过自编码器(autoencoder)进行机器学习。自编码器是能够在无监督的情况下学习输入数据的有效表示的神经网络,经过训练后能尝试将输入复制到输出。自编码器内部有一个隐藏层h,可以产生编码表示输入。该神经网络由两部分组成:一个由函数h=f(x)表示的编码器和一个产生重构的解码器r=g(h)。一般我们需要加一些约束给自编码器,这些约束防止自编码器将输入直接复制到输出,使得其输出只是近似于输入,强制模型考虑输入数据的哪些部分需要被优先复制,从而学习数据中的有用特性。自编码器可以用来降维,特征提取,无监督预训练或者作为生成式模型。

机器学习按照训练样本有无标签可以分为:有监督训练和无监督训练。如果训练数据有标签,则为有监督学习(supervisedlearning),如果训练数据没有标签,则为无监督学习(unsupervisedlearning)。自编码方式的训练是一种无监督训练。

其中,所述被掩盖的原文部分包括:字和/或词语。在训练模型时,可以一次只掩盖一个字或者词语,也可以一次掩盖多个字,或者一次掩盖多个词语,或者一次掩盖一个或多个字以及一个或多个词语。

向语言模型输入原始句子样本,在输入的原始句子样本中随机掩盖一部分原文(相当于随机加入一定的噪音),语言模型通过层叠的特征抽取器从被掩盖的原文部分的上下文的信息中抽取特征,训练所述语言模型预测所述被掩盖的原文部分。

如图2所示,输入的原始句子是“小明和他的同学去看电影”,随机掩盖的字分别是:“他”、“学”和“影”,被掩盖的字在附图2中用“【m】”标志(起示意作用)代替。对任意一个被掩盖的字,语言模型通过层叠的特征抽取器(比如n层特征抽取器)从被掩盖的字的上下文的信息中抽取特征,从而预测出被掩盖的字。因此,语言模型的输出是“小明和他的同学去看电影”(这是最理想的输出状态,在样本训练阶段,有可能出现预测误差)。

步骤s120中,在一种实施方式中,所述训练所述语言模型预测照应语在句子中指代的先行语,包括:对输入所述语言模型的句子以及照应语的信息进行文本数字化以及位置信息编码,生成输入信息矩阵;利用所述语言模型对所述输入信息矩阵进行模型运算输出输出信息矩阵,所述输出信息矩阵携带所述照应语在句子中指代的先行语的信息;其中,所述语言模型是经过无监督预训练的语言模型。

在一种实施方式中,所述对输入所述语言模型的句子以及照应语的信息进行文本数字化以及位置信息编码,生成输入信息矩阵,包括:

将句子中的每一个信息单元的文本信息通过文本数字化转化为字向量或词向量,由所述句子的所有信息单元的字向量或词向量按照所述信息单元在句子中的位置排列构成字嵌入矩阵或词嵌入矩阵;

将句子中的每一个信息单元在句子中的位置信息转换为位置信息向量,由所述句子的所有信息单元的位置信息向量按照所述信息单元在句子中的位置排列构成位置信息嵌入矩阵;

将句子中的每一个信息单元是否为照应语的信息转换为照应语信息向量,由所述句子的所有信息单元的照应语信息向量按照所述信息单元在句子中的位置排列构成照应语信息嵌入矩阵;

将所述句子的字嵌入矩阵或词嵌入矩阵、位置信息嵌入矩阵和照应语信息嵌入矩阵相加生成所述句子的输入信息矩阵;

其中,当所述语言模型处理的语言为中文时,所述信息单元为字;当所述语言模型处理的语言为其他语言时,所述信息单元为词;

现有的机器学习方法往往无法直接处理文本数据,因此需要找到合适的方法,将文本数据转换为数值型数据,如果将word看作文本的最小单元,在中文语言中,word是字,在英文或其他语言中,word是词。可以将wordembedding(字嵌入矩阵或词嵌入矩阵)理解为一种映射,其过程是:将文本空间中的某个word,通过一定的方法,映射或者说嵌入(embedding)到另一个数值向量空间。

如图3所示,输入的句子样本(原始句子)是:“小明和他的同学去看电影”。原始句子中的照应语(代词)是“他”。将原始句子中的每一个字进行数字化生成字向量,比如,将“小”表示为索引“121”对应的字向量,将“明”表示为索引“34”对应的字向量,将“和”表示为索引“56”对应的字向量等。将所有的字向量按照所述字向量指代的字在句中的位置排列成字嵌入矩阵。将原始句子中的每一个字的位置信息表示为位置信息向量,将所有的位置信息向量按照所述位置信息向量指代的字在句中的位置排列成位置信息嵌入矩阵。比如,将“小”在句中的位置表示为“1”,将“明”在句中的位置表示为“2”等。将原始句子中的每一个字是否为照应语的信息表示为照应语信息向量,将所有的照应语信息向量按照所述照应语信息向量指代的字在句中的位置排列成照应语信息嵌入矩阵。比如,将代词“他”表示为“1”,原始句子中的其他字均表示为“0”,通过“0”和“1”的区分,能够表示出原始句子中哪一个字是代词。如果原始句子中的代词是“他们”,则将“他们”中的“他”和“们”均表示为“1”。将所述字嵌入矩阵、位置信息矩阵和照应语信息矩阵相加合成为一个矩阵作为输入信息矩阵,在合成的输入信息矩阵中的每一个向量是合成向量e。比如,“小”字对应的合成向量“e1”是由字向量(索引“121”对应的字向量)、位置信息向量(“1”)以及照应语信息向量(“0”)三者相加生成的。照应语“他”字对应的合成向量“e4”是由字向量(索引“32”对应的字向量)、位置信息向量(“4”)以及照应语信息向量(“1”)三者相加生成的。

步骤s120中,在一种实施方式中,所述为所述语言模型的输出添加指示先行语信息的输出标签,包括:

为所述输出信息矩阵中的每一个输出向量添加输出标签,所述输出标签用于表示所述输出向量对应的信息单元是否为先行语的信息;

其中,所述输出信息矩阵包括m个输出向量,每一个输出向量对应输入句子中的一个信息单元并表示所述信息单元是否为先行语的信息;其中,m是输入句子包含的信息单元的总数;

其中,所述是否为先行语的信息包括:是先行语且为所述先行语的开头,是先行语且为所述先行语的中间,是先行语且为所述先行语的结尾,或不是先行语;

如图4所示,输出标签包括先行语的分类信息。其中,一个字在先行语中的位置包括:先行语的开头部分(比如用字母b表示)、先行语的中间部分(比如用字母b表示)或先行语的结尾部分(比如用字母e表示)。如果所述输出向量对应的原始句子中的字不是先行语的一部分,则可以用“其他”来表示(比如用字母o表示)。所述输出信息矩阵包括11个输出向量o1,o2,…,o11。当所述模型输出完全正确时,所述11个输出向量的取值依次是“b,e,o,o,o,o,o,o,o,o,o”。按照所述照应语的正确指代关系对所述语言模型的输出结果进行修正标注,为所述输出信息矩阵中的每一个输出向量添加输出标签,比如,将“小”字对应的输出向量“o1”标注为“b”(表示该字是先行语的开头),将“明”字对应的输出向量“o2”标注为“e”(表示该字是先行语的结尾),其他字对应的输出向量均标注为“o”(表示该字不是先行语)。再比如,当原始句子中的“小明”替换为“欧阳子钰”时,对“欧阳子钰”的标注应该为:将“欧”字对应的输出向量“o1”标注为“b”(表示该字是先行语的开头),将“阳”字对应的输出向量“o2”标注为“i”(表示该字是先行语的中间部分),将“子”字对应的输出向量“o3”标注为“i”(表示该字是先行语的中间部分),将“钰”字对应的输出向量“o4”标注为“e”(表示该字是先行语的结尾)。

步骤s130中,在一种实施方式中,所述向所述语言模型输入需要指代消解的句子和照应语的信息,利用所述语言模型预测所述照应语在句子中指代的先行语,包括:

当所述照应语为多个时,每一次向所述语言模型输入需要指代消解的句子和所述多个照应语中的一个照应语的信息,每一次运行所述语言模型预测一个照应语指代的先行语,通过多次运行所述语言模型得到每一个照应语指代的先行语。

步骤s130中,所述向所述语言模型输入照应语的信息,可以通过任何约定的方式告诉语言模型所述照应语在句中的位置关系,比如,输入一串“0”和“1”的序列,所述序列中的每一个数字对应原始句子中的一个信息单元,“0”表示该信息单元不是照应语,“1”表示该信息单元是照应语。再比如,直接输入数字序列,该数字序列表示照应语是原始句子中的第几个信息单元,比如,“1”代表照应语是第一个信息单元,“2”代表照应语是第二个信息单元,“4,5”代表照应语是第四个信息单元和第五个信息单元。信息单元的排序可以是从句子开头向句子结尾进行排序,句子开头是第一个信息单元,句子结尾是最后一个信息单元。

步骤s130中,在一种实施方式中,利用所述语言模型预测所述照应语在句子中指代的先行语,包括:对输入所述语言模型的句子以及照应语的信息进行文本数字化以及位置信息编码,生成输入信息矩阵;利用所述语言模型对所述输入信息矩阵进行模型运算输出输出信息矩阵,所述输出信息矩阵携带所述照应语在句子中指代的先行语的信息;其中,所述语言模型是经过有监督训练的语言模型。

其中,步骤s130中生成输入信息矩阵的方法与步骤s120中训练所述语言模型时使用的生成输入信息矩阵的方法相同。

实施例2

如图2所示,本发明实施例提供了一种实现指代消解的装置,包括:

第一训练模块10,用于向语言模型输入句子样本,对所述语言模型进行无监督预训练:随机掩盖所述句子样本的一部分原文,训练所述语言模型通过上下文的信息预测被掩盖的原文部分;其中,所述语言模型是基于神经网络的自然语言处理nlp模型;

第二训练模块20,用于对所述经过无监督预训练的语言模型进行针对指代消解任务的有监督训练:向所述语言模型输入句子样本以及所述句子样本中照应语的信息,训练所述语言模型预测照应语在句子中指代的先行语,为所述语言模型的输出添加指示先行语信息的输出标签;

模型预测模块30,用于向所述经过有监督训练的语言模型输入句子和照应语的信息,利用所述语言模型预测所述照应语在句子中指代的先行语。

在一种实施方式中,第一训练模块,用于采用以下方式对所述语言模型进行无监督预训练:采用自编码的方式对所述语言模型进行预训练。

在一种实施方式中,第二训练模块,用于采用以下方式训练所述语言模型预测照应语在句子中指代的先行语:对输入所述语言模型的句子以及照应语的信息进行文本数字化以及位置信息编码,生成输入信息矩阵;利用所述语言模型对所述输入信息矩阵进行模型运算输出输出信息矩阵,所述输出信息矩阵携带所述照应语在句子中指代的先行语的信息;其中,所述语言模型是经过无监督预训练的语言模型。

在一种实施方式中,模型预测模块,用于采用以下方式利用所述语言模型预测所述照应语在句子中指代的先行语:对输入所述语言模型的句子以及照应语的信息进行文本数字化以及位置信息编码,生成输入信息矩阵;利用所述语言模型对所述输入信息矩阵进行模型运算输出输出信息矩阵,所述输出信息矩阵携带所述照应语在句子中指代的先行语的信息;

在一种实施方式中,第二训练模块,用于采用以下方式对输入所述语言模型的句子以及照应语的信息进行文本数字化以及位置信息编码,生成输入信息矩阵:将句子中的每一个信息单元的文本信息通过文本数字化转化为字向量或词向量,由所述句子的所有信息单元的字向量或词向量按照所述信息单元在句子中的位置排列构成字嵌入矩阵或词嵌入矩阵;将句子中的每一个信息单元在句子中的位置信息转换为位置信息向量,由所述句子的所有信息单元的位置信息向量按照所述信息单元在句子中的位置排列构成位置信息嵌入矩阵;将句子中的每一个信息单元是否为照应语的信息转换为照应语信息向量,由所述句子的所有信息单元的照应语信息向量按照所述信息单元在句子中的位置排列构成照应语信息嵌入矩阵;将所述句子的字嵌入矩阵或词嵌入矩阵、位置信息嵌入矩阵和照应语信息嵌入矩阵相加生成所述句子的输入信息矩阵;其中,当所述语言模型处理的语言为中文时,所述信息单元为字;当所述语言模型处理的语言为其他语言时,所述信息单元为词。

在一种实施方式中,模型预测模块,用于采用以下方式对输入所述语言模型的句子以及照应语的信息进行文本数字化以及位置信息编码,生成输入信息矩阵:将句子中的每一个信息单元的文本信息通过文本数字化转化为字向量或词向量,由所述句子的所有信息单元的字向量或词向量按照所述信息单元在句子中的位置排列构成字嵌入矩阵或词嵌入矩阵;将句子中的每一个信息单元在句子中的位置信息转换为位置信息向量,由所述句子的所有信息单元的位置信息向量按照所述信息单元在句子中的位置排列构成位置信息嵌入矩阵;将句子中的每一个信息单元是否为照应语的信息转换为照应语信息向量,由所述句子的所有信息单元的照应语信息向量按照所述信息单元在句子中的位置排列构成照应语信息嵌入矩阵;将所述句子的字嵌入矩阵或词嵌入矩阵、位置信息嵌入矩阵和照应语信息嵌入矩阵相加生成所述句子的输入信息矩阵;其中,当所述语言模型处理的语言为中文时,所述信息单元为字;当所述语言模型处理的语言为其他语言时,所述信息单元为词。

在一种实施方式中,第二训练模块,用于采用以下方式为所述语言模型的输出添加指示先行语信息的输出标签:为所述输出信息矩阵中的每一个输出向量添加输出标签,所述输出标签用于表示所述输出向量对应的信息单元是否为先行语的信息;其中,所述输出信息矩阵包括m个输出向量,每一个输出向量对应输入句子中的一个信息单元并表示所述信息单元是否为先行语的信息;其中,m是输入句子包含的信息单元的总数。

在一种实施方式中,所述是否为先行语的信息包括:是先行语且为所述先行语的开头,是先行语且为所述先行语的中间,是先行语且为所述先行语的结尾,或不是先行语。

在一种实施方式中,所述语言模型是采用transformer作为特征抽取器的自然语言处理nlp模型。

实施例3

本发明实施例提供了一种实现指代消解的装置,包括:

存储器、处理器及存储在所述存储器上并可在所述处理器上运行的实现指代消解的程序,所述实现指代消解的程序被所述处理器执行时实现上述实施例1中的实现指代消解的方法的步骤。

实施例4

本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有实现指代消解的程序,所述实现指代消解的程序被处理器执行时实现上述实施例1中的实现指代消解的方法的步骤。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

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