CN106445910A - 一种文档解析方法与装置 - Google Patents

一种文档解析方法与装置 Download PDF

Info

Publication number
CN106445910A
CN106445910A CN201510556440.XA CN201510556440A CN106445910A CN 106445910 A CN106445910 A CN 106445910A CN 201510556440 A CN201510556440 A CN 201510556440A CN 106445910 A CN106445910 A CN 106445910A
Authority
CN
China
Prior art keywords
stack
content
point
stack point
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510556440.XA
Other languages
English (en)
Other versions
CN106445910B (zh
Inventor
张海东
庄秋敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN YILAN NETWORKS CO Ltd
Original Assignee
SHENZHEN YILAN NETWORKS CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN YILAN NETWORKS CO Ltd filed Critical SHENZHEN YILAN NETWORKS CO Ltd
Priority to CN201510556440.XA priority Critical patent/CN106445910B/zh
Publication of CN106445910A publication Critical patent/CN106445910A/zh
Application granted granted Critical
Publication of CN106445910B publication Critical patent/CN106445910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种文档解析方法与装置,该文档解析方法包括以下步骤:S1、从原始文档中提取文本内容;S2、根据预设的分段识别符对文本内容进行分段,将分段后的文本内容放入原始内容堆栈;S3、依次取出原始内容堆栈的栈点内容,作为当前栈点内容;若当前栈点内容满足某个匹配项对应关键词的匹配条件,称当前栈点为当前匹配栈点,当前栈点作为某个匹配项的匹配起点,当前栈点内容除去关键词后的内容以及往下遍历的栈点内容作为某个匹配项的匹配内容,直到遇到下一匹配栈点时,下一匹配栈点的上一栈点作为某个匹配项的匹配终点。本文档解析方法能适应多种格式文档的内容解析,提高了文档解析精度,降低人工维护成本。

Description

一种文档解析方法与装置
技术领域
本发明涉及一种文档解析方法与装置。
背景技术
现有的商业活动中常会出现文档解析的需求,例如,招聘网站在录入应聘者上传的简历时,由于简历内容格式无统一规律,传统方式需要人工把简历内容逐项录入,严重影响工作效率。而现有文档解析技术的精确度又不高,一旦文档内容格式存在微小差异就可能导致整个解析结果都有问题。因此,有必要提出一种解析精度和解析效率兼备的文档解析方法。
发明内容
本发明目的在于提出一种文档解析方法与装置,以解决上述现有技术存在的文档解析精度低的技术问题。
为此,本发明提出一种文档解析方法,包括以下步骤:
S1、从原始文档中提取文本内容;
S2、根据预设的分段识别符对所述文本内容进行分段,将分段后的所述文本内容放入原始内容堆栈;
S3、依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;若所述当前栈点内容满足某个匹配项对应关键词的匹配条件,称当前栈点为当前匹配栈点,当前栈点作为所述某个匹配项的匹配起点,所述当前栈点内容除去所述某个匹配项对应关键词后的内容以及往下遍历的栈点内容作为所述某个匹配项的匹配内容,直到遇到下一匹配栈点时,所述下一匹配栈点的上一栈点作为所述某个匹配项的匹配终点。
优选地,步骤S2中所述分段识别符为根据所述文本内容中特定的分隔符转换得到;其中,所述分隔符包括回车符、空格、html标签中的一种或几种。
优选地,步骤S3中对所述原始内容堆栈的栈点内容进行如下处理,包括以下步骤:
S31、从当前栈底开始,依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;
S32、判断所述当前栈点内容是否满足关键词的匹配条件,若满足,执行步骤S33,且执行步骤S33后返回步骤S31,继续提取下一栈点内容;若不满足,执行步骤S34,且执行步骤S34后返回步骤S31,继续提取下一栈点内容;
S33、判断临时堆栈是否为空,若是,则在所述临时堆栈栈顶新建第一临时栈点,将所述当前栈点内容移入所述第一临时栈点;若否,则先在结果堆栈栈顶新建第一结果栈点,将临时堆栈的栈顶内容移出并移入所述第一结果栈点,再在临时堆栈栈顶新建第二临时栈点,将所述当前栈点内容移入所述第二临时栈点;
S34、判断临时堆栈是否为空,若否,则将所述当前栈点内容移入临时堆栈的栈顶栈点;
重复上述步骤S31~S34,直至原始内容堆栈中所有栈点内容处理完成。
优选地,步骤S3中,通过将所述当前栈点内容与预设的关键词库进行比较来判断所述当前栈点内容是否满足关键词的匹配条件;所述关键词库包括与所述原始文档匹配项相关的关键词。
优选地,所述关键词库中每一类关键词具有对应的关键词类型,所述关键词类型包括单栈匹配类、二栈匹配类、多栈匹配类、内容匹配类和排除匹配类;
相应地,步骤S3中对所述原始内容堆栈的栈点内容进行的处理,包括以下步骤:
S31、从当前栈底开始,依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;
S32、将所述当前栈点内容与关键词库进行比较,判断所述当前栈点内容是否满足关键词的匹配条件,若满足,则返回所述当前栈点内容以及所述当前栈点内容包括的关键词类型,执行步骤S33,且执行步骤S33后返回步骤S31,继续提取下一栈点内容;若不满足,返回所述当前栈点内容,执行步骤S34,且执行步骤S34后返回步骤S31,继续提取下一栈点内容;
S33、包括以下步骤:
S331、如果返回的关键词类型包括排除匹配类,则返回步骤S31,继续提取下一栈点内容;
S332、如果返回的关键词类型包括内容匹配类,则在结果堆栈栈顶新建第二结果栈点,将所述当前栈点内容和所述内容匹配类关键词对应的匹配项一起移入所述第二结果栈点;
S333、判断临时堆栈是否为空,若为空,执行步骤S334,若不为空,执行步骤S335;
S334、根据返回的关键词类型进行如下处理:
1)如果返回的关键词类型包含单栈匹配类,则在结果堆栈栈顶新建第三结果栈点,将所述当前栈点内容和所述单栈匹配类关键词对应的匹配项一起移入所述第三结果栈点;
2)如果返回的关键词类型包含二栈匹配类或多栈匹配类,则在临时堆栈栈顶新建第三临时栈点,将所述当前栈点内容移入所述第三临时栈点;
S335、如果临时堆栈栈顶内容包括的关键词类型是多栈匹配类且返回的关键词类型包含单栈匹配类、二栈匹配类或内容匹配类中的一种或几种,执行步骤S335-1;否则,执行步骤S335-2;
S335-1、首先,将所述当前栈点内容移入临时堆栈的栈顶栈点;然后,
如果返回的关键词类型包含单栈匹配类,则在结果堆栈栈顶新建第四结果栈点,将所述当前栈点内容和所述单栈匹配类关键词对应的匹配项一起移入所述第四结果栈点;
如果返回的关键词类型包含二栈匹配类或内容匹配类中的一种或两种,则在临时堆栈栈顶新建第四临时栈点,将所述当前栈点内容移入所述第四临时栈点;
S335-2、在结果堆栈栈顶新建第五结果栈点,临时堆栈的栈顶内容移出后和临时堆栈的栈顶内容关键词对应的匹配项一起移入所述第五结果栈点,在临时堆栈栈顶新建第五临时栈点,将所述当前栈点内容移入所述第五临时栈点;
S34、判断临时堆栈是否为空,若否,根据临时堆栈栈顶内容包括的关键词类型进行处理,包括以下情形:
1)若临时堆栈栈顶内容包括的关键词类型是单栈匹配类或者包括的关键词类型是二栈匹配类且临时堆栈栈顶的元素个数不小于2时,判断临时堆栈栈顶下一个栈点内容包括的关键词类型是否为多栈匹配类,
若是,则将所述当前栈点内容移入临时堆栈栈顶的下一个栈点;
2)若临时堆栈栈顶内容包括的关键词类型是二栈匹配类且临时堆栈栈顶的元素个数小于2,则将所述当前栈点内容移入临时堆栈的栈顶栈点;
3)若临时堆栈栈顶内容包括的关键词类型是多栈匹配类,则将所述当前栈点内容移入临时堆栈的栈顶栈点;
循环上述步骤S31~S34,直至原始内容堆栈中所有栈点内容处理完成。
优选地,在步骤S3之后还包括步骤S4,对所述结果堆栈的栈点内容进行处理得到解析结果,包括以下步骤:从当前栈底开始,依次取出所述结果堆栈的栈点内容,作为当前结果栈点内容,对所述当前结果栈点内容进行如下处理:
如果所述当前结果栈点内容包括的关键词类型是单栈匹配类或二栈匹配类,则将所述当前结果栈点内容覆盖对应匹配项已获取到的匹配内容;
如果所述当前结果栈点内容包括的关键词类型是多栈匹配类,则将所述当前结果栈点内容合并至对应匹配项已获取到的匹配内容。
优选地,在判断所述当前栈点内容是否包含关键词之前,还包括判断所述当前栈点内容是否为姓名,包含以下步骤:
Sa、判断所述当前栈点内容的字符个数是否不小于2且不大于4,若是,执行步骤Sb;
Sb、若所述当前栈点内容的第1个字符或第1~2个字符存在于预设的姓氏库中且不存在于预设的排除库中,则判断所述当前栈点内容为姓名。
优选地,在步骤S1和步骤S2之间还包括步骤:对所述文本内容进行整理,包括以下方式中的一种或几种:去除文本内容中无关信息内容;恢复文本内容中被转换过的字符;将文本内容中满足关键词匹配条件的文字中的分隔符去掉。
优选地,所述原始文档为简历文档。
本发明还提出一种文档解析装置,包括内容提取模块、内容入栈模块和内容解析模块;其中,
所述内容提取模块,用于从原始文档中提取文本内容;
所述内容入栈模块,用于根据分段识别符对所述文本内容进行分段,将分段后的所述文本内容放入原始内容堆栈;
所述内容解析模块,用于依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;若所述当前栈点内容满足某个匹配项对应关键词的匹配条件,称当前栈点为当前匹配栈点,当前栈点作为所述某个匹配项的匹配起点,所述当前栈点内容除去所述某个匹配项对应关键词后的内容以及往下遍历的栈点内容作为所述某个匹配项的匹配内容,直到遇到下一匹配栈点时,所述下一匹配栈点的上一栈点作为所述某个匹配项的匹配终点。
本发明提出的文档解析方法和装置从文本的阅读思维以及文字结构上寻找更加通用的内容结构规律,并且从适用于所有的文档解析为出发点,在一定程度上解决了文档解析的现有问题。以挖掘通用的内容规律(不仅仅只是简历内容规律,而是通用文档内容规律)为出发点,能适应多种格式文档的内容解析,并且减少人工维护工作量,保证较高的文档解析精确度。
附图说明
图1是本发明具体实施方式一的文档解析流程图。
具体实施方式
下面结合具体实施方式并对照附图对本发明作进一步详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
实施例一:
本发明提出一种文档解析方法,用于将包括若干匹配关系的原始文档进行解析,这里的匹配关系指原始文档中某部分内容为某个匹配项对应的匹配内容,参见图1是本发明具体实施方式一的文档解析流程图,包括以下步骤:
S1、从原始文档中提取文本内容;
本发明的实施例不对原始文档的格式进行限制,可以是doc、docx、wps、txt、mht、html、htm、pdf中任一种或是其他常见格式类型,也不对提取得到的文本内容格式进行不限制,可以是html格式内容、纯文本内容或base64位编码内容中任一种或是其他常见格式类型。
S2、根据预设的分段识别符对文本内容进行分段,将分段后的文本内容放入原始内容堆栈,原始内容堆栈的一个栈点存放一段内容;其中,分段识别符根据文本内容中特定的分隔符转换得到。并且,初始化临时堆栈和结果堆栈。
S3、依次取出原始内容堆栈的栈点内容,作为当前栈点内容;若当前栈点内容满足某个匹配项对应关键词的匹配条件,称当前栈点为当前匹配栈点,当前栈点作为某个匹配项的匹配起点,当前栈点内容除去该某个匹配项对应关键词后的内容以及往下遍历的栈点内容作为该某个匹配项的匹配内容,直到遇到下一匹配栈点时,下一匹配栈点的上一栈点作为该某个匹配项的匹配终点;即将当前栈点内容去除该某个匹配项对应关键词后的内容该与当前匹配栈点至下一匹配栈点之间的内容一起作为某个匹配项对应的匹配内容。其中,当前匹配栈点的下一匹配栈点指的是当前栈点之后第一个满足另一个匹配项对应关键词匹配条件的栈点内容。
具体地,包括以下步骤:
S31、从当前栈底开始,依次取出原始内容堆栈的栈点内容,作为当前栈点内容;
S32、判断当前栈点内容是否满足关键词的匹配条件,若满足,执行步骤S33,且执行步骤S33后返回步骤S31,继续提取下一栈点内容;若不满足,执行步骤S34,且执行步骤S34后返回步骤S31,继续提取下一栈点内容;
S33、判断临时堆栈是否为空,若是,则在临时堆栈栈顶新建第一临时栈点,将当前栈点内容移入该第一临时栈点的内容数组中;若否,则先在结果堆栈栈顶新建第一结果栈点,将临时堆栈的栈顶内容移出并移入该第一结果栈点的内容数组中,再在临时堆栈栈顶新建第二临时栈点,将当前栈点内容移入该第二临时栈点的内容数组中;
S34、判断临时堆栈是否为空,若是,则认为当前栈点内容为无效内容,将当前栈点内容移入回收堆栈;若否,则将当前栈点内容移入临时堆栈栈顶的内容数组中;
重复上述步骤S31~S34,直至原始内容堆栈中所有栈点内容处理完成。
本发明提出的文档解析方法与装置从文本的阅读思维以及文字结构上寻找到了更为通用的内容结构规律,以顺序遍历堆栈内容为原则,可以兼容多种无固定内容格式的文档,很精准地把内容匹配到对应的内容项里。且本文档解析方法是一个独立的程序,不需要其他额外程序的支撑,减少人工维护工作量。
实施例二:
本发明还提出一种简历文档解析方法,用于将包括若干匹配关系的原始文档进行解析,这里的匹配关系指原始文档中某部分内容为某匹配项对应的匹配内容,如简历文档中的“姓名”、“性别”、“居住地”等为匹配项,“张三”、“男”、“深圳”分别为上述匹配项对应的匹配内容,包括以下步骤:
S1、从原始文档中提取文本内容;
本发明的实施例不对原始文档的格式进行限制,可以是doc、docx、wps、txt、mht、html、htm、pdf中任一种或是其他常见格式类型,也不对提取得到的文本内容格式进行不限制,可以是html格式内容、纯文本内容或base64位编码内容中任一种或是其他常见格式类型。
S2、对文本内容进行整理,得到有效内容;包括以下方式中的一种或几种:
1)去除无关信息内容,如html的style样式代码、js脚本代码或其他编程语言代码等;
2)恢复被转换过的字符,如将“&nbsp;”转换为空格符,“&quot;”转换为“\”,“&lt;”转换为“<”,“&gt;”转换为“>”等;
3)将满足关键词匹配条件的文字中的分隔符去掉,如将“姓名”、“姓-名”中间的空格或者其他字符去掉转换为“姓名”。
S3、给文本内容添加分段识别符。在本发明的一个实施例中,将文本内容中的回车符、空格、html标签等转换为分段识别符。比如,文本内容中有一行内容为:“公司名称:深圳市XX公司职位:开发工程师”,由于空格前后的内容分别是一对完整的匹配关系,在本步骤中,将空格用自定义的分段标识符如“##”代替,因此,该行内容更改为:“公司名称:深圳市XX公司##职位:开发工程师”。由于本方案的目的在于分割匹配关系,通过上述内容分段方式,可以提高文档解析效率。
根据分段识别符对整理后的文本内容进行分段,将分段后的文本内容放入原始内容堆栈,原始内容堆栈的一个栈点存放一段内容。并且,初始化临时堆栈、结果堆栈和回收堆栈。
S4、通过将当前栈点内容与预设的关键词库进行比较,判断当前栈点内容是否满足关键词的匹配条件。
上述关键词库列举了与原始文档匹配项相关的关键词,如关键词包括:性别、男、大学、年龄、工作经历、工作经验、年工作经验等。一个匹配项可以对应多个关键词,如匹配项“工作经验”对应关键词工作经历、工作经验,而匹配项“名字”对应的关键词:名字、姓名,这样可以提高匹配效率。进一步地,关键词库中的关键词可以分为不同类型,每一类关键词具有对应的关键词类型,本发明的实施例中,定义如下关键词类型:单栈匹配类、二栈匹配类、多栈匹配类、内容匹配类和排除匹配类。
其中,若当前栈点内容包含某个单栈匹配类的关键词时,该当前栈点内容去除关键词后的内容即包含某个匹配项的匹配内容。单栈匹配类又可分为:纯文字单栈匹配类、正则单栈匹配类和数组型单栈匹配类等。当当前栈点内容包含纯文字单栈匹配类时,该当前栈点内容的至少部分内容与某个匹配项对应的关键词是一致的,如,定义匹配项“工作年限”对应的关键词“年工作经验”为纯文字单栈匹配类,若当前栈点内容包括“5年工作经验”,即可得到匹配项“工作年限”的匹配内容“5”;若当前栈点内容满足正则单栈匹配类关键词的匹配条件时,该当前栈点内容与该正则单栈匹配类关键词匹配的部分为某个匹配项对应的匹配内容,如,定义匹配项“手机号”的关键词“/1[0-9]{10}|1[0-9]{2}\s[0-9]{4}\s[0-9]{4}/is”为正则单栈匹配类,如当前栈点内容包括“13732966916”,即可得到匹配项“手机号”的匹配内容“13732966916”;数组型单栈匹配类表示匹配内容是可完全罗列的,如,定义匹配项“性别”的关键词“男”和“女”为数组型单栈匹配类,若当前栈点内容包括“女”,即可得到匹配项“性别”的匹配内容“女”。
若当前栈点内容包含某个二栈匹配类关键词时,若当前栈点下一栈点内容包含某个匹配项对应的关键词时,将当前栈点内容除去关键词后的内容作为该匹配项对应的匹配内容,若当前栈点下一栈点内容不包含任一个匹配项对应的关键词时,当前栈点内容除去关键词后的内容加上当前栈点下一栈点的内容为该匹配项对应的匹配内容,如定义“姓名”、“性别”、“籍贯”、“身高”、“政治面貌”、“婚姻状况”等为二栈匹配类关键词。
若当前栈点内容包含某个多栈匹配类的关键词时,则在当前栈点以下的栈点继续寻找,直到某个栈点内容包含另一个多栈匹配类的关键词,则将该某个栈点上面的栈点至当前栈点的内容除去当前栈点的关键词后的内容,作为该某个多栈匹配类关键词对应匹配项的匹配内容,该匹配内容中含有至少一个分段识别符,匹配内容可以包含若干个其他的匹配项对应的关键词,如定义“工作经验”、“学习经历”为多栈匹配类关键词。
内容匹配类表示当前栈点内容去除关键词后的内容即包含某个匹配项的匹配内容,与单栈匹配类不同的是,单栈匹配类可做为临时堆栈栈顶栈点的结束条件,而内容匹配类不作为临时堆栈栈顶栈点结束的条件。如定义“/(.*?)(大学|学院)/is”为内容匹配类关键词。
排除匹配类的关键词包含其他某个匹配项对应的某个关键词,当前栈点内容包含某个排除匹配类的关键词,需将当前栈点内容视为无效内容,在解析时不予处理,因为当前栈点内容可能会和其他某些匹配项冲突,如定义“不显示职位月薪范围”为排除匹配类关键词,匹配项“月薪”对应的关键词为“月薪”,由于“不显示职位月薪范围”中带有关键词“月薪”,在处理时可能引起误解析。
具体地,S4包括以下步骤:
S41、从当前栈底开始,依次取出原始内容堆栈的栈点内容,作为当前栈点内容;
S42、将当前栈点内容与关键词库进行比较,判断当前栈点内容是否满足关键词的匹配条件,若满足,则返回当前栈点内容以及当前栈点内容包括的关键词类型,执行步骤S43,且执行步骤S43后返回步骤S41,继续提取下一栈点内容;若不满足,返回所述当前栈点内容,执行步骤S44,且执行步骤S44后返回步骤S41,继续提取下一栈点内容;
S43、包括以下步骤:
S431、如果返回的关键词类型包括排除匹配类,则返回步骤S41,继续提取下一栈点内容;
S432、如果返回的关键词类型包括内容匹配类,则在结果堆栈栈顶新建第二结果栈点,将当前栈点内容和该内容匹配类关键词对应的匹配项一起移入该第二结果栈点的内容数组;
S433、判断临时堆栈是否为空,若为空,执行步骤S434,若不为空,执行步骤S435;
S434、根据返回的关键词类型进行如下处理:
1)如果返回的关键词类型包含单栈匹配类,则在结果堆栈栈顶新建第三结果栈点,将当前栈点内容和该单栈匹配类关键词对应的匹配项一起移入该第三结果栈点的内容数组;如当前栈点内容为“5年工作经验”,则将当前栈点内容和关键词“年工作经验”对应的匹配项“工作年限”一起移入该第三结果栈点的内容数组;
2)如果返回的关键词类型包含二栈匹配类或多栈匹配类,则在临时堆栈栈顶新建第三临时栈点,将当前栈点内容移入该第三临时栈点的内容数组;
S435、如果临时堆栈栈顶内容包括的关键词类型是多栈匹配类且返回的关键词类型包含单栈匹配类、二栈匹配类或内容匹配类中的一种或几种,执行步骤S435-1;否则,执行步骤S435-2;
S435-1、首先,将当前栈点内容移入临时堆栈栈顶的内容数组;然后,
如果返回的关键词类型包含单栈匹配类,则在结果堆栈栈顶新建第四结果栈点,将当前栈点内容和该单栈匹配类关键词对应的匹配项一起移入该第四结果栈点的内容数组;
如果返回的关键词类型包含二栈匹配类或内容匹配类中的一种或两种,则在临时堆栈栈顶新建第四临时栈点,将当前栈点内容移入该第四临时栈点的内容数组;
S435-2、在结果堆栈栈顶新建第五结果栈点,临时堆栈的栈顶内容移出后和临时堆栈的栈顶内容关键词对应的匹配项一起移入该第五结果栈点的内容数组,在临时堆栈栈顶新建第五临时栈点,将当前栈点内容移入该第五临时栈点的内容数组;
S44、判断临时堆栈是否为空,若是,表明无法识别当前栈点内容所属,则将当前栈点内容移入回收堆栈;若否,根据临时堆栈栈顶内容包括的关键词类型进行处理,包括以下情形:
1)若临时堆栈栈顶内容包括的关键词类型是单栈匹配类或者二栈匹配类,且二栈匹配类对应的内容数组不小于2时,判断临时堆栈栈顶下一个栈点内容包括的关键词类型是否为多栈匹配类,
若是,则将当前栈点内容移入临时堆栈栈顶的下一个栈点的内容数组中,即将与临时堆栈栈顶内容无法匹配的当前栈点内容回溯到上一个多栈匹配类匹配项的匹配内容中;
若否,则当前栈点内容为无效内容,移入回收堆栈;
2)若临时堆栈栈顶内容包括的关键词类型是二栈匹配类且对应的内容数组小于2,则将当前栈点内容移入临时堆栈栈顶的内容数组中,作为该二栈匹配类关键词对应匹配项的匹配内容;
3)若临时堆栈栈顶内容包括的关键词类型是多栈匹配类,则将当前栈点内容移入临时堆栈栈顶的内容数组中,作为该多栈匹配类关键词对应匹配项的新增匹配内容;
循环上述步骤S41~S44,直至原始内容堆栈中所有栈点内容处理完成。
S5、对结果堆栈的栈点内容进行处理得到解析结果,包括以下步骤:从当前栈底开始,依次取出结果堆栈的栈点内容,作为当前结果栈点内容,对当前结果栈点内容进行如下处理:
如果当前结果栈点内容包括的关键词类型是单栈匹配类或二栈匹配类,则将当前结果栈点内容覆盖对应匹配项已获取到的匹配内容;
如果当前结果栈点内容包括的关键词类型是多栈匹配类,则将当前结果栈点内容合并至对应匹配项已获取到的匹配内容。
举例来说,原始堆栈中某栈点内容为:“性别:男”,经过解析,得到结果堆栈中包含有性别内容的栈a)和栈b)分别为:
栈a):【sex】—>性别:男
栈b):【sex】—>男
对于栈a,结果堆栈会把“性别:”这个关键词替换掉,最终变成:
栈a):【sex】—>男
这样,栈a)和栈b)内容相同,由于栈b)内容比栈a)内容后到,匹配项性别最终对应的匹配内容以栈b)为准。
进一步地,在步骤S42中将当前栈点内容与关键词库进行比较前,还包括判断当前栈点内容是否为姓名,包括以下步骤:
Sa、若当前栈点内容的字符个数是否不小于2且不大于4,若是,执行步骤Sb;
Sb、判断当前栈点内容的第1个字符或第1~2个字符是否存在于预设的姓氏库中,若在预设的姓氏库中,再判断当前栈点内容是否存在于预设的排除库中,若不存在于排除库中,则判断当前栈点内容为姓名,在结果堆栈栈顶新建第六结果栈点,将当前栈点内容和对应的匹配项“姓名”一起移入该第六结果栈点的内容数组。比如有人姓“简”,但是简历就不是名字,“简历”就会在排除库里面。
本发明提出的文档解析方法大大提高了解析结果的精确率,多次实验表明,本文档解析方法的细分解析率可以达到90%以上,内容解析准确率85%以上,内容丢失率为0%,几乎不会出现因内容解析不出来而导致内容丢失的情况。且只需简单设置和维护关键词库即可,无需专业的开发人才进行维护,大大减低维护成本。将本文档解析方法应用在简历解析领域时,用户只需上传简历文档,系统即可智能地把简历文档(word、htm、mht、pdf等非固定内容格式的文档)中姓名、居住地、工作经验、教育经历、技能等细分内容分析出来,分析后的结果可录入到人力资源的相关平台或者系统,以替代人工录入,大大提升了工作效率和用户体验。
更进一步地,还可以做批量文档解析和系统导入,只需把大量的文档打包成压缩包,压缩包内也可以存在压缩包。本文档解析方法可自动对该压缩包进行解压、文档遍历、文档解析、导入系统等一系列处理,大大提高了处理效率,降低了人工成本。
实施例三:
本发明提出一种文档解析装置,用于将具有特定格式的原始文档进行解析,这里的特定格式指包括匹配项和与匹配项对应的匹配内容,包括内容提取模块、内容入栈模块和内容解析模块;其中,
内容提取模块,用于从原始文档中提取文本内容;
内容入栈模块,用于根据分段识别符对文本内容进行分段,将分段后的文本内容放入原始内容堆栈,一个栈点存放一段内容;
内容解析模块,用于依次取出原始内容堆栈的栈点内容,作为当前栈点内容;若当前栈点内容满足某个匹配项对应关键词的匹配条件,称当前栈点为当前匹配栈点,当前栈点作为某个匹配项的匹配起点,当前栈点内容除去该某个匹配项对应关键词后的内容以及往下遍历的栈点内容作为该某个匹配项的匹配内容,直到遇到下一匹配栈点时,下一匹配栈点的上一栈点作为该某个匹配项的匹配终点。其中,当前匹配栈点的下一匹配栈点指的是当前栈点之后第一个满足另一个匹配项对应关键词匹配条件的栈点内容。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域技术人员将认识到,对以上描述做出众多变通是可能的,所以实施例仅是用来描述一个或多个特定实施方式。
尽管已经描述和叙述了被看作本发明的示范实施例,本领域技术人员将会明白,可以对其作出各种改变和替换,而不会脱离本发明的精神。另外,可以做出许多修改以将特定情况适配到本发明的教义,而不会脱离在此描述的本发明中心概念。所以,本发明不受限于在此披露的特定实施例,但本发明可能还包括属于本发明范围的所有实施例及其等同物。

Claims (10)

1.一种文档解析方法,其特征在于,包括以下步骤:
S1、从原始文档中提取文本内容;
S2、根据预设的分段识别符对所述文本内容进行分段,将分段后的所述文本内容放入原始内容堆栈;
S3、依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;若所述当前栈点内容满足某个匹配项对应关键词的匹配条件,称当前栈点为当前匹配栈点,当前栈点作为所述某个匹配项的匹配起点,所述当前栈点内容除去所述某个匹配项对应关键词后的内容以及往下遍历的栈点内容作为所述某个匹配项的匹配内容,直到遇到下一匹配栈点时,所述下一匹配栈点的上一栈点作为所述某个匹配项的匹配终点。
2.如权利要求1所述的文档解析方法,其特征在于,步骤S2中所述分段识别符为根据所述文本内容中特定的分隔符转换得到;其中,所述分隔符包括回车符、空格、html标签中的一种或几种。
3.如权利要求1所述的文档解析方法,其特征在于,步骤S3中对所述原始内容堆栈的栈点内容进行如下处理,包括以下步骤:
S31、从当前栈底开始,依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;
S32、判断所述当前栈点内容是否满足关键词的匹配条件,若满足,执行步骤S33,且执行步骤S33后返回步骤S31,继续提取下一栈点内容;若不满足,执行步骤S34,且执行步骤S34后返回步骤S31,继续提取下一栈点内容;
S33、判断临时堆栈是否为空,若是,则在所述临时堆栈栈顶新建第一临时栈点,将所述当前栈点内容移入所述第一临时栈点;若否,则先在结果堆栈栈顶新建第一结果栈点,将临时堆栈的栈顶内容移出并移入所述第一结果栈点,再在临时堆栈栈顶新建第二临时栈点,将所述当前栈点内容移入所述第二临时栈点;
S34、判断临时堆栈是否为空,若否,则将所述当前栈点内容移入临时堆栈的栈顶栈点;
重复上述步骤S31~S34,直至原始内容堆栈中所有栈点内容处理完成。
4.如权利要求1所述的文档解析方法,其特征在于,步骤S3中,通过将所述当前栈点内容与预设的关键词库进行比较来判断所述当前栈点内容是否满足关键词的匹配条件;所述关键词库包括与所述原始文档匹配项相关的关键词。
5.如权利要求4所述的文档解析方法,其特征在于,所述关键词库中每一类关键词具有对应的关键词类型,所述关键词类型包括单栈匹配类、二栈匹配类、多栈匹配类、内容匹配类和排除匹配类;
相应地,步骤S3中对所述原始内容堆栈的栈点内容进行的处理,包括以下步骤:
S31、从当前栈底开始,依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;
S32、将所述当前栈点内容与关键词库进行比较,判断所述当前栈点内容是否满足关键词的匹配条件,若满足,则返回所述当前栈点内容以及所述当前栈点内容包括的关键词类型,执行步骤S33,且执行步骤S33后返回步骤S31,继续提取下一栈点内容;若不满足,返回所述当前栈点内容,执行步骤S34,且执行步骤S34后返回步骤S31,继续提取下一栈点内容;
S33、包括以下步骤:
S331、如果返回的关键词类型包括排除匹配类,则返回步骤S31,继续提取下一栈点内容;
S332、如果返回的关键词类型包括内容匹配类,则在结果堆栈栈顶新建第二结果栈点,将所述当前栈点内容和所述内容匹配类关键词对应的匹配项一起移入所述第二结果栈点;
S333、判断临时堆栈是否为空,若为空,执行步骤S334,若不为空,执行步骤S335;
S334、根据返回的关键词类型进行如下处理:
1)如果返回的关键词类型包含单栈匹配类,则在结果堆栈栈顶新建第三结果栈点,将所述当前栈点内容和所述单栈匹配类关键词对应的匹配项一起移入所述第三结果栈点;
2)如果返回的关键词类型包含二栈匹配类或多栈匹配类,则在临时堆栈栈顶新建第三临时栈点,将所述当前栈点内容移入所述第三临时栈点;
S335、如果临时堆栈栈顶内容包括的关键词类型是多栈匹配类且返回的关键词类型包含单栈匹配类、二栈匹配类或内容匹配类中的一种或几种,执行步骤S335-1;否则,执行步骤S335-2;
S335-1、首先,将所述当前栈点内容移入临时堆栈的栈顶栈点;然后,
如果返回的关键词类型包含单栈匹配类,则在结果堆栈栈顶新建第四结果栈点,将所述当前栈点内容和所述单栈匹配类关键词对应的匹配项一起移入所述第四结果栈点;
如果返回的关键词类型包含二栈匹配类或内容匹配类中的一种或两种,则在临时堆栈栈顶新建第四临时栈点,将所述当前栈点内容移入所述第四临时栈点;
S335-2、在结果堆栈栈顶新建第五结果栈点,临时堆栈的栈顶内容移出后和临时堆栈的栈顶内容关键词对应的匹配项一起移入所述第五结果栈点,在临时堆栈栈顶新建第五临时栈点,将所述当前栈点内容移入所述第五临时栈点;
S34、判断临时堆栈是否为空,若否,根据临时堆栈栈顶内容包括的关键词类型进行处理,包括以下情形:
1)若临时堆栈栈顶内容包括的关键词类型是单栈匹配类或者包括的关键词类型是二栈匹配类且临时堆栈栈顶的元素个数不小于2时,判断临时堆栈栈顶下一个栈点内容包括的关键词类型是否为多栈匹配类,
若是,则将所述当前栈点内容移入临时堆栈栈顶的下一个栈点;
2)若临时堆栈栈顶内容包括的关键词类型是二栈匹配类且临时堆栈栈顶的元素个数小于2,则将所述当前栈点内容移入临时堆栈的栈顶栈点;
3)若临时堆栈栈顶内容包括的关键词类型是多栈匹配类,则将所述当前栈点内容移入临时堆栈的栈顶栈点;
循环上述步骤S31~S34,直至原始内容堆栈中所有栈点内容处理完成。
6.如权利要求5所述的文档解析方法,其特征在于,在步骤S3之后还包括步骤S4,对所述结果堆栈的栈点内容进行处理得到解析结果,包括以下步骤:从当前栈底开始,依次取出所述结果堆栈的栈点内容,作为当前结果栈点内容,对所述当前结果栈点内容进行如下处理:
如果所述当前结果栈点内容包括的关键词类型是单栈匹配类或二栈匹配类,则将所述当前结果栈点内容覆盖对应匹配项已获取到的匹配内容;
如果所述当前结果栈点内容包括的关键词类型是多栈匹配类,则将所述当前结果栈点内容合并至对应匹配项已获取到的匹配内容。
7.如权利要求5所述的文档解析方法,其特征在于,在判断所述当前栈点内容是否包含关键词之前,还包括判断所述当前栈点内容是否为姓名,包含以下步骤:
Sa、判断所述当前栈点内容的字符个数是否不小于2且不大于4,若是,执行步骤Sb;
Sb、若所述当前栈点内容的第1个字符或第1~2个字符存在于预设的姓氏库中且不存在于预设的排除库中,则判断所述当前栈点内容为姓名。
8.如权利要求1所述的文档解析方法,其特征在于,在步骤S1和步骤S2之间还包括步骤:对所述文本内容进行整理,包括以下方式中的一种或几种:去除文本内容中无关信息内容;恢复文本内容中被转换过的字符;将文本内容中满足关键词匹配条件的文字中的分隔符去掉。
9.如权利要求1~8任一项所述的文档解析方法,其特征在于,所述原始文档为简历文档。
10.一种文档解析装置,其特征在于,包括内容提取模块、内容入栈模块和内容解析模块;其中,
所述内容提取模块,用于从原始文档中提取文本内容;
所述内容入栈模块,用于根据分段识别符对所述文本内容进行分段,将分段后的所述文本内容放入原始内容堆栈;
所述内容解析模块,用于依次取出所述原始内容堆栈的栈点内容,作为当前栈点内容;若所述当前栈点内容满足某个匹配项对应关键词的匹配条件,称当前栈点为当前匹配栈点,当前栈点作为所述某个匹配项的匹配起点,所述当前栈点内容除去所述某个匹配项对应关键词后的内容以及往下遍历的栈点内容作为所述某个匹配项的匹配内容,直到遇到下一匹配栈点时,所述下一匹配栈点的上一栈点作为所述某个匹配项的匹配终点。
CN201510556440.XA 2015-09-02 2015-09-02 一种文档解析方法与装置 Active CN106445910B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510556440.XA CN106445910B (zh) 2015-09-02 2015-09-02 一种文档解析方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510556440.XA CN106445910B (zh) 2015-09-02 2015-09-02 一种文档解析方法与装置

Publications (2)

Publication Number Publication Date
CN106445910A true CN106445910A (zh) 2017-02-22
CN106445910B CN106445910B (zh) 2019-04-12

Family

ID=58093924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510556440.XA Active CN106445910B (zh) 2015-09-02 2015-09-02 一种文档解析方法与装置

Country Status (1)

Country Link
CN (1) CN106445910B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547905A (zh) * 2017-05-10 2018-01-05 新华三信息安全技术有限公司 一种解码方法及装置
CN107563725A (zh) * 2017-08-25 2018-01-09 浙江网新恒天软件有限公司 一种优化繁琐人才招聘过程的招聘系统
CN107943785A (zh) * 2017-11-06 2018-04-20 广东广业开元科技有限公司 一种基于大数据的pdf文档处理方法及装置
CN108073678A (zh) * 2017-11-06 2018-05-25 广东广业开元科技有限公司 应用于大数据分析中的文档解析处理方法、系统及装置
CN108933779A (zh) * 2018-05-23 2018-12-04 和芯星通科技(北京)有限公司 输入混合数据流识别方法和装置、计算机可读存储介质
CN109271479A (zh) * 2018-09-29 2019-01-25 广东润弘科技有限公司 一种简历结构化处理方法
CN109492383A (zh) * 2018-11-09 2019-03-19 四川长虹电器股份有限公司 一种数据权限的解析方法
CN109753909A (zh) * 2018-12-27 2019-05-14 广东人啊人网络技术开发有限公司 一种基于内容分块和BiLSTM模型的简历解析方法
CN110969056A (zh) * 2018-09-29 2020-04-07 杭州海康威视数字技术股份有限公司 文档图像的文档版面分析方法、装置及存储介质
CN111737969A (zh) * 2020-07-27 2020-10-02 北森云计算有限公司 一种基于深度学习的简历解析方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1648895A (zh) * 2005-01-26 2005-08-03 上海大学 近似文本分析的装置和方法
CN1786965A (zh) * 2005-12-21 2006-06-14 北大方正集团有限公司 一种新闻网页正文信息的提取方法
CN102306204A (zh) * 2011-09-28 2012-01-04 武汉大学 基于文本结构权重的主题区域识别方法
CN102855543A (zh) * 2012-08-03 2013-01-02 深圳市一览网络有限公司 简历的投递方法及系统
US20130166503A1 (en) * 2011-12-27 2013-06-27 Electronics And Telecommunications Research Institute File cloud service apparatus and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1648895A (zh) * 2005-01-26 2005-08-03 上海大学 近似文本分析的装置和方法
CN1786965A (zh) * 2005-12-21 2006-06-14 北大方正集团有限公司 一种新闻网页正文信息的提取方法
CN102306204A (zh) * 2011-09-28 2012-01-04 武汉大学 基于文本结构权重的主题区域识别方法
US20130166503A1 (en) * 2011-12-27 2013-06-27 Electronics And Telecommunications Research Institute File cloud service apparatus and method
CN102855543A (zh) * 2012-08-03 2013-01-02 深圳市一览网络有限公司 简历的投递方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TAKASHI HIRANO ET AL.: "Text and Layout Information Extraction from Document Files of Various Formats Based on the Analysis of Page Description Language", 《 NINTH INTERNATIONAL CONFERENCE ON DOCUMENT ANALYSIS AND RECOGNITION》 *
傅向: "内容过滤技术在反垃圾邮件系统中的应用", 《网络与通信》 *
陈川波: "基于半结构化文本信息抽取的简历识别系统", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547905B (zh) * 2017-05-10 2020-07-24 新华三信息安全技术有限公司 一种解码方法及装置
CN107547905A (zh) * 2017-05-10 2018-01-05 新华三信息安全技术有限公司 一种解码方法及装置
CN107563725A (zh) * 2017-08-25 2018-01-09 浙江网新恒天软件有限公司 一种优化繁琐人才招聘过程的招聘系统
CN107563725B (zh) * 2017-08-25 2021-04-06 浙江网新恒天软件有限公司 一种优化繁琐人才招聘过程的招聘系统
CN107943785A (zh) * 2017-11-06 2018-04-20 广东广业开元科技有限公司 一种基于大数据的pdf文档处理方法及装置
CN108073678A (zh) * 2017-11-06 2018-05-25 广东广业开元科技有限公司 应用于大数据分析中的文档解析处理方法、系统及装置
CN108073678B (zh) * 2017-11-06 2020-08-28 广东广业开元科技有限公司 应用于大数据分析中的文档解析处理方法、系统及装置
CN108933779A (zh) * 2018-05-23 2018-12-04 和芯星通科技(北京)有限公司 输入混合数据流识别方法和装置、计算机可读存储介质
CN108933779B (zh) * 2018-05-23 2021-12-07 和芯星通科技(北京)有限公司 输入混合数据流识别方法和装置、计算机可读存储介质
CN110969056A (zh) * 2018-09-29 2020-04-07 杭州海康威视数字技术股份有限公司 文档图像的文档版面分析方法、装置及存储介质
CN109271479A (zh) * 2018-09-29 2019-01-25 广东润弘科技有限公司 一种简历结构化处理方法
CN110969056B (zh) * 2018-09-29 2023-08-08 杭州海康威视数字技术股份有限公司 文档图像的文档版面分析方法、装置及存储介质
CN109492383A (zh) * 2018-11-09 2019-03-19 四川长虹电器股份有限公司 一种数据权限的解析方法
CN109753909A (zh) * 2018-12-27 2019-05-14 广东人啊人网络技术开发有限公司 一种基于内容分块和BiLSTM模型的简历解析方法
CN109753909B (zh) * 2018-12-27 2021-08-10 广东人啊人网络技术开发有限公司 一种基于内容分块和BiLSTM模型的简历解析方法
CN111737969A (zh) * 2020-07-27 2020-10-02 北森云计算有限公司 一种基于深度学习的简历解析方法和系统
CN111737969B (zh) * 2020-07-27 2020-12-08 北森云计算有限公司 一种基于深度学习的简历解析方法和系统

Also Published As

Publication number Publication date
CN106445910B (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
CN106445910A (zh) 一种文档解析方法与装置
CN107766371B (zh) 一种文本信息分类方法及其装置
CN105095160B (zh) 一种文档转换阅读方法与系统
CN101398812B (zh) 生成带业务逻辑的电子表单的装置和方法
CN102122280B (zh) 一种智能提取内容对象的方法及系统
CN109740159B (zh) 用于命名实体识别的处理方法及装置
CN102937949B (zh) 一种在富文本编辑器内实现英文拼写检查的方法及系统
CN103902918B (zh) 一种从Word文档中快速提取文字格式的方法和装置
CN103186560B (zh) 一种数据排序方法以及相关装置
CN108280056A (zh) 一种Excel文件解析方法
CN101558405A (zh) 将主机系统数据库转换为开放系统数据库的转换装置和方法
CN103778200A (zh) 一种报文信息源抽取方法及其系统
CN110427604B (zh) 表格整合方法和装置
CN103226599A (zh) 一种精确提取网页内容的方法及系统
CN102509001A (zh) 一种自动去除时序数据野值点的方法
CN102955775A (zh) 基于上下文语义的外国人名自动识别控制方法
CN110222346A (zh) 一种从交互数据中提取有效时间的方法
CN114626351A (zh) 结合rpa和ai的表单填报方法、装置、电子设备及存储介质
CN106227575A (zh) 一种生成与解析文本文件的方法
CN114330284A (zh) 一种基于规则模型的自动化保险条款解析方法
CN113608903A (zh) 一种基于xml语言的故障管理方法
CN102841919A (zh) 一种会话文本中表情解析的方法和系统
CN102629244B (zh) 多语言工卡生成系统及方法
CN105938469B (zh) 编码存储方法、文本存储数据结构以及文本压缩存储和统计输出方法
CN103870606A (zh) 一种网页信息提取系统及提取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Document Parsing Method and Device

Effective date of registration: 20221221

Granted publication date: 20190412

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: SHENZHEN ELANW NETWORK Co.,Ltd.

Registration number: Y2022980028400

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20190412

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: SHENZHEN ELANW NETWORK Co.,Ltd.

Registration number: Y2022980028400