CN116502625B - 一种简历解析方法和系统 - Google Patents
一种简历解析方法和系统 Download PDFInfo
- Publication number
- CN116502625B CN116502625B CN202310774452.4A CN202310774452A CN116502625B CN 116502625 B CN116502625 B CN 116502625B CN 202310774452 A CN202310774452 A CN 202310774452A CN 116502625 B CN116502625 B CN 116502625B
- Authority
- CN
- China
- Prior art keywords
- text
- feature vector
- text line
- line
- resume
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 56
- 239000013598 vector Substances 0.000 claims description 189
- 230000004927 fusion Effects 0.000 claims description 30
- 238000013145 classification model Methods 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 13
- 238000007499 fusion processing Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 description 30
- 238000012015 optical character recognition Methods 0.000 description 29
- 238000000605 extraction Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 21
- 230000000694 effects Effects 0.000 description 13
- 230000011218 segmentation Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000579895 Chlorostilbon Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000010976 emerald Substances 0.000 description 1
- 229910052876 emerald Inorganic materials 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Character Input (AREA)
- Character Discrimination (AREA)
- Image Analysis (AREA)
Abstract
本说明书实施例公开了一种简历解析方法和系统,所述方法包括:获取简历对应的PDF文档和图片;基于所述图片,确定所述简历中一个或多个文本行的文本行位置;基于所述PDF文档,确定所述简历中的一个或多个第一字符以及所述一个或多个第一字符的字符位置;基于所述一个或多个文本行的文本行位置和所述一个或多个第一字符的字符位置,对所述一个或多个文本行和所述一个或多个第一字符进行匹配,以得到匹配结果;以及基于所述匹配结果,生成所述简历对应的解析文本。
Description
技术领域
本说明书涉及自然语言处理领域,特别涉及一种简历解析方法和系统。
背景技术
随着信息技术的发展,越来越多的简历呈现为电子文档的形式。从简历文档中提取求职者的结构化信息,是企业构建人才库、实现人才筛选和人岗匹配的基础。
目前,希望提供一种高准确率的简历解析方法。
发明内容
本说明书实施例之一提供一种简历解析方法,包括:获取简历对应的PDF文档和图片;基于所述图片,确定所述简历中一个或多个文本行的文本行位置;基于所述PDF文档,确定所述简历中的一个或多个第一字符以及所述一个或多个第一字符的字符位置;基于所述一个或多个文本行的文本行位置和所述一个或多个第一字符的字符位置,对所述一个或多个文本行和所述一个或多个第一字符进行匹配,以得到匹配结果;以及基于所述匹配结果,生成所述简历对应的解析文本。
本说明书实施例之一提供一种简历解析系统,包括:获取模块,用于获取简历对应的PDF文档和图片;定位模块,用于基于所述图片,确定所述简历中一个或多个文本行的文本行位置;第一解析模块,用于基于所述PDF文档,确定所述简历中的一个或多个第一字符以及所述一个或多个第一字符的字符位置;匹配模块,用于基于所述一个或多个文本行的文本行位置和所述一个或多个第一字符的字符位置,对所述一个或多个文本行和所述一个或多个第一字符进行匹配,以得到匹配结果;以及第二解析模块,用于基于所述匹配结果,生成所述简历对应的解析文本。
本说明书实施例之一提供一种简历解析装置,包括处理器和存储设备,所述存储设备存储有简历解析指令,当所述处理器执行所述简历解析指令时,实现如本说明书任一实施例所述的简历解析方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的简历解析系统的示例性模块图;
图2是根据本说明书一些实施例所示的文本解析模块的示例性模块图;
图3是根据本说明书一些实施例所示的简历解析方法的示例性流程图;
图4A展示了示例性的单栏简历;
图4B展示了示例性的双栏简历;
图5是根据本说明书一些实施例所示的文本解析方法的示例性流程图;
图6是根据本说明书一些实施例所示的文本行分类方法的示例性流程图;
图7是根据本说明书另一些实施例所示的文本行分类方法的示例性流程图;
图8是根据本说明书一些实施例所示的字段提取方法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的简历解析系统的示例性模块图。
如图1所示,简历解析系统100可以包括文本解析模块110、文本分块模块120、字段提取模块130和字段后处理模块140。
文本解析模块110可以用于生成简历对应的解析文本,所述解析文本包括所述简历中的一个或多个文本行,其中,每个文本行包括至少一个字符。
在一些实施例中,如图2所示,文本解析模块110可以包括获取模块210、定位模块220、第一解析模块230、匹配模块240和第二解析模块250。
获取模块210可以用于获取简历对应的PDF(Portable Document Format,便携式文件格式)文档和图片。
定位模块220可以用于基于所述图片,确定所述简历中一个或多个文本行的文本行位置。
第一解析模块230可以用于基于所述PDF文档,确定所述简历中的一个或多个第一字符以及所述一个或多个第一字符的字符位置。
匹配模块240可以用于基于所述一个或多个文本行的文本行位置和所述一个或多个第一字符的字符位置,对所述一个或多个文本行和所述一个或多个第一字符进行匹配,以得到匹配结果。
第二解析模块250可以用于基于所述匹配结果,生成所述简历对应的解析文本。
在一些实施例中,所述匹配可以包括判断每个所述第一字符是否位于所述一个或多个文本行中,第二解析模块250可以用于:确定所述一个或多个文本行中是否存在未匹配到第一字符的目标文本行;响应于确定所述一个或多个文本行中存在目标文本行,对所述目标文本行进行光学文本解析,以确定所述目标文本行中的一个或多个第二字符,所述解析文本可以包括所述一个或多个第一字符和所述一个或多个第二字符。
在一些实施例中,文本解析模块110还可以包括版式调整模块260,版式调整模块260可以用于调整所述简历的版面格式,例如,文本行的排列顺序。
在一些实施例中,版式调整模块260可以用于:识别所述图片中的目标空白区域,所述目标空白区域的位置和尺寸满足预设条件;基于所述目标空白区域确定第一文本区域和第二文本区域,所述第二文本区域位于所述第一文本区域的右侧;更新所述第二文本区域中的文本行的文本行位置,以使所述第二文本区域移至所述第一文本区域的下方。
文本分块模块120可以用于将所述一个或多个文本行划分为一个或多个文本块,其中,每个文本块包括至少一个文本行。
在一些实施例中,对于所述一个或多个文本行中的每个文本行,文本分块模块120可以用于:确定所述文本行的第一特征向量和至少一个第二特征向量,所述第一特征向量与所述文本行的语义有关,所述至少一个第二特征向量与所述文本行的文本行位置和/或文本行尺寸有关; 对所述第一特征向量和所述至少一个第二特征向量进行融合处理,得到所述文本行的融合特征向量;将所述融合特征向量输入文本行分类模型,确定所述文本行的类别。进而,文本分块模块120可以用于基于所述一个或多个文本行的类别,将所述一个或多个文本行划分为一个或多个文本块。
在一些实施例中,对于所述一个或多个文本行中的每个文本行,文本分块模块120可以用于:对于所述文本行中的每个词语,确定所述词语的第三特征向量和至少一个第四特征向量,所述第三特征向量与所述词语的语义有关(可称作词向量),所述至少一个第四特征向量与所述词语的位置和/或所述文本行的文本行尺寸有关;基于所述词语的第三特征向量和至少一个第四特征向量,得到所述词语的融合特征向量;基于所述文本行中每个词语的融合特征向量,确定所述文本行的融合特征向量;将所述文本行的融合特征向量输入文本行分类模型,得到所述文本行的类别。进而,文本分块模块120可以用于基于所述一个或多个文本行的类别,将所述一个或多个文本行划分为一个或多个文本块。
字段提取模块130可以用于:对于所述一个或多个文本块中的每个文本块,从所述文本块中提取一个或多个字段。
字段提取模块130可以用于:对于所述一个或多个文本块,从所述文本块中提取一个或多个字段。
在一些实施例中,对于所述一个或多个文本块中的每个文本块,字段提取模块130可以用于:确定所述文本块的文本序列,所述文本序列包括所述文本块中每个词语的第三特征向量(如词向量);基于所述文本块中每个词语所在的文本行的文本行位置,生成位置特征序列;基于所述文本块中每个词语所在的文本行的文本行尺寸,生成尺寸特征序列;对所述文本序列、所述位置特征序列和所述尺寸特征序列进行融合处理,得到融合特征序列;将所述融合特征序列输入命名实体识别(Name Entity Recognition,NER)模型,得到所述文本块中的一个或多个字段。
字段后处理模块140可以用于对一个或多个文本块中的字段进行后处理。
关于系统100及其模块的更多细节,可以参考图3及其相关描述。
应当理解,图1所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,第一解析模块230和第二解析模块250可以是不同模块,也可以合并成一个模块。又如,在一些实施例中,系统100中的一个或多个模块可以省略,仅作为示例,系统100可以仅包括文本解析模块110。诸如此类的变形,均在本说明书的保护范围之内。
图3是根据本说明书一些实施例所示的简历解析方法的示例性流程图。流程300可以由一个或多个处理器执行。在一些实施例中,流程300可以由图1所示的系统100执行。如图3所示,流程300可以包括以下步骤。
步骤310,生成简历对应的解析文本,所述解析文本包括一个或多个文本行。其中,每个文本行包括至少一个字符。可以理解,解析文本中的字符为解析后的字符。在一些实施例中,步骤310可以由图1所示的文本解析模块110执行。
在一些实施例中,所述解析文本中的文本行可以是经过位置排序(相当于排版)的。可以理解,在文本解析过程中,文本解析模块110可以获得每个文本行的位置。
在一些实施例中,文本解析模块110可以获取简历对应的PDF文档,并基于所述PDF文档生成所述简历对应的解析文本。这种对PDF文档进行处理以获取文本信息的解析方式可称作PDF解析。PDF解析可以按照一定的规则(如语法)进行。
在一些实施例中,当简历对应的原始文档并非PDF文档时,文本解析模块110可以将所述原始文档转换成PDF文档,以通过PDF解析获得所述简历对应的解析文本。应当理解,本说明书提及的不同格式的文件之间的转换可以通过任何可行的技术实现,例如,一些文档应用会提供不同格式的文件之间的转换功能,包括但不限于PDF文档和图片之间的转换,Word文档(如.doc文件或.docx文件)和PDF文件之间的转换。
在一些实施例中,文本解析模块110可以获取简历对应的图片,并基于所述图片生成所述简历对应的解析文本。这种对图像进行处理以获取文本信息的解析方式可称作OCR(Optical Character Recognition,光学字符识别)解析。
在一些实施例中,当简历对应的原始文档并非图片时,文本解析模块110可以将所述原始文档转换成图片,以通过OCR解析获得所述简历对应的解析文本。
PDF解析和OCR解析都有各自的优势和劣势。
PDF解析的原理较为简单(通常是基于规则的文本解析),对于大量的常规PDF文档,PDF解析的效果很好,例如,文字识别的准确率较高、无效文本(如乱码、空白文本)少、解析文本完整等;但对于少量的加密文档或者局部文本以图像形式(如可缩放矢量图形或图片)呈现的PDF文档,PDF解析的效果较差,例如,局部乱码甚至全局乱码、丢失局部文本等。另外,PDF解析出的文本偶尔也会掺杂乱码,PDF解析容易将完整的文本行拆分成多个部分,导致后续的文本处理效果变差。
OCR解析的原理较为复杂(通常步骤繁多),尽管OCR解析处理特殊文本(如加密文本或以图像形式呈现的局部文本)的表现更好,例如,不容易出现乱码或空白,但是OCR解析处理常规文本的表现不佳,例如,文字识别的准确率较低。
当大部分简历是PDF文档时,可以采用PDF解析为主、OCR解析为辅的文本解析方法。具体地,文本解析模块110可以对简历对应的PDF文档进行PDF解析,并判断PDF解析结果是否满足预设的OCR触发条件,若满足,则将所述PDF文档转换成图片,并对所述图片进行OCR解析,以获得所述简历对应的解析文本。否则,文本解析模块110可以将PDF解析结果确定为所述简历对应的解析文本。这种做法下,一旦OCR触发条件设置得不合理,就会导致OCR解析在必要的时候未触发。例如,所述OCR触发条件被设置为PDF解析结果中有效字符的数量未达到设定的数量阈值,PDF解析结果在满足所述OCR触发条件的情况下仍有可能包含无效文本(如局部乱码)或丢失局部文本,此时不会触发OCR解析,导致最终获得的解析文本包含无效文本(如局部乱码)或丢失局部文本。
有鉴于此,本说明书实施例提供一种融合PDF解析和OCR解析的文本解析方法。其中,OCR解析无需条件判断就能触发,可以保证文本解析的整体表现,例如,不会有大面积的文本丢失,能解析PDF中以图像形式呈现的局部文本,能得到相对完整的文本行等。关于所述融合PDF解析和OCR解析的文本解析方法的更多细节,可以参考图5及其相关描述。
现实中,如图4A所示,一些简历(以下称作单栏简历)的文本行布局为单一的从上到下。一些简历解析方法只适用于处理这种单一的版式设计,无法处理其它版式设计。例如,如图4B所示,还有一些简历(以下称作双栏简历)的文本行布局为先从上到下再从左到右(如基础信息在左,工作经历在右),如果通过直接处理会出现解析文本中左右栏文本穿插在一起(如基础信息和工作经历穿插在一起)的问题。在一些实施例中,针对双栏简历,参考图4B,版式调整模块260可以识别简历对应的图片中的目标空白区域(如空白区域415),所述目标空白区域的位置和尺寸满足预设条件。仅作为示例,可以约束所述目标空白区域(如空白区域415)的中心位置到所述简历(单页)的中心位置的距离不超过设定距离阈值,以及约束所述目标空白区域(如空白区域415)的尺寸(如横向长度和纵向长度)在设定尺寸范围内。然后,版式调整模块260可以基于所述目标空白区域确定第一文本区域和第二文本区域。为方便描述,假设所述第二文本区域位于所述第一文本区域的右侧,即,所述第一文本区域为左栏(如图4B中的文本区域410),所述第二文本区域为右栏(如图4B中的文本区域420)。进而,版式调整模块260可以更新所述第二文本区域(如文本区域420)中的文本行的文本行位置,以使所述第二文本区域移至所述第一文本区域的下方(即右栏移至左栏下方,合并为单栏)。文本行位置的更新相当于将双栏简历调整为单栏简历,通过版式调整,可以使原本适用于单栏简历的简历解析方法也能正确还原双栏简历的阅读顺序。
在一些实施例中,版式调整模块260可以获取所述一个或多个文本行的横向位置(如横坐标范围),根据所述一个或多个文本行的横向位置统计在横轴的每个像素位置(每个像素位置可以是横向的坐标范围)出现的文本行的数量。可以理解,当某个文本行的横向位置(如横坐标范围)的至少一部分落入横轴的一个像素位置(如横坐标范围)时,认为该文本行出现在该像素位置。进而,版式调整模块260可以根据每个像素位置对应的统计结果,识别空白区域,并根据相关阈值(如距离阈值和尺寸阈值)筛选出所述目标空白区域。
在一些实施例中,划分出左右栏后,版式调整模块260可以对左栏和右栏中的文本行分别进行单栏的位置排序。进而,版式调整模块260可以整合左栏和右栏的文本行排序结果,得到经过版式调整(调整为“左栏在上,右栏在下”)的解析文本。具体地,单栏的文本行排序可以包括:获取每个文本行的横向位置(如文本行中心的横坐标)和纵向位置(如文本行中心的纵坐标);根据各个文本行的纵向位置划分逻辑行,例如,当多个文本行的纵向位置的差值不超过设定阈值时,认为这些文本行属于同一逻辑行;每个逻辑行内,根据文本行的横向位置对文本行进行排序,例如,可以按照文本行中心的横坐标大小对每个逻辑行内的文本行进行排序,其中,文本行中心的横坐标较小的文本行可以排在左边,文本行中心的横坐标较大的文本行可以排在右边。
步骤320,将所述一个或多个文本行划分为一个或多个文本块。其中,每个文本块包括至少一个文本行。在一些实施例中,步骤320可以由图1所示的文本分块模块120执行。
在一些实施例中,文本分块模块120可以根据预设的文本分块规则在所述一个或多个文本行中定位关键词,并基于定位到的关键词进行文本分块。仅作为示例,可以将简历中可能出现的标题作为关键词加入预设的关键词集合,当从所述一个或多个文本行中定位到所述关键词集合中的关键词后,文本分块模块120可以将相邻两个关键词之间的文本行确定为一个文本块,例如,将相邻的关键词“基本信息”和关键词“教育经历”之间的文本行(包括关键词“基本信息”所在的文本行,不包括关键词“教育经历”所在的文本行)划入一个文本块。可以理解,该文本块的标题为“基本信息”。根据规则定位关键词的文本分块方法通用性较差,对于标题特征不明显的简历,会导致文本分块失败;当文本块中没有关键词或有多个关键词时,无法实现正确的文本分块。
在一些实施例中,文本分块模块120可以利用机器学习模型进行文本分块,基于机器学习的文本分块方法通用性较好。该模型可以用于对文本行进行分类,因而可以称作文本行分类模型。文本分块模块120可以基于所述一个或多个文本行的类别,将所述一个或多个文本行划分为一个或多个文本块。仅作为示例,每个文本块可以对应一个类别(如“工作经历”)或一组类别(如“工作经历”的标题和正文),可以理解,属于同一(组)类别的文本行属于该(组)类别对应的文本块。例如,文本块1对应“工作经历”,那么文本分块模块120可以将属于“工作经历”的文本行划入文本块1。又如,文本块2对应“工作经历”的标题和正文,那么文本分块模块120可以将属于“工作经历”的标题的文本行划入文本块2,以及将属于“工作经历”的正文的文本行划入文本块2。
在一些实施例中,所述文本行分类模型可以包括深度学习模型。例如,所述文本行分类模型可以包括BiLSTM(Bi-directional Long Short-Term Memory,双向长短期记忆)模型和CRF(Conditional Random Field,条件随机场)模型。又如,所述文本行分类模型可以包括Transformer模型。
在一些实施例中,文本分块模块120可以确定每个文本行的第一特征向量,并将所述第一特征向量输入文本行分类模型,得到该文本行的类别。所述第一特征向量与文本行的语义有关。
在一些实施例中,每个文本行的第一特征向量可以通过对该文本行中的所有词语的词向量(例如,one-hot向量或Word2vec模型的输出向量)取最大值(或最小值)或取平均得到。在一些实施例中,可以通过RNN(Recurrent Neural Network,循环神经网络)、BERT(Bidirectional Encoder Representations from Transformers,基于Transformer模型的双向编码表征模型)等机器学习模型(以下称作文本行语义模型)获得每个文本行的第一特征向量,例如,可以将文本行中所有词语的词向量输入文本行语义模型,得到该文本行的第一特征向量。可以理解,文本行中的词语可以通过分词处理得到。
在另一些实施例中,除了对文本信息进行建模(例如,构建第一特征向量),还可以对版式信息进行建模。通过融合文本信息和版式信息,可以提升文本分片和字段抽取的效果。关于对版式信息进行建模的更多细节,可以参考图6、图7及其相关描述。
步骤330,对于所述一个或多个文本块中的每个文本块,从所述文本块中提取一个或多个字段。其中,每个字段包括至少一个字符。在一些实施例中,步骤330可以由图1所示的字段提取模块130执行。
在一些实施例中,字段提取模块130可以根据预设的规则(如正则表达式或模板),从每个文本块中提取一个或多个字段。利用正则规则和模板来抽取字段的方法,只能适应时间、邮箱等特征明显的字段,对于公司名、项目名等特征不明显的字段效果很差,方法的通用性较差。
在一些实施例中,字段提取模块130可以利用机器学习模型从每个文本块中提取一个或多个字段,基于机器学习的字段提取方法通用性较好。关于基于机器学习的字段提取方法的更多细节,可以参考图8及其相关描述。
步骤340,对提取到的字段进行后处理。在一些实施例中,步骤340可以由图1所示的字段后处理模块140执行。
在一些实施例中,所述后处理可以包括对提取到的字段进行校正,例如,常见错误的更正、格式校正等。其中,常见错误可以包括易错字、易错邮箱后缀(OCR解析将qq.com错误识别为qg.com)等,格式校正可以包括日期格式化(将各种形式的日期统一为预设格式的日期)、名称规范化表示(例如,根据预设数据集对学校名称、专业名称、地址等进行规范化表示)等。
图5是根据本说明书一些实施例所示的文本解析方法的示例性流程图。流程500可以由一个或多个处理器执行。在一些实施例中,流程500可以由图2所示的文本解析模块110执行。如图5所示,流程500可以包括以下步骤。
步骤510,获取简历对应的PDF文档和图片。在一些实施例中,步骤510可以由图2所示的获取模块210执行。
步骤520,基于所述图片,确定所述简历中一个或多个文本行的文本行位置。在一些实施例中,步骤520可以由图2所示的定位模块220执行。
完整的OCR解析流程可以包括文本行检测(定位)和文本行内容(字符)识别,步骤520仅涉及OCR解析中的文本行检测。文本行检测可以通过任何可行的技术实现。仅作为示例,文本行检测可以通过基于阈值分割的DBNet模型实现。在一些实施例中,后续步骤550可以通过OCR解析流程中的文本行内容识别实现。
在一些实施例中,所述文本行位置可以包括包围该文本行的文本框的至少2个顶点的坐标,例如,文本框(矩形)对角线上的一对顶点的坐标。在一些实施例中,所述文本行位置可以包括文本行的横向位置和纵向位置,例如,文本行(框)中心的横坐标和纵坐标,又如,文本框对角线上的一对顶点的横坐标和纵坐标。可以理解,文本行中心的横坐标和纵坐标可以基于文本框的(至少2个)顶点的坐标确定。为了方便描述,本文将能够表示文本行位置的点(如这里提到的文本行中心和文本框对角线上的一对顶点)统称为文本行的特征点。
步骤530,基于所述PDF文档,确定所述简历中的一个或多个第一字符以及所述一个或多个第一字符的字符位置。在一些实施例中,步骤530可以由图2所示的第一解析模块230执行。
完整的PDF解析可以包括字符识别和文本行划分。其中,字符识别是文本行划分的基础,步骤530仅涉及PDF解析中的字符识别。
在一些实施例中,所述字符位置可以包括包围该字符的字符框的4个顶点的坐标。在一些实施例中,所述字符位置可以包括字符的横向位置和纵向位置,例如,字符框中心的横坐标和纵坐标,可以理解,字符框中心的横坐标和纵坐标可以基于字符框的(至少2个)顶点的坐标确定。
在一些实施例中,第一解析模块230还可以对所述一个或多个字符进行乱码校正。
在一些实施例中,可以预先构建Unicode(统一码)映射表,所述Unicode映射表可以用于将映射为偏旁部首的乱码字符重新映射为常规汉字。例如,Unicode字符中编码为\u2F25的“女”字是偏旁部首,编码为\u5973的“女”字是常规汉字。如果要解析的字符串中出现偏旁部首编码(如\u2F25)的字符,通常无法正常显示,可能显示为“中国Θ排”,通过重新映射可将其校正为“中国女排”。
在一些实施例中,可以通过正则替换将映射到偏旁部首的乱码字符替换为常规汉字。例如,通过正则替换可将解析成“中国\u5973排”的字符串校正回“中国女排”。
在一些实施例中,第一解析模块230可以确定文本字符串中的每个字符的类别(包括常规类别和非常规类别),并将所述字符串中属于非常规类别的字符确定为乱码。在一些实施例中,对于无法校正的乱码,第一解析模块230可以对其进行标记。
步骤540,基于所述一个或多个文本行的文本行位置和所述一个或多个第一字符的字符位置,对所述一个或多个文本行和所述一个或多个第一字符进行匹配,以得到匹配结果。在一些实施例中,步骤540可以由图2所示的匹配模块240执行。
所述匹配可以包括判断每个第一字符是否位于所述一个或多个文本行中,例如,判断每个第一字符的字符框中心是否落入任一文本行(框)内。
步骤550,基于所述匹配结果,生成所述简历对应的解析文本。在一些实施例中,步骤550可以由图2所示的第二解析模块250执行。
可以理解,第二解析模块250可以基于所述一个或多个文本行匹配到的第一字符生成所述解析文本,例如,将所述一个或多个文本行匹配到的所有第一字符组合成所述解析文本。其中,解析文本中的第一字符按照其字符位置和匹配的文本行文本行位置进行位置排序。
流程500中:文本行识别通过OCR解析实现,可以得到相对完整的文本行;字符(文字)识别通过PDF解析实现,可以保证文字识别维持较高的准确率。值得一提的是,在前述涉及条件判断的文本解析方法中,PDF解析和OCR解析互相独立,对于同一份简历,只能享有其中一种解析方式的优势。相比之下,流程500通过融合PDF解析和OCR解析,可以结合两种解析方式的优势。
在一些实施例中,第二解析模块250可以进一步调用OCR解析中的字符识别,以避免解析文本出现大面积乱码或局部文本丢失。具体地,第二解析模块250可以确定所述一个或多个文本行中是否存在未匹配到第一字符的目标文本行。响应于确定所述一个或多个文本行中存在目标文本行,第二解析模块250可以对所述目标文本行进行光学文本解析(OCR解析),以确定所述目标文本行中的一个或多个第二字符。所述解析文本包括所述一个或多个第一字符和所述一个或多个第二字符。其中,解析文本中的第二字符按照其字符位置和所在的目标文本行的文本行位置进行位置排序。
图6是根据本说明书一些实施例所示的文本行分类方法的示例性流程图。流程600可以由一个或多个处理器执行。在一些实施例中,流程600可以由图1所示的文本分块模块120执行。如图6所示,对于所述一个或多个文本行中的每个文本行,流程600可以包括以下步骤。
步骤610,确定文本行的第一特征向量和至少一个第二特征向量。
参考前述实施例,所述第一特征向量与所述文本行的语义有关。所述至少一个第二特征向量与所述文本行的文本行位置和/或文本行尺寸有关,可以为模型提供丰富的简历版式信息,有助于提升文本分块和字段提取的效果。通过引入文本行位置特征,模型能很好的学习到文本行的相对位置约束,极大的改善了文本行类别预测错误的问题;且文本分块的效果与输入模型的文本行顺序无关,处理双栏简历的效果很好(例如,可以避免左右栏文本穿插)。通过引入文本行尺寸特征,可以提高文本行分类的精准度,例如,以标题为内容的文本行或基础信息中的文本行(如姓名、籍贯、性别等)通常比较短。
在一些实施例中,所述至少一个第二特征向量可以包括以下特征向量中的至少一个:横向位置特征向量,所述横向位置向量与所述文本行的横向位置(如文本行的特征点的横坐标)有关;纵向位置特征向量,所述纵向位置向量与所述文本行的纵向位置(如文本行的特征点的纵坐标)有关;横向尺寸特征向量,所述横向尺寸特征向量与所述文本行的横向长度有关;纵向尺寸特征向量,所述纵向尺寸特征向量与所述文本行的纵向长度有关。可以理解,对于任一文本行,该文本行的横向长度可以基于该文本行的横向位置确定,例如,该文本行的横向长度可以等于该文本行的左顶点和右顶点的间距。类似地,对于任一文本行,该文本行的纵向长度可以基于该文本行的纵向位置确定,例如,该文本行的纵向长度可以等于该文本行的上顶点和下顶点的间距。
在一些实施例中,文本分块模块120可以对表示版式信息(例如,文本行位置、文本行尺寸)的一维数值(例如,文本行中心的横坐标/纵坐标、文本行的横向长度/纵向长度)进行归一化,再将归一化后的一维数值映射为d维特征向量。其中,d为大于或等于2的整数,例如,d可以等于所述第一特征向量的维数。归一化可指将一维数值转换至预设数值范围内。在一些实施例中,可以预先构建映射表,以便通过查表确定一维数值对应的d维特征向量。在一些实施例中,可以通过机器学习模型(如深度学习模型)实现一维数值到d维特征向量的映射。
在一些实施例中,对于由纵向排列的多页组成的简历,纵向位置(如纵坐标)为多页拼接后的全局位置(如全局坐标),纵向位置的范围(如纵坐标范围)远大于目标范围(如0~1000)。如果将不同子范围(如不同页)的纵向位置都压缩(归一化)到目标范围,例如,将0~2000内的纵坐标和2000-20000内的纵坐标都压缩到0~1000内,无法有效表示文本行的相对位置,导致文本分块效果较差,例如,多页的工作经历无法被分开,靠后的教育经历被漏掉,单行的特征信息容易被忽略,等等。文本分块模块120可以对文本行位置中的横向位置(如文本行的特征点的横坐标)进行(不分段的)归一化,对文本行位置中的纵向位置(如文本行的特征点的纵坐标)进行分段归一化。进而,文本分块模块120可以将归一化后的文本行位置映射为d维特征向量,其中,d为所述第一特征向量的维数。分段归一化可以有效表示文本行的相对位置,从而改善文本分块的效果。
具体地,文本分块模块120可以将所述横向位置(如文本行的特征点的横坐标,记为x)转换至预设数值范围(如0~1000)内。针对所述纵向位置(如文本行的特征点的纵坐标,记为y),所述预设数值范围可以被划分为对应所述多页的多个子范围。例如,首页可以对应第一子范围(如0~250),中间页可以对应第二子范围(如250-750),末页可以对应第三子范围(如750~1000)。文本分块模块120可以确定所述文本行在所述多页中的页码,以及基于所述页码,将所述纵向位置转换至所述页码对应的子范围内。例如,文本分块模块120可以将首页的文本行的纵向位置(如y)转换至第一子范围0~250内,将中间页的文本行的纵向位置(如y)转换至第二子范围250-750内,以及将末页的文本行的纵向位置(如y)转换至第三子范围750-1000内。进而,文本分块模块120可以:将转换后的横向位置(记为x’)和映射为d维特征向量,得到所述横向位置特征向量;将转换后的纵向位置(记为y’)映射为d维特征向量,得到所述纵向位置特征向量。
另外,文本分块模块120可以将所述横向长度(记为W)和所述纵向长度(记为H)分别转换至所述预设数值范围(如0~1000)内。进而,文本分块模块120可以:将转换后的横向长度(记为W’)映射为d维特征向量,得到所述横向尺寸特征向量;将转换后的纵向长度(记为H’)映射为d维特征向量,得到所述纵向尺寸特征向量。
步骤620,对所述第一特征向量和所述至少一个第二特征向量进行融合处理,得到所述文本行的融合特征向量。
在一些实施例中,所述融合处理可以包括将所述第一特征向量和所述至少一个第二特征向量按位相加,例如,将所述第一特征向量、所述横向位置特征向量、所述纵向位置特征向量、所述横向尺寸特征向量和所述纵向尺寸特征向量按位相加。其中,所述第一特征向量、所述至少一个第二特征向量以及所述融合特征向量的维数均相等。参考前述内容,这些特征向量可以均为d维向量。
在一些实施例中,所述融合处理可以包括:先将所述第一特征向量和所述至少一个第二特征向量拼接起来,再将拼接得到的特征向量映射为预设维数的融合特征向量。例如,将均为d维的所述第一特征向量、所述横向位置特征向量、所述纵向位置特征向量、所述横向尺寸特征向量和所述纵向尺寸特征向量拼接起来,再通过MLP(MultilayerPerceptron,多层感知机)对拼接得到的特征向量进行线性映射,得到d维的融合特征向量。
步骤630,将所述融合特征向量输入文本行分类模型,以确定所述文本行的类别。
关于文本行分类模型的更多细节,可以在本文的其他地方找到。
图7是根据本说明书另一些实施例所示的文本行分类方法的示例性流程图。流程700可以由一个或多个处理器执行。在一些实施例中,流程700可以由图1所示的文本分块模块120执行。如图7所示,对于所述一个或多个文本行中的每个文本行,流程700可以包括以下步骤。
步骤710,对于所述文本行中的每个词语,确定所述词语的第三特征向量和至少一个第四特征向量。
所述第三特征向量与所述词语的语义有关,例如,所述第三特征向量可以是词向量。所述第四特征向量与所述词语的位置和/或所述文本行的尺寸有关。在一些实施例中,所述词语的位置可以是所述词语的近似位置,例如,可以以所述文本行的文本行位置(如文本行的特征点的坐标)为所述词语的近似位置(如近似坐标)。即,所述文本行中的所有词语共享所述文本行的文本行位置。
在一些实施例中,所述至少一个第四特征向量包括以下特征向量中的至少一个:页码特征向量,所述页码特征向量与所述文本行所在页的页码有关,例如,所述页码特征向量可以是one-hot向量;横向位置特征向量,所述横向位置特征向量与所述文本行在其所在页的横向位置(如文本行的特征点的横坐标)有关;纵向位置特征向量,所述纵向位置特征向量与所述文本行在其所在页的纵向位置(如文本行的特征点的纵坐标)有关,区别于前述实施例中的全局位置,本实施例中的文本行位置不会超出文本行所在页;横向尺寸特征向量,所述横向尺寸特征向量与所述文本行的横向长度有关;纵向尺寸特征向量,所述纵向尺寸特征向量与所述文本行的纵向长度有关。
关于本文行位置/文本行尺寸的归一化和映射,可以参考前述实施例(步骤610)。需要注意的是,本实施例中的纵向位置采用不分段的归一化方式。
步骤720,对于所述文本行中的每个词语,对所述第三特征向量和所述至少一个第四特征向量进行融合处理,得到所述词语的融合特征向量。
关于所述融合处理的具体实现方式,可以参考前述实施例(步骤620)。
步骤730,基于所述文本行中每个词语的融合特征向量,确定所述文本行的融合特征向量。
在一些实施例中,文本分块模块120可以将所述文本行中所有词语的融合特征向量拼接起来,得到所述文本行的融合特征向量。拼接得到的所述文本行的融合特征向量可称作token序列,其中,该token序列包括多个token,每个token对应一个词语,每个token为对应词语的融合特征向量(如d维特征向量)。
步骤740,将所述文本行的融合特征向量输入文本行分类模型,得到所述文本行的类别。
在一些实施例中,所述文本行分类模型可以包括第一Transformer模型。由于token序列通常较长(例如,token序列可以包括十几个词语的融合特征向量),直接将token序列输入Transformer模型,计算开销很大。原因在于,Transformer模型的核心机制包括Attention机制,全局Attention机制下,Transformer模型会计算token序列中两两token之间的相关性,得到N×N的矩阵(称作Attention矩阵),其中,N为token序列中的token数量(也称作token序列的长度)。根据先验知识可知,越靠近的token之间的相关性越强。因此,所述第一Transformer模型可以采用局部Attention机制,具体地,可以设置大小为k的窗口,通过滑动该窗口,可以只取每个token前后相距小于k的token(k表示一个token到另一个token相差的token数量)计算相关性,如此,可以稀疏化所述第一Transformer模型处理的Attention矩阵,从而降低计算开销,提高文本分块效率。
关于文本行分类模型的更多细节,可以在本文的其他地方找到。
图8是根据本说明书另一些实施例所示的字段提取方法的示例性流程图。流程800可以由一个或多个处理器执行。在一些实施例中,流程800可以由图1所示的字段提取模块130执行。如图8所示,对于所述一个或多个文本块中的每个文本块,流程800可以包括以下步骤。
步骤810,确定所述文本块的文本序列。
所述文本序列可以包括所述文本块中每个词语的第三特征向量(如词向量),例如,字段提取模块130可以将所述文本块中所有词语的词向量拼接起来,得到所述文本序列。
步骤820,基于所述文本块中每个词语所在的文本行的文本行位置,生成位置特征序列。
参考前述内容,每个词语所在的文本行的文本行位置可以作为该词语的近似位置,例如,可以以该文本行的文本行位置(如文本行的特征点的坐标)为该词语的近似位置(如近似坐标)。所述位置特征序列可以包括所述文本块中每个词语所在的文本行的横向位置特征向量和纵向位置特征向量。关于横向位置特征向量和纵向位置特征向量的更多细节,可以参考前述实施例(如步骤610)。
步骤830,基于所述文本块中每个词语所在的文本行的文本行尺寸,生成尺寸特征序列。
所述尺寸特征序列可以包括所述文本块中每个词语所在的文本行的横向尺寸特征向量和纵向尺寸特征向量。关于横向尺寸特征向量和纵向尺寸特征向量的更多细节,可以参考前述实施例(如步骤610)。
步骤840,对所述文本序列、所述位置特征序列和所述尺寸特征序列进行融合处理,得到融合特征序列。
所述文本序列、所述位置特征序列、所述尺寸特征序列均可称作token序列,其中,每个token对应一个词语,每个token为对应词语的表示向量,例如,词向量、横向位置特征向量、纵向位置特征向量、横向尺寸特征向量、纵向尺寸特征向量、融合特征向量。
关于所述融合处理的具体实现方式,可以参考前述实施例(步骤620)。例如,字段提取模块130可以将所述文本序列、所述位置特征序列和所述尺寸特征序列相加或进行拼接,得到所述融合特征序列。
步骤850,将所述融合特征序列输入命名实体识别模型,得到所述文本块中的一个或多个字段。
可以理解,要提取每个字段可以是一个命名实体,字段提取即实体抽取(识别)。
在一些实施例中,所述命名实体识别模型可以包括CRF模型。
在一些实施例中,所述命名实体识别模型可以包括GlobalPointer网络(简称GP网络)。一些NER模型通过预测输入序列的首尾标签来区分不同的实体,对嵌套实体的识别效果不好,而GP网络对嵌套实体的识别效果好,对非嵌套实体的识别效果也能媲美CRF模型。另外,实践中GP网络更容易训练,推理速度较快。
嵌套实体是指包含于长名称实体中的短名称实体,例如,输入序列“上海市公安局奉贤分局”中,地点实体“上海市”包含于组织实体“上海市公安局”,地点实体“上海市”即嵌套实体。GP网络可以将N个token(例如,N可以是所述文本块中词语的数量)两两组合,得到N*(N+1)/2种候选情况,然后针对每种候选情况进行分类,能够有效减少漏抽和多抽字符的问题。
在一些实施例中,字段提取模块130可以先通过第二Transformer模型处理所述融合特征序列,再将处理后的融合特征序列输入所述命名实体识别模型,例如,CRF模型或所述GP网络。所述第二Transformer模型可以对输入的多个token进行相关性计算,强化token序列的特征表示,提升字段提取的效果。
仅作为示例,对于以下一份版式比较特殊的简历,一些NER模型抽取(提取)邮箱地址时会将出现在下一行的后缀.com漏掉。引入版式信息(如文本行位置)后,第二Transformer模型可以知道.com 和12345678@sina有较强的相关性,而GP也能实现跨越(跨文本行)的实体抽取。如此,可以有效抽到12345678@sina.com。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。例如,在一些实施例中,流程300可以仅包括步骤310。又如,在一些实施例中,步骤340可以省略。又如,在一些实施例中,流程300中的简历可以替换成其它结构化文本,如公司宣传册、产品说明书、计划书、广告文案等。然而,这些修正和改变仍在本说明书的范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)提供了一种融合PDF解析和OCR解析的文本解析方法,其中,OCR解析无需条件判断就能触发,可以保证文本解析的整体表现,例如,不会有大面积的文本丢失,能解析PDF中以图像形式呈现的局部文本,能得到相对完整的文本行等;(2)通过版式调整,可以解决双栏简历的问题;(3)通过融合文本信息和版式信息,可以提升文本分片和字段抽取的效果;(4)通过采用局部机制的第一Transformer模型,可以降低计算开销,提高文本分块效率;(5)通过第二Transformer模型+GP网络的架构,可以提升字段提取效果。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (11)
1.一种简历解析方法,其特征在于,包括:
获取简历对应的PDF文档和图片;
基于所述图片,确定所述简历中一个或多个文本行的文本行位置;
基于所述PDF文档,确定所述简历中的一个或多个第一字符以及所述一个或多个第一字符的字符位置;
基于所述一个或多个文本行的文本行位置和所述一个或多个第一字符的字符位置,对所述一个或多个文本行和所述一个或多个第一字符进行匹配,以得到匹配结果;所述匹配包括判断每个所述第一字符是否位于所述一个或多个文本行中;
确定所述一个或多个文本行中是否存在未匹配到第一字符的目标文本行;
响应于确定所述一个或多个文本行中存在所述目标文本行,对所述目标文本行进行光学文本解析,以确定所述目标文本行中的一个或多个第二字符;以及
生成所述简历对应的解析文本,所述解析文本包括所述一个或多个第一字符和所述一个或多个第二字符。
2.如权利要求1所述的方法,其特征在于,还包括,
对于所述一个或多个文本行中的每个文本行:
确定所述文本行的第一特征向量和至少一个第二特征向量,所述第一特征向量与所述文本行的语义有关,所述至少一个第二特征向量与所述文本行的文本行位置和/或文本行尺寸有关;
对所述第一特征向量和所述至少一个第二特征向量进行融合处理,得到所述文本行的融合特征向量;
将所述融合特征向量输入文本行分类模型,以确定所述文本行的类别;以及
基于所述一个或多个文本行的类别,将所述一个或多个文本行划分为一个或多个文本块,其中,每个文本块包括至少一个文本行。
3.如权利要求2所述的方法,其特征在于,所述至少一个第二特征向量包括以下特征向量中的至少一个:
横向位置特征向量,所述横向位置向量与所述文本行的横向位置有关;
纵向位置特征向量,所述纵向位置向量与所述文本行的纵向位置有关;
横向尺寸特征向量,所述横向尺寸特征向量与所述文本行的横向长度有关;
纵向尺寸特征向量,所述纵向尺寸特征向量与所述文本行的纵向长度有关。
4.如权利要求3所述的方法,其特征在于,所述简历由纵向排列的多页组成,所述第一特征向量为d维向量;
所述横向位置特征向量通过以下方式确定:将所述文本行的横向位置转换至预设数值范围内;
所述预设数值范围包括对应所述多页的多个子范围;
所述纵向位置特征向量通过以下方式确定:确定所述文本行在所述多页中的页码;基于所述页码,将所述文本行的纵向位置转换至所述页码对应的子范围内;将转换后的纵向位置映射为d维特征向量,得到所述纵向位置特征向量;
所述横向尺寸特征向量和所述纵向尺寸特征向量通过以下方式确定:将所述文本行的横向长度和纵向长度分别转换至所述预设数值范围内;将转换后的横向长度映射为d维特征向量,得到所述横向尺寸特征向量;将转换后的纵向长度映射为d维特征向量,得到所述纵向尺寸特征向量。
5.如权利要求1所述的方法,其特征在于,还包括,对于所述一个或多个文本行中的每个文本行:
对于所述文本行中的每个词语,
确定所述词语的第三特征向量和至少一个第四特征向量,所述第三特征向量与所述词语的语义有关,所述至少一个第四特征向量与所述词语的位置和/或所述文本行的文本行尺寸有关;
对所述第三特征向量和所述至少一个第四特征向量进行融合处理,得到所述词语的融合特征向量;
基于所述文本行中每个词语的融合特征向量,确定所述文本行的融合特征向量;
将所述文本行的融合特征向量输入文本行分类模型,得到所述文本行的类别;以及
基于所述一个或多个文本行的类别,将所述一个或多个文本行划分为一个或多个文本块,其中,每个文本块包括至少一个文本行。
6.如权利要求5所述的方法,其特征在于,所述至少一个第四特征向量包括以下特征向量中的至少一个:
页码特征向量,所述页码特征向量与所述文本行所在页的页码有关;
横向位置特征向量,所述横向位置特征向量与所述文本行在其所在页的横向位置有关;
纵向位置特征向量,所述纵向位置特征向量与所述文本行在其所在页的纵向位置有关;
横向尺寸特征向量,所述横向尺寸特征向量与所述文本行的横向长度有关;
纵向尺寸特征向量,所述纵向尺寸特征向量与所述文本行的纵向长度有关。
7.如权利要求5所述的方法,其特征在于,所述文本行分类模型包括第一Transformer模型,所述第一Transformer模型采用局部Attention机制。
8.如权利要求2或5所述的方法,其特征在于,还包括,对于所述一个或多个文本块中的每个文本块:
确定所述文本块的文本序列,所述文本序列包括所述文本块中每个词语的第三特征向量;
基于所述文本块中每个词语所在的文本行的文本行位置,生成位置特征序列;
基于所述文本块中每个词语所在的文本行的文本行尺寸,生成尺寸特征序列;
对所述文本序列、所述位置特征序列和所述尺寸特征序列进行融合处理,得到融合特征序列;
将所述融合特征序列输入命名实体识别模型,得到所述文本块中的一个或多个字段,其中,每个字段包括至少一个词语。
9.如权利要求8所述的方法,其特征在于,所述命名实体识别模型包括GlobalPointer网络。
10.一种简历解析装置,包括处理器和存储设备,其特征在于,所述存储设备存储有简历解析指令,当所述处理器执行所述简历解析指令时,实现如权利要求1~9中任一项所述的简历解析方法。
11.一种简历解析系统,其特征在于,包括:
获取模块,用于获取简历对应的PDF文档和图片;
定位模块,用于基于所述图片,确定所述简历中一个或多个文本行的文本行位置;
第一解析模块,用于基于所述PDF文档,确定所述简历中的一个或多个第一字符以及所述一个或多个第一字符的字符位置;
匹配模块,用于基于所述一个或多个文本行的文本行位置和所述一个或多个第一字符的字符位置,对所述一个或多个文本行和所述一个或多个第一字符进行匹配,以得到匹配结果;所述匹配包括判断每个所述第一字符是否位于所述一个或多个文本行中;以及
第二解析模块,用于:确定所述一个或多个文本行中是否存在未匹配到第一字符的目标文本行;响应于确定所述一个或多个文本行中存在所述目标文本行,对所述目标文本行进行光学文本解析,以确定所述目标文本行中的一个或多个第二字符;生成所述简历对应的解析文本,所述解析文本包括所述一个或多个第一字符和所述一个或多个第二字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310774452.4A CN116502625B (zh) | 2023-06-28 | 2023-06-28 | 一种简历解析方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310774452.4A CN116502625B (zh) | 2023-06-28 | 2023-06-28 | 一种简历解析方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116502625A CN116502625A (zh) | 2023-07-28 |
CN116502625B true CN116502625B (zh) | 2023-09-15 |
Family
ID=87327063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310774452.4A Active CN116502625B (zh) | 2023-06-28 | 2023-06-28 | 一种简历解析方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116502625B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021017260A1 (zh) * | 2019-08-01 | 2021-02-04 | 平安科技(深圳)有限公司 | 多语言文本识别方法、装置、计算机设备及存储介质 |
CN113221711A (zh) * | 2021-04-30 | 2021-08-06 | 北京金山数字娱乐科技有限公司 | 一种信息提取方法及装置 |
CN113743052A (zh) * | 2021-08-17 | 2021-12-03 | 的卢技术有限公司 | 一种融合多模态的简历版面分析方法及装置 |
CN115690795A (zh) * | 2022-11-02 | 2023-02-03 | 科大讯飞股份有限公司 | 简历信息提取方法、装置、电子设备和存储介质 |
CN116341489A (zh) * | 2023-03-27 | 2023-06-27 | 北京贪心科技有限公司 | 一种文本信息读取方法、装置及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331764B2 (en) * | 2014-05-05 | 2019-06-25 | Hired, Inc. | Methods and system for automatically obtaining information from a resume to update an online profile |
-
2023
- 2023-06-28 CN CN202310774452.4A patent/CN116502625B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021017260A1 (zh) * | 2019-08-01 | 2021-02-04 | 平安科技(深圳)有限公司 | 多语言文本识别方法、装置、计算机设备及存储介质 |
CN113221711A (zh) * | 2021-04-30 | 2021-08-06 | 北京金山数字娱乐科技有限公司 | 一种信息提取方法及装置 |
CN113743052A (zh) * | 2021-08-17 | 2021-12-03 | 的卢技术有限公司 | 一种融合多模态的简历版面分析方法及装置 |
CN115690795A (zh) * | 2022-11-02 | 2023-02-03 | 科大讯飞股份有限公司 | 简历信息提取方法、装置、电子设备和存储介质 |
CN116341489A (zh) * | 2023-03-27 | 2023-06-27 | 北京贪心科技有限公司 | 一种文本信息读取方法、装置及终端 |
Non-Patent Citations (1)
Title |
---|
基于新型文本块分割法的简历解析;祖石诚;王修来;曹阳;张玉韬;梁珊;;计算机科学(第S1期);105-111 * |
Also Published As
Publication number | Publication date |
---|---|
CN116502625A (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Katti et al. | Chargrid: Towards understanding 2d documents | |
CN112801010B (zh) | 一种针对实际ocr场景下的视觉富文档信息抽取方法 | |
US10915788B2 (en) | Optical character recognition using end-to-end deep learning | |
US8176054B2 (en) | Retrieving electronic documents by converting them to synthetic text | |
AU2020279921A1 (en) | Representative document hierarchy generation | |
Naz et al. | Segmentation techniques for recognition of Arabic-like scripts: A comprehensive survey | |
CN114596566B (zh) | 文本识别方法及相关装置 | |
JP7174812B2 (ja) | 非構造化文書からのセマンティックデータの照会 | |
CN111783710A (zh) | 医药影印件的信息提取方法和系统 | |
CN112269872B (zh) | 简历解析方法、装置、电子设备及计算机存储介质 | |
US20210264556A1 (en) | Automatically attaching optical character recognition data to images | |
US20240028832A1 (en) | Natural language processing text-image-layout transformer | |
CN115952791A (zh) | 基于机器阅读理解的篇章级事件抽取方法、装置、设备及存储介质 | |
CN118155231B (zh) | 文档的识别方法、装置、设备、介质及产品 | |
Sharma et al. | [Retracted] Optimized CNN‐Based Recognition of District Names of Punjab State in Gurmukhi Script | |
CN116502625B (zh) | 一种简历解析方法和系统 | |
Yasin et al. | Transformer-Based Neural Machine Translation for Post-OCR Error Correction in Cursive Text | |
US20230376687A1 (en) | Multimodal extraction across multiple granularities | |
KR20230013849A (ko) | 테이블에 포함된 정보를 인식하는 문자 인식 에러에 강인한 글자 인식 방법 및 시스템 | |
CN115294593A (zh) | 一种图像信息抽取方法、装置、计算机设备及存储介质 | |
CN115130437A (zh) | 一种文档智能填写方法、装置及存储介质 | |
Kumar et al. | Line based robust script identification for indianlanguages | |
CN114003750A (zh) | 物料上线方法、装置、设备及存储介质 | |
CN113962196A (zh) | 一种简历处理方法、装置、电子设备及存储介质 | |
Nguyen et al. | Learning Reading Order via Document Layout with Layout2Pos |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |