一种基于深度学习的命名实体关系抽取与构建方法

文档序号:6627848阅读:610来源:国知局
一种基于深度学习的命名实体关系抽取与构建方法
【专利摘要】本发明提供了一种基于深度学习的命名实体关系抽取与构建方法,用于互联网信息【技术领域】。本方法针对某一特定领域,在垂直网站上抓取领域内的新闻数据,对获取的新闻数据进行预处理;新闻数据分词,抽取关键词,生成行业词库,利用行业词库对新闻数据重新分词;抽取种子词库;无监督构建实体关系网络,从新闻数据中抽取包含两个以上实体的句子,抽取句子中的动词以及对应的文档,对抽取的文档建立基于深度学习的词聚类模型,根据动词描述的词之间的关系,构建实体关系网络;定义实体关系类别,对实体关系网络中的每个实体对,进行关系分类。本发明不需投入大规模人力对样本数据进行标记,语料库的依赖性低,抽取实体关系的性能高。
【专利说明】一种基于深度学习的命名实体关系抽取与构建方法

【技术领域】
[0001]本发明涉及互联网信息【技术领域】,具体而言,涉及一种命名实体关系抽取的方法。

【背景技术】
[0002]在信息研究领域,信息抽取技术是一项必不可少的关键技术。面对如此海量的信息空间,如何更快更准确地抽取出用户感兴趣的内容是一个迫切需要解决的问题,也是信息挖掘技术的一个重要研究方向。信息抽取不同于信息检索等信息处理技术,它需要对文本进行命名实体的识别,并抽取出实体之间的关系,而中文文本中词语的灵活多变、构词复杂且没有明显的标志,使得对中文命名实体的识别及关系的抽取就显得更加困难。
[0003]目前,信息抽取的主要方法有两种,一种是基于知识库算法,这种方法需要建立一些规则,虽然这种方法的准确率较高,但是这种规则的确定是比较困难的,对编写者有较高的要求,且移植性不高;另一种是基于统计的机器学习算法,这种算法采用不同的模型,并利用人工标注的训练集进行学习,对于新的数据集则釆用模型算出其相关的概率,并以此来得到最终的结果。这种方法代价较小,性能较高,便于移植,所以是当前研究的热点。
[0004]机器学习相关的实体关系抽取技术主要采取有监督实体关系抽取方法和弱监督实体关系抽取方法。有监督实体关系抽取方法的流程一般为:对训练文本预处理,进行关系词对及关系的人工标记,抽取特征向量化,用分类算法进行训练生成模型,用模型进行关系的类别标记。弱监督实体关系抽取方法与有监督实体关系抽取方法的主要不同之处在于对标注语料的依赖程度。弱监督实体关系抽取方法用少量的标注语料集,利用bootstrapping(自学习)框架,结合各种分类算法进行实体关系抽取。
[0005]弱监督实体关系抽取方法因为采用小规模标注语料库,所以性能较差。而有监督实体关系抽取方法依赖大规模标注语料库,而这部分工作需要根据任务情况,人工进行标注。需要耗费巨大的人力物力,在此基础上采用各种算法训练模型,对生成的模型的性能无法准确估计,存在较大风险。


【发明内容】

[0006]本发明为了解决现有实体关系抽取技术中存在的特定领域标引数据集的获取、模式的获取以及共指消解问题,提供了一种基于深度学习的命名实体关系抽取与构建方法。
[0007]本发明提供的基于深度学习的命名实体关系抽取与构建方法,针对某一特定领域,包括如下步骤:
[0008]步骤1:构建爬虫程序,在垂直网站上抓取领域内的新闻数据;
[0009]步骤2:对获取的新闻数据进行预处理,去除垃圾信息,包括重复信息、不正常显不/[目息、编码乱码?目息等;
[0010]步骤3:对新闻数据进行分词,抽取关键词,将所抽取的关键词加入词库,生成行业词库;
[0011]步骤4:利用行业词库对新闻数据再次进行中文分词,获取对应的词集合;
[0012]步骤5:抽取种子词库,种子为设定的实体对;
[0013]步骤6:无监督构建实体关系网络,具体是:从新闻数据抽取包含两个以上实体的句子,抽取句子中的动词以及对应的文档;对抽取的文档建立基于深度学习的词聚类模型,获取实体在词上的分布;根据动词描述的词之间的关系,构建实体关系网络;
[0014]步骤7:定义实体关系类别,具体是:从新闻数据抽取包含两个实体的句子中的动词,对动词进行聚类,将相同的动词归为同一类;
[0015]步骤8:对实体关系进行分类,具体是:对实体关系网络中的每个实体对,基于步骤7的聚类结果进行关系分类。
[0016]相对于现有技术,本发明的命名实体关系抽取与构建方法,其优点和积极效果在于:
[0017]1.采用无监督实体关系抽取,不需要投入大规模人力对样本数据进行标记;
[0018]2.对于语料库的依赖性低,采用普通的领域内新闻资料作为文本即可,提高了抽取实体关系的性能;
[0019]3.本发明按领域进行命名实体抽取,减少不同领域间杂乱信息干扰,抽取结果准确率高。

【专利附图】

【附图说明】
[0020]图1是根据本发明实施例的特定领域命名实体抽取与构建方法的总体流程图;
[0021]图2是根据本发明实施例的特定领域行业关键词抽取方法的总体流程图;
[0022]图3是根据本发明实施例的特定领域命名实体抽取的流程图;
[0023]图4是根据本发明实施例的特定领域关系模板抽取的流程图。

【具体实施方式】
[0024]下面将结合附图和实施例对本发明作进一步的详细说明。
[0025]本发明的实施例中,结合汽车这一特定领域来说明本发明的基于深度学习的命名实体关系抽取与构建方法。包括:对汽车新闻的文本集合进行分词;基于自学习bootstrap的方法从分词得到的切分单元中抽取实体对(汽车品牌、汽车型号),从中选出少量实例作为初始种子集合;基于bootstrap的方法从实体中抽取关系模板;并通过深度学习技术,构建实体间关系,对关系模板进行聚类/分类得到关系分类。
[0026]如图1所示,根据本发明实施例的特定领域,本发明基于深度学习的命名实体抽取与构建方法,包括具体步骤如下:
[0027]步骤1:构建爬虫程序,抓取垂直网站的新闻数据,本发明实施主要采用包括汽车之家、太平洋汽车的数据。具体步骤I分为如下步骤101?102。
[0028]步骤101:构建分布式爬虫程序,对垂直网站数据进行页面抓取。
[0029]步骤102:根据抓取到的html页面生成页面的dom树结构,根据标签提取爬到页面中包含的正文信息。
[0030]步骤2:对获取的新闻数据进行预处理。具体步骤2分为步骤201?202。
[0031]步骤201:根据新闻长度进行清洗,利用正则表达式和制定的规则集去除垃圾新闻信息。
[0032]步骤202:利用布隆过滤器(Bloom filter)对新闻数据进行过滤,去除重复新闻信息。首先对新闻数据利用N个hash函数映射到位数组中,然后对后面的评论计算N个hash值,判断该新闻数据是否已经存在。如果后面的评论计算出的hash值存在于位数组中,则说明该评论数据已经存在,并将其过滤掉。
[0033]步骤3:抽取关键词,形成新的行业词库。本发明利用N-gram模型抽取关键词,将所抽取的关键词加入已有基础词库,生成新的行业词库。
[0034]与英语等拉丁语言不同,汉语文本没有空格等明显的分隔符,因此在进行汉语文本处理时第一步工作就是要对文本进行词语切分。由于信息抽取的需要,还要对进行词语切分以后的文本进行标注。本发明采用ICTCLAS进行中文分词,并通过关键词挖掘技术挖掘汽车行业词库,提高分词精度。本发明中的关键词不仅包括区分度还包括信息量,更偏重信息量。
[0035]本发明实施例中定义凝固度PMI如下:
[0036]PMI (a, b) = p (a) p (b) /p (ab)
[0037]PMI值即为词a和词b组成关键词ab的凝固度,以此来抽取关键词,其中P (a)表示词a出现的频率,P (b)表示词b出现的频率,P (ab)表示ab出现的频率。PMI有个典型的缺点:倾向抽取频率较低的词,因此本发明具体在实施时选择词频大于一定阈值的词作为候选词,去除频率较低的词。采用本文定义的凝固度来抽取关键词相对于其他现有方法,经过实验证明能够去除较多噪音。PMI值也称为点互信息(Pointwise Mutual Informat1n)值。
[0038]具体步骤3分为步骤301?步骤305,如图2所示。
[0039]步骤301:调用中文分词程序,对新闻数据进行初步分词。
[0040]步骤302:利用1-gram,计算词的PMI值,选取PM值大于阈值A的词作为关键词。
[0041]步骤303:利用2-gram,计算词的PMI值,选取PMI值大于阈值B的词作为关键词。
[0042]步骤304:利用3-gram,计算词的PMI值,选取PMI值大于阈值C的词作为关键词。
[0043]步骤305:将步骤302?步骤304得到的关键词和原有的词库合并,作为再次分词的词库。
[0044]阈值A、B和C可根据实验确定。
[0045]步骤4:利用步骤3得到的行业词库对新闻数据再次进行中文分词处理,获取对应的词集合。本步骤对所有评论数据进行中文分词,去除停用词,获取分词结果。
[0046]步骤4包括步骤401?步骤402。
[0047]步骤401:首先进行分词,调用中文分词程序分词;然后,根据停用词表去除停用词,对其中包含的英文词进行形态变换,转换到统一的表达形式。
[0048]在对文本进行分词与标注以后,文本被表示成一串被标注好的词语集合。在这些词语中有很多是停用词语。它们对信息抽取没有意义。本发明中通过一个停用词表将这些停用词语剔除。这样做一方面可以减少系统的计算量,另一方面可以提高后面信息抽取中的准确率。在去除停用词时,简单根据词频和文档频率进行计算排序,去除词频最高的词。
[0049]步骤402:统计词的文档频率df和词频tf,计算得到词的逆向文件频率idf,使用计算公式log (tf/(idf+1) +1)计算词的权值,并根据权值阈值D进行对比进行词集筛选,将权值大于阈值D的词保留,从而提取得到能够体现新闻特征的词集合,同时经过阈值对比之后也适当地降低了新闻数据对应的词集合的维度。
[0050]步骤5:人工制作汽车品牌和汽车车型种子词库,bootstrap挖掘汽车品牌和车型词库。
[0051]在对文本集合进行了词语切分与标注,过滤停用词语之后,为了提高信息抽取的准确率,将抽取的范围限定在一个合适的范围。必须找出在同一句子中出现两个命名实体对的句子。找出所设置上下文窗口内的命名实体对。下面将命名实体简称实体,命名实体对简称实体对。本发明中的实体对为〈汽车品牌,汽车车型〉。本发明实施例中,汽车品牌是一个实体,汽车车型是一个实体,下面说到的实体就是指这两者。
[0052]为了实现实体之间关系的自动抽取,必须实现提供一定的关系种子集合。可以通过人工的方法,给出少量关系种子集合。由于人工仅仅提供了少量的关系种子集合,对于信息抽取来说,这是不够的。通过自动训练的方法bootstrap实现关系种子的扩展。
[0053]由于实体对之间的关系可以通过它们之间的上下文来判断。具有相同或相似上下文的两组实体对具有相同或相似的关系。可以通过计算实体对和关系种子之间上下文向量的相似度作为它们之间的相似度。
[0054]本步骤包括步骤501和步骤502,如图3所示。
[0055]步骤501:人工选取汽车品牌和对应汽车车型。提供一定数量的种子和种子抽取模板,每个种子为一个实体对。具体数量可根据需要设置。种子抽取模板例如:如(某汽车品牌)发布(某汽车车型)。
[0056]步骤502:通过bootstrap方法挖掘实体对。通过bootstrap方法自动挖掘实体间关系,可不断得到种子抽取模板,根据种子抽取模板重新迭代抽取种子。
[0057]本发明实施例中抽取汽车品牌和车型的伪代码如下:
[0058]Make seed words of car brandMcar type\\获取汽车品牌和汽车车型种子词库;
[0059]While (can find new words):\\如果找到新词则进入循环;
[0060]Extract sentences that contain multiple entity\\抽取所有包含两个及以上实体的句子;
[0061]Extract pattern used in sentence between entity\\ 抽取句子中实体间的模式;
[0062]Bootstrap extract new car brandMnew car type\\ 自学习抽取新的汽车品牌和汽车车型;
[0063]Output collect1n of car brandMcar type\\ 结束获取汽车品牌和汽车车型。
[0064]步骤6:无监督构建实体关系网络,包括步骤601?步骤604。首先识别每个句子中的实体。对于每一个句子,使用对句子进行标注的结果。然后对识别出来的实体构建实体对,再进行关系分类。
[0065]步骤601:抽取所有包含两个及两个以上实体的句子,抽取其中的动词以及对应的文档。
[0066]步骤602:对步骤601中抽取的动词进行归一化和去噪处理,将动词对应到离散值O和1,同时去除其中重复或者无意义的动词。
[0067]步骤603:对步骤601中抽取的文档建立基于深度学习(Deep Learning)的词聚类模型,得到实体在其他词上的概率分布。
[0068]步骤604:根据词之间的关系,例如主谓、动宾等关系,构建实体关系网络,该网络包含所有抽取出的动词描述的实体之间的关系。构建实体关系网络的步骤如图4所示。
[0069]本发明实施例中构建实体关系网络的伪代码如下所示:
[0070]Extract articles that contain more than lentity\\ 抽取包含两个以上实体的文档
[0071]Build word2vec model using deep leaning\\利用深度学习构建word2vec模型
[0072]While True:
[0073]Compute word distribut1n of entity, a->word2vec(a)
[0074]\\利用word2vec模型计算实体词a的分布word2vec (a)
[0075]Then compute words similarity s i m ( a , b ) =cosine (word2vec(a), word2vec(b))
[0076]\\ 计算词 a和词 b 之间的相似性 sim(a, b) = cosine (word2vec (a), word2vec (b))
[0077]Construct similarity graph between entity using sim value.
[0078]\\根据词与词之间的相似性值构建词相似性图
[0079]本发明实施例利用深度学习构建word2vec模型,利用word2vec模型获取词的分布,根据词的分布来计算词之间的相似性,从而可实现词的聚类。
[0080]步骤7:定义实体关系类别。抽取文章中的动词,如“收购”,“合作”,“发布”,获得关系类别。步骤7包括步骤701?702。
[0081]步骤701:对步骤2中预处理后的新闻数据抽取所有包含两个实体的句子中的动
ο
[0082]步骤702:再次对动词进行聚类,得到关系的类别,将相同的动词归为同一类。
[0083]本发明实施例中对实体关系分类的伪代码如下所示:
[0084]Extract articles that contain more than IentityW 抽取多于一个实体的文档;
[0085]Get all Verb between two entities\\ 获取所有两个实体间的动词;
[0086]Using LDA cluster Verbs\\利用LDA主题聚类模型对上面获取的动词进行聚类;
[0087]Get relat1n type as cluster result\\ 将动词的类型作为聚类结果。
[0088]步骤8:对实体关系进行分类。对实体关系网络中的每个实体对基于步骤7的聚类结果进行关系分类。实体关系网络中一个实体对关系对应一个特征,通过抽取特征,基于步骤7聚类形成的规则进行关系分类。
[0089]经过步骤6得到的实体关系网络,可得到包含的实体集合,本发明实施例为汽车品牌集合N和汽车车型集合0,对任意n e N, ο e 0,构建实体对(η,ο)。由于仅仅考虑汽车品牌与汽车车型的关系,因此在实体对构建时,始终把汽车品牌放在第一位,汽车车型放在第二位。而它们在句子中出现的顺序则被作为特征在模型学习和分类时被考虑到。例如,在句子“丰田推出新款rav4”中,若识别出汽车品牌“丰田”,汽车车型“rav4”,则N = {丰田}, O = {rav4},然后得到实体对K丰田,rav4)}。
【权利要求】
1.一种基于深度学习的命名实体关系抽取与构建方法,针对某一特定领域,其特征在于,包括如下步骤: 步骤1:构建爬虫程序,在垂直网站上抓取领域内的新闻数据; 步骤2:对获取的新闻数据进行预处理,去除垃圾信息,包括重复信息、不正常显示信息和编码乱码信息;将预处理后的新闻数据用于下面步骤; 步骤3:对新闻数据进行分词,抽取关键词,将抽取的关键词加入词库,生成行业词库; 步骤4:利用行业词库对新闻数据进行中文分词,获取对应的词集合; 步骤5:抽取种子词库,种子为设定的实体对; 步骤6:无监督构建实体关系网络,具体是:从新闻数据中抽取包含两个以上实体的句子,抽取句子中的动词以及对应的文档;对抽取的文档建立基于深度学习的词聚类模型,获取实体在词上的分布;根据动词描述的词之间的关系,构建实体关系网络; 步骤7:定义实体关系类别,具体是:从新闻数据抽取包含两个实体的句子中的动词,对动词进行聚类,将相同的动词归为同一类; 步骤8:对实体关系网络中的每个实体对,基于步骤7的聚类结果进行关系分类。
2.根据权利要求1所述的一种基于深度学习的命名实体关系抽取与构建方法,其特征在于,所述的步骤3抽取关键词时,采用N-gram模型分词,N= 1,2,3,计算词的点互信息PMI值,与设定的阈值比较,将大于阈值的词作为关键词; 词a和词b的PMI值PMI (a, b) = p(a)p(b)/p (ab),其中,p (a)表示词a出现的频率,P (b)表示词b出现的频率,P (ab)表示ab出现的频率。
3.根据权利要求1所述的一种基于深度学习的命名实体关系抽取与构建方法,其特征在于,所述的步骤4获取词集合时,计算词的逆向文件频率idf和词频tf,得到词的权值log (tf/(idf+1) +1),提取权值大于设定的权值阈值的词,构成相应的词集合。
4.根据权利要求1所述的一种基于深度学习的命名实体关系抽取与构建方法,其特征在于,所述的步骤5中,首先人工制作一定数量的种子,然后利用bootstrap方法从新闻数据中挖掘实体对。
【文档编号】G06F17/30GK104199972SQ201410488047
【公开日】2014年12月10日 申请日期:2014年9月22日 优先权日:2013年9月22日
【发明者】袁伟, 邓攀, 闫碧莹, 赵鑫, 李玉成, 余雷 申请人:中科嘉速(北京)并行软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1