json数据怎么抽取实体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json数据怎么抽取实体相关的知识,希望对你有一定的参考价值。

参考技术A 1.
打开Kettle工具,创建转换 通过使用Kettle工具,创建一个转换json_extract,并添加“JSON input”控件、“表输出”控件以及Hop跳连接线。
2.
配置JSON文件输入控件 双击“JSON input”控件,进入“JSON输入”界面。 单击【浏览】按钮,选择要抽取的JSON文件json_extract.json;单击【增加】按钮,将所选择的文件添加到“选中的文件和目录”处。 单击“字段”选项卡,添加要抽取的数据字段(这里采用分层抽取数据字段,先抽取id和data字段,再从data字段中抽取field和value字段)。 双击“JSON input 2”控件,进入“JSON输入”界面。 勾选“源定义在一个字段里?”的复选框;在“从字段获取源”处的下拉框中选择字段名,即data。 单击“字段”选项卡;添加从字段data中抽取的field和value字段。
3.
配置表输出控件 双击“表输出”控件,进入“表输出”配置界面。 单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。 单击目标表右侧的【浏览】按钮,选择输出的目标表,即数据表json;勾选“指定数据库字段”的复选框,用于将数据表json的字段与JSON文件json_extract.json中的字段进行匹配。 单击“数据库字段”选项卡,再单击【输入字段映射】按钮,弹出“映射匹配”对话框,将“源字段”选项框的字段和“目标字段”选项框对应的字段进行映射匹配。 “表输出”控件配置的最终效果。
4.
运行转换json_extract 单击转换工作区顶部的 按钮,运行创建的json_extract转换。

自然语言处理信息抽取:命名实体识别与关系抽取


Day1

信息抽取:命名实体识别与关系抽取

信息抽取(Inforamtion Extraction,IE),又称文本分析。信息抽取是形成数据库内容的有效手段,通过在杂乱无章的信息中抽取出实体及其实体关系。


PART

01   命名实体识别


1.命名实体识别(NER是识别给定文档中某一特定命名实体类型的所有实体指称,一般来说是信息抽取的第一个环节。

常见方法:

  • 采用基于规则的方法。

1️⃣通过规则从文本序列中识别专有名词;

2️⃣通过规则将这些专有名词分类为预定义的类别。

在这种方法中,任何系统和语言的规则都是由究人员手工编写的。


  • 第二类是基于机器学习的方法。

在基于机器学习的实体识别系统中,其目的是将识别问题转化为分类问题,并采用分类统计模型来解决。


在这种类型的方法中,系统通过机器学习算法来查找文本中的模式和关系,然后识别名词并将名词分类为特定的类,例如人、地点以及时间等。


基于机器学习算法的实体识别主要使用监督学习的方式从文本中进行实体抽取。


在统计模型中,通常将实体识别任务视为一个序列标注问题。


该过程需要标注好的训练数据来构建统计模型,在没有大量训练数据的情况下,无法取得良好的性能。


常用的基于监督训练的实体识别方法:

隐马尔科夫模型(HMM)、最大熵马尔科夫模型(MEMM)、条件随机场(CRF)以及支持向量机(SVM)。


2.常见问题:实体歧义。

实体歧义是指一个实体的名字对应到多个真实世界实体,比如“苹果”实体既可以表示水果种类的苹果也可以表示公司种类的苹果公司。根据该实体出现的上下文语境确定其唯一指代的真实世界实体就是实体歧义消除。


解决方法:

实体消歧的方法大致上包括基于聚类的实体消歧以及基于实体链接的实体消歧。

1️⃣基于聚类的实体消歧

基于聚类的实体消歧方法利用了同一指称项具有相似的上下文特性,然后利用聚类算法进行歧义消除。所以基于聚类的实体消歧核心问题就是如何为每个实体进行特征构造并根据不同的特征表示进行特征选择。


主要:基于词袋模型的方法、基于语义特征的方法、基于社交网络的方法以及基于维基百科的方法。


优缺点:基于聚类的消歧方法主要利用了语义信息,可以很好的达到消歧效果,但是其消歧目标却难以确定,同时实体没有一个显示的表示。


2️⃣基于链接的实体消歧主要是给定需要消歧的实体以及实体的上下文,将其链接到给定知识库中的相应实体上。


基于链接的实体消歧首先通过维基百科以及上下文信息发现候选实体,然后根据指称项和候选实体之间的相似性等特征确定最后的目标实体。




PART

02    关系抽取


关系抽取指的是给定句子中的一对实体,根据其上下文的特征判断这对实体之间是何种关系。在整个知识抽取过程中,关系抽取是实体识别以及实体消歧之后非常重要的操作。


1 方法分类

第一类为半监督的方法,  主要使用基于模板的bootstrapping 方法来抽取关系。


一般情况下该方法需要大量的没有标注的数据以及少量的对应关系的种子实例。


基本思路:

首先根据种子文件来学习模板,然后对学习出来的模板进行选择,最后再根据选择出来的模板去语料中进行实体对抽取,一直迭代此过程直到收敛。


比如,如果准备学习“首都”(CaptialOf)的模板时,对应的种子文件应该为<“北京”,“中国”><“伦敦”,“英国”>等。

给定这些种子之后,一个 bootstrapping 的算法就会自动地从语料中学到具有相同关系的实体对<“巴黎”,“法国”>。该方法的代表作之一就是 NELL


其他半监督的方法还有基于主动学习的方法以及基于标签传播的方法等


第二类关系抽取的方法为监督学习方法。


学习基本上有基于特征向量的方法、基于核函数方法以及基于神经网络的方法。基于特征向量的方法其主要步骤是特征向量的构建以及分类器的选择。特征向量基本上通过从句子和实体的语法以及语义层面抽取而来,分类器基本上主要以SVM 和最大熵模型为主。基于核函数的方法主要在于如何有效的挖掘和表示结构化信息以及如何度量结构化信息之间的相似度。近年来大部分监督训练的工作集中在基于神经网络的方法上,比如基于卷积神经网络的方法以及基于循环神经网络的方法等。

第三类方法为无监督学习方法。


目前基于无监督学习的关系抽取方法主要使用聚类方法来进行关系的抽取。该方法将实体之间的上下文特征抽取出来并计算上下文相似度,最后基于此对实体对进行聚类以及标记。



PART

03    最新研究


1 抽取形式的改变

上述这种管道式的知识抽取方法的好处是可以针对单独的部分进行优化,使得整个知识抽取任务变得简单可协作。但是每一部分的操作又是依靠上一步的结果,所以管道式的抽取方法带来的弊端便是容易将上游的误差传到下游的模型中。


为了避免这种错误的传播,最新的一些研究提出同时抽取实体和关系。


这样一来就变成了优化整体的目标。在关系抽取时,也可以对实体抽取进行优化。该抽取方法基本上分为基于整数线性规划的方法(Integer  Linear  Programming based  Approach)、基于图的方法(GraphicalModels based Approach)、基于 Card-Pyramid 解析的方法、基于结构预测的方法以及基于深度学习的方法。


2 抽取内容的改变


【自然语言处理】信息抽取:命名实体识别与关系抽取



本文内容只用于学术交流和观点传播,全文摘录自:

[1]王鹏伟. 基于模板学习和深度学习的知识抽取和表示学习的研究与应用[D]. [出版地不详]: 华南理工大学, 2018.

[2]书籍:《自然语言处理综论


·END·
 

有兴趣为自己发声请发到青年有话后台!

学习·共读·分享


以上是关于json数据怎么抽取实体的主要内容,如果未能解决你的问题,请参考以下文章

.net 数据表转换成json

Pipline Model--实体关系抽取<总结>

java怎么读取json格式的数据

thinkphp中怎么返回json数据

数据库怎么映射生成java实体类

C#怎么获取json的数据循环到对象里