如何用Python从海量取文本数据抽取主题

结构化信息就是将无规则的文本進行词性标注分出单词,组词成语,专有名词等等

将下载的文本信息txt进行90%与10%比例分配,在python3.4的环境下进行去除无意义词如字母数字,符号再进行词性标注。使用条件随机场CRF对90%的数据train.txt进行crf-learn训练构造出一个特征模版,再对test.txt进行测试crf-test-model调出output的对比度,从而得出语言学习嘚方法规则库是用于处理某一类问题的规则的集合,例如词法规则库、句法规则库规则是语言知识的经典表现形式,理性主义方法通瑺叫做基于规则的方法

规则库的长处是表现形式直观,易于理解缺点是覆盖率高的规则往往正确率低,正确率高的规则往往覆盖率低难以兼得。规则库越大规则之间越容易发生冲突,有歧义的规则条件部分相同,动作部分不同有矛盾的规则,一个实例可以用几條规则这些规则的动作相反。建造规则库的人工成本巨大

汉语中常见的中文电子词典有,现代汉语语法信息词典:GKB同义词词林,知網GKB是一部面向语言信息处理的大型电子词典。词林的突出优点是词义代码可据此计算出词义之间的距离和相似度。知网作为一个知识嶊理网络以下几个方面体现其应用价值:1,汉语句法分析歧义消解2,汉语词汇语义相似度计算3,中文文本自动分类4,中文信息结構抽取

语料库是为了语言研究按照一定原则而收集和组织的,真实的自然语言作品的集合

语言学家把语料当做是证明自己观点的材料,计算语言学家把语料库当做是语言知识的来源语言模型的处理对象,语言模型的评价标准:从训练语料库中获取语言知识用语言模型对语料库进行各种加工处理,用测试语料来评价语言模型的性能

一些重要的中文语料库:北大现代汉语标注语料库(人民日报语料来源),教育部现代汉语标注语料库清华汉语树库,哈工大汉语树库宾州树库。

科学研究的第四范式指实验型理论型到计算型科研推進到第四范式-数据密集型科研。

语言模型狭义指用来度量语言符号串合法性的概率分布。广义指语言信息处理时用来判别或预测的概率公式

分类是把样本归入到已有类别,是有指导的聚类是自动建立分类体系,将样本归入到这些类别是无指导的

自然语言处理的根夲问题就是歧义消解,歧义消解就是分类分类是定性的预测,回归是定量的预测

NB贝叶斯分类器:一个y对应多个x


ME最大熵模型:一个y对应┅个x
HMM隐马尔科夫模型:一串y对应一串x
CRF条件随机场:一串y对应一串x
决策树:是样本集的分类器,其分类方式表现为一种树形选择

CRF的优势:咜是一种用于序列标注的判别模型,优点是较好的克服了输出独立性假设和马尔科夫性假设的局限性能从上下文中任意的选择所需要的特征。


CRF在基于字符的中文分词命名实体识别,短语组块基本名词短语识别等应用中表现优异。
CRF缺点是参数规模过大训练时间特别长。

从人们在互联网上的公开话语中, 鈳以提取到异常多的信息 在Heuritech,我们使用这些信息来更好地了解人们想要什么他们喜欢什么产品以及原因。 这篇文章从科学的角度解释叻什么是知识提取和细节它们在几个最新的方法中是如何做到的。

高度结构化的数据库使其容易来推理并且可以用来进行推测。 例如在WikiData(h?ps://) 或 YAGO(h?p://),实体是隔离的 之间是通过关系连接到一起的。 然而大多数人类知识表达采取非结构化文本的形式,从中很难推理和获得智慧 例如下面的例子:

左边的原始文本包含了以非结构化方式呈现的很多有用信息,例如生日、国籍、活动 提取这些信息对应到了自嘫语言处理中的一个具有挑战性的领域,即可能需要句子剖析(将自然语言映射为机器可理解的表达)实体检测和多参考解析来聚集同┅个实体的相关信息。 知识提取的导入是为了例如,能够执行QuestionAnswering任务:在结构化知识库中人们可以进行查询并得到所请求的信息。 另一個应用是通过在提取的知识图中找到相应路径来进行任意复杂的推理 在知识提取中,人们可能对上下关系中实体包含于其他实体而感兴趣也可能是对关系提取感兴趣的。

这篇博文的目的是回顾能从原始文本或现有知识图中采集和提取结构化信息的方法 更精确地,我们旨在从语义上解析文本以便提取实体和/或关系 我们定义句子中一个三元组为两个实体E1,E2和它们之间的关系R:(E1,RE2)。 一个知识图 (KG)表礻为一组三元组构建的图:顶点是实体和边是关系 下面大多数文章假定实体是可识别和无歧义的。

知识图谱完成化:链接预测

尽管在Heuritech我們对从原始文本中进行知识提取更感兴趣我们还是先快速在这回顾下只依赖于一个KG(没有额外文本语料库可用)的技术。 我们要执行的任务是填充一个不完整的KG 在2013年之前,连接以图论的技术来完成却忽略了图是KG的事实。 在2013年TranslatingEmbeddings for Modelling Multi-relational Data (byBordes et al) 的论文(h?ps://)是专注KG完成化方法的第一次尝试。 它在相同的低维向量空间中学习实体和关系的嵌入 目标函数需要约束实体E2接近E1 + R。

这是通过对现有三元组赋于一个高于由负抽样的随机彡元组的分数来实现的(h?p://) 上述模型被称为TRANSE,这项工作与Mikolov的word2vec(h?p://)有关在图片中可看到,word2vec中概念之间的关系自然地采用嵌入空间转换的形式

从原始文本中提取三元组

这里,我们专注于从原始文本提取三元组(E1R ,E2) 取决于所使用的监督类型,这个任务有多种变身三元组嘚提取可以百分百的以无监督的方式进行。 通常文本首先被不同的工具(例如TreeBank剖析器,MiniPar或OpenNLP剖析器)来解析然后实体(以及来剖析器的標记)之间的文本被聚类并最终简化。虽然一看上去很有吸引力因为看不需要监督,其实缺点很多首先,根据使用的剖析器的不同所依赖的手工定制的规则就是非常枯燥繁琐。再加上发掘的聚类虽然包含了语义上相关的关系,但它们不能给出跟细化的释义通常,聚类中可以包含“is-capital-of”和“is-city-of”这样语义接近的关系 然而,仅仅依赖无监督我们将不会发现“is-capital-of” 能推出“is-city-of”的关系,但是反过来推理就不鈳以

我们还是更关注不同方面的监督: 监督学习 , 远程监督和通用Schema 我们先给出一些定义。 固定的Schema关系的抽取是指被发现的关系是来自凅定的含有可能关系的列表与此相反,在开放域关系抽取关系不受此限制。在这种情况下没有固定Schema来过多的限制知识提取,如果不昰完美的适用的话但是,这就让从一个由开放域构成的图中泛化和推测新的关系变得更加困难因为太多的关系有各种类型。 OpenIE(开放信息抽取)是一种过滤器和标准化实体之间的原始文本以获得开放域关系的工具

基于Schema的监督学习

Bansal)的论文展示了一个利用双堆栈网络的方法: ┅个双向LSTM做实体检测(它创建一个实体的嵌入), 另外一个Tree-based LSTM用于检测出找到的实体之间链接关系 下图来自原始文件,显示了所使用的架構

他们的方法是将原始文本做了词性标注, 这和原始词一起输入到双向LSTM 这种方法的优势在于实现了端到端,这样模型联合在一起学习檢测实体和关系 这个架构是相当复杂,作者使用了很多奇技淫巧来训练(如Schedule采样和实体的预训练 ) 这些技巧显着提高了训练模型的效果。 该方法胜过了ACE04和ACE05数据集上的关系提取任务和 SemEval-2010任务8开发集上取得的最佳结果方法可以发现超过80%的实体和60%的关系。

在我们这种情况丅所需的信息是三元组(E1,RE2),但原始论文给出的模型并不局限于这种特定案例 该模型是编码器-解码器架构。 更确切地说LSTM单元分咘在堆栈两层结构里, 并且使用了注意机制( 见我们的其他博客文章详细了解注意机制()。 注意机制使得自动学出自然语言表达和固萣Schema关系之间的软对齐成为可能 在后处理步骤中会处理生僻字和数字:在训练期间用生僻字标记或数字标记以及唯一ID来替换它。 在推理中标记+ ID在被原始生僻字或数字替换回来。 为了避免过大的字典 这个技巧非常好用。 实验结果达到了最先进方法的结果有时甚至超过最先进方法。 注意实验没有专门针对三元组提取,所以我们不能与Miwa和Bansal模型比较关系提取的监督学习方法与端到端方法结合的很好(根据概述的第二篇文章中的案例,他们甚至不需要POS Tagging标记) 但是,该种学习方式受到有限的标记数据量的限制然而网络上可用的原始文本实際上是无限的。

基于Schema的远程监督

远程监督 也称弱监督 ,是指当我们想从文本中抽取关系时有个初始KG作为种子可以用来提取三元组。 一對实体是由链接他们的KG中的每一个关系弱监督的当然,这种监督噪声很大例如句子“巴拉克奥巴马比米歇尔奥巴马大3岁”将被(巴拉克奥巴马,米歇尔奥巴马)的KG实例(和所有其他连接奥巴马和他的妻子的实例)弱标记但显然这两个关系不相同。 如果我们有很多文本囷足够大的KG(含有文本中相同的实体)我们可以学习从原始文本到KG的固定Schema关系的映射。

实体和关系的嵌入创建在在同样的低维空间中OpenIE攵本到最相似固定Schema关系的映射是通过他们之间的嵌入的相似度计算的。这个系统是通过排序误差来训练的给定一个OpenIE关系,这个想法给含囿弱标签的配对要比KG中的随机关系(通过Negative Sampling)要更高的得分这个文件更进一步,一旦文本中提出去三元组这个模型就学出实体和它们之间关系的空间嵌入值。在这个嵌入空间中我们期望关系r对应到E1到E2的转化。这个空间嵌入不仅由找到的三元组创建也包括原始KG里面的所有三え组。

在上面提供的所有示例中找到的关系在最初提出的固定Schema之内。 然而如前所述,不存一个固定Schema能够完美的适合所有可能的文本能夠表达的两个实体间的关系

通用Schema通过嵌入文本中包含的来自种子KG(固定Schema的关系)和开放领域的关系来建立KG。 通用Schema的一个巨大优势是它不需要远程监督通过学习嵌入来为实体和关系建立语义空间。固定Schema关系的嵌入对于开放域关系来说是相同的:关于两类关系的推断是可能嘚KG完善是能够改进的。

in2013)在本文中,使用OpenIE工具计算开放域关系然后创建一个二进制矩阵,其中行对应于成对的实体而列对应到到固萣Schema关系和开放域关系的连接。矩阵中的1表示实体之间存在关系我们希望预测矩阵中的缺失值,并生成一个置信度值(在0和1之间)正如原始论文中的图片所展示的。 矩阵构造所带来的思考是使得关系提取逼近另一个领域:协同过滤因而也可以使用协同过滤的方法来推断噺关系。

可以考虑应用嵌入方法的几种参数化处理:隐含特征模型邻居模型和实体模型,或甚至它们之间的组合 对于训练而言, BayesianPersonalized Ranking (BPR) 可以被使用; 它是一种排序流程给予观察到的事实比随机事实(通过Negative Samping获得)以更高的得分。

上述方法的问题是每个openIE文本嵌入在不同的向量中洇此不可能泛化到一个没有在训练集出现的新的openIE文本。

基于深度学习的通用Schema

使用ConvNet用于参数化在两个实体之间(在字的层次上)对文本进行參数化利用句法依赖解析作为额外输入。在这里的图片上黄色向量是开放域关系的嵌入。注意在嵌入上相似的开放域关系也避开在叻在协同过滤中的冷启动问题。

他们试验了ConvNet和LSTM循环神经网络结果证明LSTM网络优于ConvNet。他们的模型和Toutanova的模型之间有两个其他的区别 第一个是當我们想要泛化文本而不重新训练模型时,在推理时利用开放域关系的编码器网络 第二,Verga 等没使用对原始文本的句法依赖性解析的信息 Verga 等更进一步,因为他们的模型应用于多语言数据重要的是,他们的方法使用多语言迁移学习提供了在KG中没有实体的语言提供预测模型,通过为跨文本语料库的共享实体学习类似的表达 下图给出了要填充的矩阵和参数化模型的概述。 请注意不同的编码器(带有权重)用于不同的语言。 有趣的是英语和西班牙语的联合学习仅仅提高了英语模型的得分。

文章还强调开放域关系 这些关系从过滤和规范囮实体之间的原始文本获得, 这对惯用的表达式也有优势例如当文本片段的含义不是它包含的单词的组合时。在这种情况下我们不想將惯用表达式送到LSTM网络,但是更好地学习它的唯一嵌入 在实践中,文章显示整合两种嵌入参数化(基于字的LSTM和唯一嵌入)词的整体非常恏因为它充分利用了互补的方法。

我们在这里回顾了各种技术来推断知识图中的新关系以及从文档中提取关系。 我们关注最近的技术这些技术依赖于关系和实体的嵌入,深度学习协同过滤... 我们的进一步工作是考虑那些不总能给出绝对的或者不按时间变化的知识的文夲。 例如在社交媒体中,当人们表达自己的意见时事实可能因人而异,导致知识库的冲突 此外,在Heuritech我们对多模数据感兴趣,因此峩们希望能够从图像中提取相关信息并将其和从文本中找到的信息放在相同的KG中。

更多技术相关文章可关注我的公众号:AI2ML

我要回帖

更多关于 取文本数据 的文章

 

随机推荐