一种多类型且含复杂关系的实体抽取方法及装置与流程

文档序号:16134682发布日期:2018-12-01 00:47阅读:359来源:国知局

本发明属于大数据抽取技术领域,尤其涉及一种多类型且含复杂关系的实体抽取方法及装置。

背景技术

互联网上公布的新闻、评论、公告、公示、博客等各种文字信息大部分都属于非结构化长文本数据,对于不同的行业领域,有不同的应用价值;但是不同题材的、或者同题材但是不同发布网站的、或不同的撰写者写的文本,其内容、格式、结构各不相同;并且长文本的信息量比短文本大很多,如实体类型多、同一种类型的实体对于不同的含义又有不同的类别、各种类型的实体之间存在直接或者间接的关联关系等。

现有的技术虽然也能提取出实体,但是是基于短文本数据的,短文本因其长度有限,其内容信息比较少,含有的实体类型和同一类型的实体数量也很少,现有技术不能解决长文本中多种类型的实体共现的问题;现有技术方案将通过模型提取出实体作为最终结果,对提取的实体没有针对上下文的实际语义情况做后续处理。现有技术方案将提取实体作为结束条件,并且在同一个模型中同时提取所有类型的实体,在含有多种实体类型和复杂实体关系的长文本数据中,会导致提取不同类型的实体时错误率增加。

目前情况下,从形式各异的长文本中获取有效且正确的实体信息是较困难的,因此本发明旨在解决从混合的长文本中提取多种类型的有复杂关系的实体,以满足不同的价值需求。



技术实现要素:

鉴于上述问题,本发明的目的在于提供一种多类型且含复杂关系的实体抽取方法及装置,旨在解决现有技术中,从形式各异的长文本中获取有效且正确的实体信息较为困难等技术问题。

本发明采用如下技术方案:

一方面,所述多类型且含复杂关系的实体抽取方法包括下述步骤:

步骤s1、构建训练样本:对混合的有长短文本的语料数据按字符进行实体标注,并且对不同类型的实体分别创建标注样本;

步骤s2、构建样本的分词特征:将步骤s1中的语料数据按照单个文本进行分词,并对每个分词进行标注,作为语料的分词特征;

步骤s3、建立skip-gram神经网络模型将字符转为向量;

步骤s4、针对每种不同类型实体建立一个实体抽取bilstm-crf模型;

步骤s5、根据不同类型实体间或者同一类型的不同具体实体单元之间的关系建立距离正则表达式,优化实体提取结果,具体优化过程如下:根据bilstm-crf模型和距离正则表达式计算最后的实体抽取准确度,若准确度k连续若干次计算均小于预设值,则重新调整距离正则表达式再次计算准确度,若准确度k大于或等于预设值时,确定当前距离正则表达式为最终的距离正则表达式,保存所有bilstm-crf模型以及最终的距离正则表达式。

进一步的,步骤s1中假设有m种不同类型的实体,则需生成m份标注不同类型实体的标注样本,其中同一种类型内的实体单元标注相同。

进一步的,步骤s1中具体的实体标注模式为:

若一个文本字符串是一个实体,那么文本字符串的开头字符标注为“b-实体类型名”,其它字符均标注为“i-实体类型名”;若一个文本字符串是一个实体但是只有一个字符,那么直接标注为”s-实体类型名”;语料数据中不是实体的字符全部标注为“o”。

进一步的,步骤s2中所述分词特征为对分词结果中的每个字符进行标注,若字符是所在分词的第一个字符,标注为“b”;若字符是所在分词的最后一个字符,标注为“e”;若字符是所在分词的中间字符,标注为“i”;若分词后只有一个单字符,那么这个字符标注为“s”,并且按照“b”“i”“o”“s”顺序分别编码成数值1,2,3,4。

进一步的,步骤s3具体过程如下:

利用skip-gram神经网络模型进行训练,得到一个固定的字符特征向量文件,文件命名为vocb,其中每个字符都根据语义转为相同长度的向量,所述向量的长度为char_dim。

进一步的,步骤s4中建立的bilstm-crf模型是双向长短记忆神经网络算法bilstm和条件机场算法crf的组合模型,每个bilstm-crf模型输入对应类型的样本进行迭代训练,每个bilstm-crf模型的迭代次数为epoch;该bilstm-crf模型从下至上具体结构为:

输入层:样本中选择n个样本,字符长度最长的样本的的长度max_len作为输入层的节点数量,样本长度不足的节点用“unk”填充,输出到向量计算层的所有字符长度为n*max_len;

向量计算层:获取输入层的样本字符,查找每个字符对应的步骤s2中的分词特征和步骤s3的文件vocb中的字符向量,同时把分词特征映射表达成seg_dim维度的分词特征向量,每个字符的分词特征向量和字符向量顺序拼接,那么最后输出到下一层的单个字符的向量长度是char_dim+seg_dim,所有的输出样本的样本表示向量表达成n*max_len*(char_dim+seg_dim)的空间向量形式;

bilstm层:该层内部包含3个网络层,分别为前向计算层、反向计算层和合并层,前向计算层、反向计算层分别有lstm_dim个节点,获取向量计算层输出的样本表示向量,分别进行前向计算和反向计算,合并层将前向计算和反向计算的计算结果进行合并拼接,得到单个字符向量长度为2*lstm_dim,最后bilstm层的输出向量长度是n*max_len*2*lstm_dim;

crf层:获取bilstm层的输出向量,计算每个字符分别属于“b”“i”“o”“s”4种标注的概率值,最后输出样本的计算结果的长度为n*max_len*4;

输出层:获取crf层输出样本的每个字符的标注概率,取最大概率值作为该字符的估计标注,并根据步骤s2中“b”“i”“o”“s”的含义连接单词,标注每个实体所处文本中的位置。

进一步的,步骤s5中预设值α=0.85。

另一方面,所述多类型且含复杂关系的实体抽取装置包括:

样本构建单元,用于构建训练样本:对混合的有长短文本的语料数据按字符进行实体标注,并且对不同类型的实体分别创建标注样本;

分词单元,用于构建样本的分词特征:将语料数据按照单个文本进行分词,并对每个分词进行标注,作为语料的分词特征;

转换单元,用于建立skip-gram神经网络模型将字符转为向量;

模型建立单元,用于针对每种不同类型实体建立一个实体抽取bilstm-crf模型;

提取优化单元,用于根据不同类型实体间或者同一类型的不同具体实体单元之间的关系建立距离正则表达式,优化实体提取结果,具体优化过程如下:根据bilstm-crf模型和距离正则表达式计算最后的实体抽取准确度,若准确度k连续若干次计算均小于预设值,则重新调整正则表达式再次计算准确度,若准确度k大于或等于预设值时,确定当前距离正则表达式为最终的距离正则表达式,保存所有bilstm-crf模型以及最终的距离正则表达式。

本发明的有益效果是:相对于现在技术方案中的使用一个模型同时提取不同类型的实体,本发明针对不同的类型的长短文本的语料数据分别进行实体标注,并且创建标注样本,从而建立模型进行实体抽取,保证了每种类型的实体提取的准确性;另外,在复杂实体关系的长文本数据中,现有的技术方案存在错误提取的问题,在本发明方法中,创建实体抽取bilstm-crf模型并提取实体的同时,也提取了实体在文本中的位置信息,并且利用位置关系建立实体间的正则表达式,更准确的优化提取出众多实体。

附图说明

图1是本发明实施例提供的多类型且含复杂关系的实体抽取方法流程图;

图2是bilstm-crf是模型原理框图;

图3是本发明实施例提供的多类型且含复杂关系的实体抽取装置原理图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

如图1所示,本发明实施例提供的多类型且含复杂关系的实体抽取方法包括下述步骤:

步骤s1、构建训练样本:对混合的有长短文本的语料数据按字符进行实体标注,并且对不同类型的实体分别创建标注样本。

本步骤中,假设设置有m种不同类型的实体,则需生成m份标注不同类型实体的标注样本,其中同一种类型内的实体单元标注相同。步骤s1中具体的实体标注模式为:若一个文本字符串是一个实体,那么文本字符串的开头字符标注为“b-实体类型名”,其它字符均标注为“i-实体类型名”;若一个文本字符串是一个实体但是只有一个字符,那么直接标注为”s-实体类型名”;语料数据中不是实体的字符全部标注为“o”。

步骤s2、构建样本的分词特征:将步骤s1中的语料数据按照单个文本进行分词,并对每个分词进行标注,作为语料的分词特征。

本步骤s2中将步骤s1中的文本语料数据按照单个文本进行分词,并对每个分词进行标注,作为语料的分词特征;所谓分词特征,即为对分词结果中的每个字符进行标注,其中具体的标注方式为:若字符是所在分词的第一个字符,标注为“b”;若字符是所在分词的最后一个字符,标注为“e”;若字符是所在分词的中间字符,标注为“i”;若分词后只有一个单字符,那么这个字符标注为“s”,并且按照“b”“i”“o”“s”顺序分别编码成数值1,2,3,4。

步骤s3、建立skip-gram神经网络模型将字符转为向量。

在步骤s3中,建立skip-gram神经网络模型将字符转为向量,具体的过程如下:利用skip-gram神经网络模型进行训练,得到一个固定的字符特征向量文件,文件命名为vocb,其中每个字符都根据语义转为相同长度的向量,所述向量的长度为char_dim,一般情况下,char_dim设置为100。

步骤s4、针对每种不同类型实体建立一个实体抽取bilstm-crf模型。

在步骤s4中,针对每种不同类型实体建立一个实体抽取bilstm-crf模型,在本实施例中,本步骤建立了m个不同类型的bilstm-crf模型,建立的bilstm-crf模型是双向长短记忆神经网络算法bilstm和条件机场算法crf的组合模型,每个bilstm-crf模型输入对应类型的样本进行迭代训练,分别得到最优的模型,每个bilstm-crf模型的迭代次数为epoch,统一设置为10000;当迭代次数epoch达到上限,那么bilstm-crf模型建立完成。epoch设置足够大,那么bilstm-crf模型的准确性就会很高并且足够稳定,本发明中设置为10000,已经足够大。

如图2所示,该bilstm-crf模型从下至上具体结构为:

输入层:样本中选择n个样本,字符长度最长的样本的的长度max_len作为输入层的节点数量,样本长度不足的节点用“unk”填充,输出到向量计算层的所有字符长度为n*max_len;

向量计算层:获取输入层的样本字符,查找每个字符对应的步骤s2中的分词特征和步骤s3的文件vocb中的字符向量,同时把分词特征映射表达成seg_dim维度的分词特征向量,这里设置seg_dim的值为20,每个字符的分词特征向量和字符向量顺序拼接,那么最后输出到下一层的单个字符的向量长度是char_dim+seg_dim,所有的输出样本的样本表示向量表达成n*max_len*(char_dim+seg_dim)的空间向量形式;本层在输入层和bilstm层之间,主要作用是分词特征和字符向量查找,以及将分词特征映射成seg_dim维度的分词特征向量。图2中未示出本层。

bilstm层:该层内部包含3个网络层,如图2所示,从下至上分别为前向计算层、反向计算层和合并层,前向计算层、反向计算层分别有lstm_dim个节点,设置lstm_dim=100,获取向量计算层输出的样本表示向量,分别进行前向计算和反向计算,合并层将前向计算和反向计算的计算结果进行合并拼接,得到单个字符向量长度为2*lstm_dim=200,最后bilstm层的输出向量长度是n*max_len*2*lstm_dim;

crf层:获取bilstm层的输出向量,计算每个字符分别属于“b”“i”“o”“s”4种标注的概率值,最后输出样本的计算结果的长度为n*max_len*4;

输出层:获取crf层输出样本的每个字符的标注概率,取最大概率值作为该字符的估计标注,并根据步骤s2中“b”“i”“o”“s”的含义连接单词,标注每个实体所处文本中的位置。

相对于现有技术中的使用一个模型同时提取不同类型的实体,本方案针对不同类型的实体分别建立bilstm-crf模型,在含有多种bilstm-crf模型的文本数据中,保证每种类型的实体提取准确定更高。

步骤s5、根据不同类型实体间或者同一类型的不同具体实体单元之间的关系建立距离正则表达式,优化实体提取结果,具体优化过程如下:根据bilstm-crf模型和距离正则表达式计算最后的实体抽取准确度,若准确度k连续若干次计算均小于预设值,则重新调整正则表达式再次计算准确度,若准确度k大于或等于预设值时,确定当前距离正则表达式为最终的距离正则表达式,保存所有bilstm-crf模型以及最终的距离正则表达式。

所述距离正则表达式的含义是:根据要抽取的m种类型的实体的含义和定义,定义一些实体类型之间可能存在的一些关系,并以正则表达式的形式记录在文件中,文件名为“rules”。

如实体类型m1和实体类型m2在文本中所处位置之间包含的字符数量应该不大于q个。bilstm-crf模型出来的结果中,当m1类型实体和m2类型实体分别提取了mm1和mm2个,分别计算2种类型的实体两两之间的距离,当距离小于等于q的关系对中的实体分别做保留。

本步骤根据bilstm-crf模型和距离正则表达式计算最后的实体抽取准确度,准确度k计算的是bilstm-crf模型+距离正则表达式整个模型的精度。但是k不满足条件不用修正bilstm-crf模型,仅仅需要修改距离正则表达式。

准确度k计算过程如下:每次随机从步骤s1的样本中选择ns个作为验证集,这里ns=100,验证集的数据带有实际标注。假设一个验证集实际标注的非“o”的数量为n1,通过bilstm-crf模型估计再经过距离正则表达式计算后得到的预测结果中与实际标注的非“o”的字符完全相同的数量是n2,那么本次训练模型的准确度为n2/n1。

若准确度k连续若干次(比如10次)计算均小于预设值(这里的预设值α设置为0.85),则重新调整正则表达式再次计算准确度,具体调整过程如下:当准确度连续k次达不到要求,即小于0.85,那么就调整正则表达式,每次调整时定量增大已设定的距离正则表达式的距离值并重新计算抽取准确度,当距离值增大2倍时,仍不满足条件则删除该项距离正则表达式重新建立距离正则表达式,如果连续若干次抽取的数据的准确度都大于0.85,那么就结束调整距离正则表达式。

若准确度大于或等于预设值时,则确定当前距离正则表达式,保存所有bilstm-crf模型以及最终的距离正则表达式,在本步骤方法中,采用不同的bilstm-crf模型提取不同的实体和实体在文中的位置,再根据需求建立关系正则表达式,可以更准确的优化提取出来众多的实体。

实施例二:

如图3所示,本发明提供一种多类型且含复杂关系的实体抽取装置,用于完成本发明提供的多类型且含复杂关系的实体抽取方法,所述多类型且含复杂关系的实体抽取装置包括:

样本构建单元,用于构建训练样本:对混合的有长短文本的语料数据按字符进行实体标注,并且对不同类型的实体分别创建标注样本;

分词单元,用于构建样本的分词特征:将语料数据按照单个文本进行分词,并对每个分词进行标注,作为语料的分词特征;

转换单元,用于建立skip-gram神经网络模型将字符转为向量;

模型建立单元,用于针对每种不同类型实体建立一个实体抽取bilstm-crf模型;

提取优化单元,用于根据不同类型实体间或者同一类型的不同具体实体单元之间的关系建立距离正则表达式,优化实体提取结果,具体优化过程如下:根据bilstm-crf模型和距离正则表达式计算最后的实体抽取准确度,若准确度k连续若干次计算均小于预设值,则重新调整正则表达式再次计算准确度,若准确度k大于或等于预设值时,确定当前距离正则表达式为最终的距离正则表达式,保存所有bilstm-crf模型以及最终的距离正则表达式。

本实施例提供的各个功能单元对应实现了实施例一中的步骤s1-s5,具体实现过程这里不再赘述。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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