前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【文本信息抽取与结构化】详聊文本的结构化【下】

【文本信息抽取与结构化】详聊文本的结构化【下】

作者头像
用户1508658
发布2020-02-26 11:08:06
3.4K0
发布2020-02-26 11:08:06
举报
文章被收录于专栏:有三AI

常常在想,自然语言处理到底在做的是一件什么样的事情?到目前为止,我所接触到的NLP其实都是在做一件事情,即将自然语言转化为一种计算机能够理解的形式。这一点在知识图谱、信息抽取、文本摘要这些任务中格外明显。不同的任务的差异在于目标的转化形式不一样,因而不同的任务难度、处理方式存在差异。

这个系列文章【文本信息抽取与结构化】,在自然语言处理中是非常有用和有难度的技术,是文本处理与知识提取不可或缺的技术。

本篇介绍如何从非结构的文档中,提取想要的信息,进而结构化文本。

作者&编辑 | 小Dream哥

前述

文本的结构化,是对文本的理解的过程,如果能够将这个过程交给AI去做,能够释放大量的人工成本。在【文本信息抽取与结构化】详聊文本的结构化【上】中,笔者介绍了文本结构化的意义,并开始介绍了如何进行文本的结构化,介绍了如何定义文本结构化的具体需求以及进行文本的预处理

这篇我们继续介绍,经过文本的预处理的之后,得到了一个层次丰富、信息准确的JSON字典。我们下一步要做的就是,按照需求,根据这个JSON字典,抽取出来我们想要的信息

还是简历筛选为例,讲述信息抽取的过程。经过文本预处理之后,得到如下所示的JSON文件:

代码语言:javascript
复制
{
"NoneTitle_1":{
   "content":"德有五 求职意向:NLP算法工程师(AI方向)123-11123-1110 | yousanai@happy.com.cn | 深圳",
   "postion":[0,[1,2,3]],
   "Typeface":"宋体",
    "size":"3"
}
"简介":{
"content":"对于机器学习和自然语言处理常见模型有一定理解和实践经验,解决实践过部分自然处理基本任务,包括实体识别、关系抽取、智能问答中语义相似度计算、文本分类等。",
   "postion":[1,[4,5,6]],
   "Typeface":"宋体",
    "size":"2"
},
"教育经历":{
   "content":"中国科学院|教育部快乐人生研究重点实验室 计算机应用技术|硕士
"2017.09-2020.06 绩点:3.62/4.0 (前20%)
" 华中科技大学 | 教育部幸福人生研究重点实验室 信息工程 |本科 2012.09 -2016.06 绩点 : 3.76/4.0 (前3%)",
   "postion":[1,[7]],
   "Typeface":"宋体",
     "size":"2"
},
"编程能力"{
   "content":"熟悉python、SQL,了解Java编程;熟悉TensorFlow框架,了解pytorch;熟悉Linux系统和Git版本控制;了解shell编程;",
   "postion":[1,[7]],
   "Typeface":"宋体",
     "size":"2"
},
"算法能力":{
  "content":" 掌握基本深度学习原理,包括CNN、LSTM、Seq2Seq、Attention、Transformer;理解常见文本分类算法和常见机器学习算法,包括LR、GBDT、XGBoost、TextCNN、LSTM等;",
   "postion":[1,[7]],
   "Typeface":"宋体",
     "size":"2"
}
 ....
}
JSON中,每一个对象中包含了4个字段,包括
"content":表示这个对象的文本内容
"postion",表示这个对象在文本中的位置
"Typeface",表示文本的字体
"size":"2",表示文本的字体大小

通过这四个字段,描述了原本PDF或者word文件中某一个段落的内容以及排版信息。当然,实际的项目过程,根据具体的情况,包含的内容可能需要更多更丰富。

假如简历筛选需要明确如下的信息:

1.名字

2.出生年月

3.联系方式

4.毕业院校

5.最高学历

6.技能

7.编程语言

...

信息抽取的过程,从上面的JSON字典中抽取这些信息的过程。

信息抽取

面对不同的任务,从上面的JSON文件中抽取相应信息的策略可能会有所不同。

一个可行的策略是,先从相关的字段中抽取相关信息;如果没有抽取到,再从其他不明字段中抽取;例如,假如要抽取候选人的名字,会先尝试从“简介”字段中抽取;没有抽取到,再从“NoneTitle_1”字段中抽取。

确定了相应的抽取策略之后,就剩最后一个任务,设计模型,从各个字段中抽取信息。

信息抽取模型大概有一下几种

1.实体识别模型:

通过序列标注将需要的字段在语料中标出,训练模型后,可以抽取出文本中的字段及类别

2.关系抽取模型:

根据需求,定义实体之间的关系,在语料中标出,训练模型后,可以抽取出文本中的实体及关系

3.阅读理解模型:

根据需求,将需要抽取的字段,整理成问答的形式,在语料中标出,训练模型之后,可以抽取出文本中感兴趣的内容。

以上是文本结构化过程一个大致的步骤和需要用到的技术,是笔者在实际工作中总结出来的一些经验,限于眼界,未能尽述和完备,如有不足,敬请赐教。

下次文章,详细介绍关系及实体抽取技术和模型,以完善这个系列的内容。

总结

文本信息抽取与结构化是目前NLP中最为实际且效益最大的任务,熟悉这个任务是一个NLP算法工程师必需要做的事情。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有三AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档