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

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

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

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

作者&编辑 | 小Dream哥

1  文本结构化的意义

数字化、线上化在21世纪前15年是非常流行的概念,经过多年的发展,大部分企业都进入了无纸化、线上化的办公、生产和销售时代。

例如,我们大家熟悉的求职过程,很可能就是一个全程无纸化线上化的过程。过程可能如下所示:

1.你在某招聘网站填写线上简历;

2.某公司HR在线上看到你的简历,匹配到其公司的某个职位,打电话问你是否感兴趣;

3.你觉得职位、公司都挺满意,欣然答应,并约好了面试时间。细心的你最后还询问HR是否需要带纸质简历,HR告诉你不需要,简历已经在线发给了面试官。面试过程,面试官在该公司的面试系统记录了你的面试表现,表示你通过了该公司的面试。

4.随后,你收到了该公司的邮件,邮件不仅通知你通过了该公司的考核,发给你offer。邮件里还附带一个二维码,告诉你下载这个APP,后续的报道流程,都通过这个APP进行。

5.你非常开心的下载并打开这个APP,APP让你填了基础的信息,并请你提供二甲以上的医院的入职体检证明。

6.你的体检证明通过了该公司的审核,你们在线上签订了劳动合同,并确定了入职日期。

这是一个完全线上化和无纸化的过程,我们可以想一下,这各过程的这些步骤,哪些部分是最繁琐,也是目前最可能应用AI技术替代人处理的。在我看来,至少有加粗的两个部分是可以用AI技术来减轻HR工作的。以“匹配到其公司的某个职位”也就是筛选简历为例,我听过很多猎头和HR对海量筛选简历之抱怨。不过,用目前的NLP技术是完全可以实现大部分的简历分析和匹配的。因为不同候选人的简历格式不一,简历的分析和匹配势必就会涉及简历的结构化,以提取候选人的姓名、技能、学历以及工作经验等重要信息。

我们细想一下,其实人工处理大量文本的场景是很常见的。例如,大公司的签报流程处理人员和财务审计人员,招投标公司的标书筛选过程等等。随着线上化的普及,这些场景给了NLP技术展现其能力的大好时机,通过文本的结构化相关的技术,从线上化文本中,提取相应场景中感兴趣的信息,能够极大的减少人工的工作量,提高效率。

总的来说,文本的结构化通过快速实现文本的理解和信息提取,大量的减少人工负荷。在线上化、无纸化流程作业的今天,具有很广泛的应用空间。

2 文本如何结构化

文本的结构化是一个相当复杂的工程问题,通常情况下,办公或者生产过程中出现的文本为word、PDF等有一定段落结构和篇幅的文档。按照现在的NLP技术,端到端的实现文本的结构化,是不太可能的事情。

基于此,面对一个复杂的问题,通常需要步步分解,将一个大的看上去很艰难问题,分解成一些小的容易处理的问题。那我们来看看,笔者认为,通过哪些步骤能够完成这样一个任务。

2.1 定义需求

我这里提到的文本结构化,通常是基于某一个场景的某一些需求,例如,求职招聘场景中的简历筛选与匹配需求。所以,要对文本结构化,首先需要了解的是,要从源文本中获取哪些信息?也就是定义需求。通过需求定义,我们给问题划了一个范围,明确了目标。

例如,在求职招聘场景中,面对形形色色的候选人简历,HR感兴趣的是候选人的如下信息:

姓名:周公举

出生年月:1983年5月

毕业学校:中央音乐学院

学历:本科

专业:流行音乐

技能:演唱,作曲,导演

工作经验:曾发行数张音乐唱片,创作N首原创歌曲;参演5部电影,自导自演2部。

其实结构化简历,还有一个场景需要,就是目前很多招聘网站的收费服务:简历优化。将简历结构化的信息抽取之后,后续的简历筛选,简历优化以及岗位匹配运用NLP技术或者甚至一些简单的判断就能有不错的效果了。

这个过程,通常是跟业务强相关的,可以由业务专家、产品经理主导,算法工程师配合完成。

2.2 文本的预处理

前面提到,通常情况下,办公或者生产过程中出现的文本为word、PDF等有一定段落结构篇幅的文档。要用算法处理这些原始文档,通常会面临这些问题:

1.NLP模型无法直接处理PDF等类图像格式的文档;

2.文档有可能篇幅很长,不可能直接将文本内容输入模型进行处理;

3.比较难获取文档中的文档结构信息、篇章层次信息、字体格式信息等。

对于第一个问题,通常需要PDFReader,将类图像格式的文档转化为文本文档;对于第二个问题,通常会将文档进行分段落处理,舍弃无意义的段落,截取感兴趣的段落;对于第三个问题,是最复杂的问题,这往往已经不是单纯的自然语言处理的问题,通常需要结合计算机图像处理的技术以及OCR技术,才能比较好的解决第三个问题。

文本的预处理过程,是一个复杂且重要的步骤,预处理的效果直接影响后续信息抽取模型的效果。

通常,预处理步骤的输出应该是如下形式的json文件:

{

{

“基本信息”:“

姓名:***

出生年月:1***

},

{

“个人介绍”:“擅长C,python,java等编程语言,熟悉NLP算法。。。”

},

{

“教育经历”:{

“本科”:“华中科技大学”,

“硕士”:“中国科学院”

}

}

}

通过输出这种层次丰富、信息准确的JSON数据,后面的NLP信息抽取模型,就能够大展身手了。

(0)

相关推荐