Resume information extraction method and computing device
By identifying and sorting the resume layout structure and using a large model to extract key information, the problem of manual resume screening is solved, and efficient and accurate resume information extraction and management is achieved.
Patent Information
- Application Number
- CN202510672875.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-22
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2045-05-22
AI Technical Summary
In the recruitment process of prior art, manual resume screening is time-consuming and labor-intensive and prone to omissions and deviations. The processing results of text extraction methods are biased from actual information, making it difficult to extract key information from massive resumes efficiently and accurately.
By identifying the layout structure of the resume, multiple resumes are determined, sorting and segmenting according to the information area blocks to which the text block belongs, key information is extracted using the big model, and the resume text is converted into the target format.
It achieves efficient and accurate extraction of key information from complex resumes, improves the degree of automation of resume screening and management, and ensures information continuity and integrity.
Smart Images

Figure CN120597873A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of information extraction technology, and in particular to a resume information extraction method and computing device. Background Art
[0002] With the rapid development of information technology and the popularization of the Internet, the recruitment process has gradually evolved towards digitalization. During the recruitment process, companies need to process a large number of resumes, which are very rich in content and have relatively flexible formatting.
[0003] Manual resume screening is not only time-consuming and labor-intensive, but also prone to omissions and biases. Furthermore, due to the variety of resume formats, the results of text extraction often deviate from the actual information contained in the resume, resulting in poor readability.
[0004] Therefore, how to efficiently and accurately extract key information from massive resumes has become an urgent problem to be solved. Summary of the Invention
[0005] The embodiments of the present application provide a resume information extraction method and computing device to efficiently and accurately extract key information from massive resumes.
[0006] In a first aspect, an embodiment of the present application provides a resume information extraction method, the method comprising: determining whether the resume to be identified is a multi-part resume; wherein, a multi-part resume refers to a resume to be identified that includes at least two information area blocks arranged side by side, each information area block including multiple text blocks, and the text blocks are determined by character recognition of the text content in the resume to be identified; in the case that the resume to be identified is a multi-part resume, the text contents corresponding to the text blocks are arranged in sequence according to the different information area blocks to which the text blocks belong, to obtain the resume text; the resume text is divided into resume sub-texts and then input into different large models respectively, so that different large models can respectively extract the key information in the corresponding resume sub-texts.
[0007] This solution can identify the resume's layout structure, extract and rearrange its text content, and generate the resume text. This text can then be segmented and fed into different large models to analyze key information. This not only handles complex resume layouts but also efficiently extracts and organizes key information, improving the automation of resume screening and management and providing powerful support for businesses and recruitment platforms.
[0008] In one possible implementation, multiple text blocks are divided into rows based on the block coordinates of the text blocks; wherein the difference in row coordinates of text blocks located in the same row is less than a preset threshold; the gap area between adjacent text blocks in each row is determined; the gap area of each row is traversed, and when the gap areas of adjacent rows are continuous vertically, the vertically continuous gap areas are determined as vertically cut areas; based on the vertically cut areas, it is determined whether the resume to be identified is a multi-part resume.
[0009] In this way, it can be determined whether the resume to be identified is a multi-part resume.
[0010] In one possible implementation, based on the vertical cut area, determining whether the resume to be identified is a multi-part resume includes: determining the middle dividing line of the vertical cut area based on the coordinates of the vertical cut area as a candidate layout cut line; traversing each candidate layout cut line to determine whether there is a candidate layout cut line that meets the screening rules; wherein the screening rules include that the distance between the candidate layout cut line and its adjacent text block is greater than a distance threshold, the height of the candidate layout cut line in the resume to be identified is greater than a height threshold and / or the number of fields in the layout obtained by cutting based on the candidate layout cut line is greater than a field threshold; if there is a candidate layout cut line that meets the screening rules, determining that the resume to be identified is a multi-part resume; if there is no candidate layout cut line that meets the screening rules, determining that the resume to be identified is not a multi-part resume.
[0011] In this way, fine recognition of the resume to be identified can be achieved.
[0012] In one possible implementation, before dividing multiple text blocks into rows based on the block coordinates of the text blocks, the method further includes: determining whether the resume to be recognized is in image format; if not, converting the resume to image format; resizing the resume in image format to the marked size; and performing optical character recognition (OCR) on the resume to obtain the text blocks and their corresponding block coordinates. Based on this solution, the resume in image format can be resized to the marked size, ensuring the accuracy of the OCR processing results and, therefore, accurately extracting information from the resume.
[0013] In one possible implementation, after the resume text is divided into resume sub-texts and before they are input into different large models respectively, it also includes: when the resume to be identified is not a multi-copy resume and when the resume to be identified is in a non-image format, reading the text in the resume to be identified as the resume text; when the resume to be identified is not a multi-copy resume and when the resume to be identified is in an image format, determining the text obtained by character recognition of the resume to be identified as the resume text.
[0014] It can be seen that compared with multi-part resumes, the embodiment of the present application can directly extract text from non-multi-part resumes to be identified, and the extracted text content can be directly used as the resume text without the need for a re-arrangement step.
[0015] In one possible implementation, the method also includes: identifying the text title in the resume to be identified based on a target detection algorithm; performing regular matching on the text title using a regular expression to determine the information category corresponding to the text title; and segmenting the resume text based on the text title to obtain the resume sub-text corresponding to each information category.
[0016] In this way, the resume content can be efficiently and accurately divided through visual models and regular matching, and the content continuity of the resume sub-text can be guaranteed.
[0017] In one possible implementation, the resume text is divided into resume sub-texts and then input into different large models respectively, including: inputting multiple resume sub-texts into the large models corresponding to their information categories respectively; inputting corresponding prompt words into each large model, so that each large model extracts key information in the resume sub-text based on the prompt words.
[0018] In this way, the complexity of the task can be distributed to different large models to ensure the quality of information extraction.
[0019] In a possible implementation, after the resume text is divided into resume sub-texts and respectively input into different large models, the following steps are included: mapping the key information output by each large model into a target format to obtain a resume information file.
[0020] Based on this solution, a formatted resume information file can be obtained.
[0021] In one possible implementation, the method further includes: using the large model to modify the time data in the key information into a preset time format. Based on the regularization processing of this solution, time data from different sources and formats can be normalized, thereby improving the overall data quality.
[0022] In the second aspect, an embodiment of the present application provides a resume information extraction device, which includes: an identification module, configured to: determine whether the resume to be identified is a multi-part resume; wherein, a multi-part resume refers to a resume to be identified that includes at least two information area blocks arranged side by side, and each information area block includes multiple text blocks, and the text blocks are determined by character recognition of the text content in the resume to be identified; a resume text determination module, configured to: when the resume to be identified is a multi-part resume, arrange the text content corresponding to the text block in sequence according to the different information area blocks to which the text block belongs, to obtain a resume text information extraction module, configured to: divide the resume text into resume sub-texts and input them into different large models respectively, so that different large models can extract key information in the corresponding resume sub-texts respectively.
[0023] In one possible implementation, the recognition module is further configured to: divide multiple text blocks into rows based on the block coordinates of the text blocks; wherein the difference in row coordinates of text blocks located in the same row is less than a preset threshold; determine the gap area between adjacent text blocks in each row; traverse the gap area of each row, and when the gap areas of adjacent rows are continuous vertically, determine the vertically continuous gap areas as vertical cutting areas; based on the vertical cutting areas, determine whether the resume to be identified is a multi-part resume.
[0024] In one possible implementation, the identification module is further configured to: determine the middle dividing line of the vertical cutting area based on the coordinates of the vertical cutting area as a candidate layout cutting line; traverse each candidate layout cutting line to determine whether there is a candidate layout cutting line that meets the screening rules; wherein the screening rules include that the distance between the candidate layout cutting line and its adjacent text block is greater than a distance threshold, the height of the candidate layout cutting line in the resume to be identified is greater than a height threshold and / or the number of fields in the layout obtained based on the candidate layout cutting line is greater than a field threshold; in the case that there is a candidate layout cutting line that meets the screening rules, determine that the resume to be identified is a multi-copy resume; in the case that there is no candidate layout cutting line that meets the screening rules, determine that the resume to be identified is not a multi-copy resume.
[0025] In one possible implementation, the recognition module is further configured to: determine whether the resume to be recognized is in a picture format; if the resume to be recognized is not in a picture format, convert the resume to be recognized into a picture format; adjust the size of the resume to be recognized in a picture format to the marked size; perform optical character OCR recognition on the resume to be recognized to obtain a text block and its corresponding block coordinates.
[0026] In one possible implementation, the device also includes a segmentation module, which is specifically configured to: identify the text title in the resume to be identified based on the target detection algorithm; use regular expressions to perform regular matching on the text title to determine the information category corresponding to the text title; segment the resume text based on the title to obtain the resume sub-text corresponding to each information category.
[0027] In one possible implementation, the information extraction module is specifically configured to: input multiple resume sub-texts into the large model corresponding to their information categories respectively; input corresponding prompt words into each large model, so that each large model extracts key information in the resume sub-text based on the prompt words.
[0028] In a possible implementation, the information extraction module is further configured to: map the key information output by each large model into a target format to obtain a resume information file.
[0029] In a possible implementation, the information extraction module is further configured to modify the time data in the key information into a preset time format using the large model.
[0030] In a third aspect, an embodiment of the present application further provides a computing device comprising: one or more processors; and a memory configured to: store one or more programs; wherein, when the one or more programs are executed by one or more processors, the one or more processors implement a method as described in any one of the first aspects above.
[0031] In a fourth aspect, an embodiment of the present application provides a chip, which is used to execute any method as described in the first aspect above.
[0032] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a computer, the method as described in any one of the first aspects is implemented.
[0033] In a sixth aspect, an embodiment of the present application provides a program product, comprising a computer program, which implements any method in the first aspect when executed by a processor. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] Figure 1 A schematic diagram of the first flow chart of the resume information extraction method provided in an embodiment of the present application;
[0035] Figure 2 A schematic diagram of a resume to be identified provided in an embodiment of the present application;
[0036] Figure 3 A schematic diagram of rearranging the resumes to be identified provided in an embodiment of the present application;
[0037] Figure 4 A schematic diagram of the OCR recognition process provided in an embodiment of the present application;
[0038] Figure 5 A schematic diagram of identifying non-multi-part resumes provided in an embodiment of the present application;
[0039] Figure 6 A schematic diagram of identifying multiple resumes provided in an embodiment of the present application;
[0040] Figure 7 A schematic diagram of the process of segmenting a resume text provided in an embodiment of the present application;
[0041] Figure 8 A schematic diagram of title recognition for a non-multi-part resume provided in an embodiment of the present application;
[0042] Figure 9 A second flow chart of the resume information extraction method provided in the embodiment of the present application;
[0043] Figure 10 A schematic diagram of the structure of a resume information extraction device provided in an embodiment of the present application;
[0044] Figure 11 A schematic diagram of a computing device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0045] The following will describe the technical solutions in the embodiments of the present application in conjunction with the accompanying drawings. To facilitate the clear description of the technical solutions in the embodiments of the present application, the first, second, etc. descriptions in the embodiments of the present application are only used for illustration and to distinguish the described objects. There is no order, nor does it represent a special limitation on the number of devices in the embodiments of the present application, and it does not constitute any limitation on the embodiments of the present application.
[0046] To efficiently and accurately extract key information from massive resumes, embodiments of the present application provide a resume information extraction method. This method can be applied to a computing device, which can be a server or a terminal device. For example, the computing device is a server. In terms of form, the server can be a rack server or a whole cabinet server. In terms of performance, it can be a general-purpose server, a GPU (graphics processing unit) server, or an artificial intelligence (AI) server.
[0047] Figure 1 This is a schematic diagram of the first flow chart of the resume information extraction method provided in the embodiment of the present application.
[0048] like Figure 1As shown, the resume information extraction method provided in the embodiment of the present application may include the following steps S100-S400.
[0049] S100: Determine whether the resume to be identified is a multi-part resume; wherein, a multi-part resume means that the resume to be identified includes at least two information area blocks arranged side by side, each information area block includes multiple text blocks, and the text blocks are determined by character recognition of the text content in the resume to be identified.
[0050] In practical applications, job seekers can submit resumes through the front-end interface of an enterprise's information technology (IT) system. An IT system refers to an integrated system consisting of computer hardware, software, and networks that supports information processing and management within an organization, such as storing large volumes of resumes submitted by job seekers. Furthermore, embodiments of the present application can access the IT system to obtain resumes to be identified.
[0051] In an embodiment of the present application, the resume to be identified may have different formats, such as PDF, Word, txt, pictures (png, jpg), etc. The embodiment of the present application can receive resumes in different formats for identification.
[0052] Furthermore, the resume to be identified generally has a flexible layout format, such as top-bottom layout, left-right layout, table layout (also called grid layout), etc.
[0053] Figure 2 (a) shows a resume to be recognized in a vertical layout. Since the text content of a vertical layout resume is arranged from top to bottom, it is easy to understand the meaning of the text. Therefore, it can be directly recognized and key information can be extracted.
[0054] Figure 2 (b) shows a resume to be identified that is laid out in left and right format. It can be understood that a resume to be identified that is laid out in left and right format can also be called a multi-part resume. Specifically, it can refer to a resume file in which there are multiple side-by-side layouts, and each layout contains resume information of different types or categories. If text recognition is performed directly on it, the continuity of the information is easily lost, resulting in incomplete or disordered order of the extracted information, thereby affecting the quality and accuracy of resume identification. The embodiment of the present application can specifically determine whether the resume to be identified is a multi-part resume based on whether the resume to be identified includes at least two information area blocks arranged side by side. The side-by-side arrangement here refers to horizontal side by side. Moreover, in the case where the resume to be identified is a multi-part resume, the embodiment of the present application can sort the text content of the resume to be identified to ensure that the information extraction is continuous, accurate and complete.
[0055] Furthermore, the embodiment of the present application can use optical character recognition (OCR) technology to identify the resume to be identified and obtain the layout content, which includes at least multiple text blocks and the block coordinates of each text block. OCR is a technology that converts text in an image into editable text. Based on OCR technology, the layout, font, text spacing and other features of the resume to be identified can be analyzed, and the resume to be identified can be divided into several information blocks with independent meanings, namely text blocks. Moreover, based on OCR technology, a rectangular box (or bounding box) framed outside the resume information can be used to represent the text block.
[0056] Furthermore, for each text block, the position coordinates of the text block in the resume, namely the block coordinates, can be determined based on OCR technology. Specifically, the block coordinates can be represented by the coordinates of the upper left corner and the lower right corner of the text block.
[0057] Furthermore, the text content of each text block can be extracted based on OCR technology. In this way, the text content corresponding to different text blocks has a position representation, that is, the position of different text contents can be represented by block coordinates.
[0058] S201: When the resume to be identified is a multi-part resume, the text contents corresponding to the text blocks are arranged in order according to the different information area blocks to which the text blocks belong, to obtain the resume text.
[0059] Figure 3 , which exemplifies a schematic diagram of rearranging the resumes to be identified. The embodiment of the present application can sort the text blocks according to the different information area blocks (layouts) to which they belong. Specifically, the information area block to which the text block belongs can be determined according to the block coordinates corresponding to the text block, as well as the left-right order of the information area block to which it belongs, and then the upper and lower order of the text blocks in the resume text can be determined. For multiple text blocks in the same information area block, the text contents corresponding to each text block can be sorted by first determining the left-right order of the text blocks in the same row, and then determining the upper and lower order of the text blocks in different rows.
[0060] In this way, the problem of text disorder caused by directly extracting multi-part resumes can be avoided. Figure 3 As shown, according to the left-to-right order of the resume, the embodiment of the present application can vertically arrange the text content in the first information area block first, and the content of the text block in the second information area block vertically arranges the content of the text block behind the text content of the first information area block, and so on, to complete the arrangement of the text content. In this way, the text content can be arranged into a resume text that is understandable to humans, so that key information in the resume text can be extracted and the difficulty of subsequent processing can be reduced.
[0061] It should also be noted that if the resume to be recognized is not a multi-part resume, then the resume to be recognized does not include information area blocks arranged side by side. For example, the OCR recognition process can detect text areas in an image (a resume to be recognized in picture format). If a complete text area consisting of multiple text blocks arranged in rows is recognized, then OCR can be used to segment this text area from the image to obtain an information area block. In this case, there is only one information area block and no columns. Therefore, the resume to be recognized is not a multi-part resume.
[0062] It is understandable that the number of text blocks and the distribution of each text block are determined based on the style of the resume layout.
[0063] Furthermore, compared to multi-part resumes, the embodiment of the present application can directly extract text from non-multi-part resumes to be identified, and the extracted text content can be directly used as the resume text without the need for a re-arrangement step.
[0064] Specifically, the resume to be identified may include image formats and non-image formats. The embodiment of the present application can also perform text extraction on non-multi-part resumes in image formats and non-multi-part resumes in non-image formats. Specifically, the following steps S202 and S203 may be included.
[0065] S202: When the resume to be identified is not a multi-part resume and is not in a picture format, the text in the resume to be identified is read as the resume text.
[0066] In practical applications, the embodiment of the present application can use a text recognition module to extract text from non-multi-link resumes in non-picture format to obtain resume text. This is because the files in the resumes to be identified in non-picture format directly contain text, so no additional image processing is required to obtain the text, no OCR technology processing is required, and no sorting steps are required, and the extraction efficiency and accuracy are high. The text extraction module can be implemented based on a document parsing library, such as Apache POI, python-docx, or pdfminer, or the text extraction module can be implemented based on natural language processing (NLP) technology. The text extraction module can specifically perform text feature engineering, which refers to the process of converting raw text data into numerical features that can be understood and processed by machine learning models in NLP tasks.
[0067] S203: When the resume to be recognized is not a multi-part resume and is in a picture format, a text obtained by performing character recognition on the resume to be recognized is determined as the resume text.
[0068] It can be seen that for non-multi-part resumes in image format, there is no need to perform the re-arrangement step.
[0069] It should be noted that, since the step of performing OCR recognition is required in step S100, the text content can be directly obtained, and therefore the resume text can be determined without repeating the OCR recognition in this step.
[0070] In some implementations, image formats may include png, jpg, image-based PDF (composed of scanned images), etc., and non-image formats may include text-based PDF (text embedded in the PDF file), Word, txt, etc. It should be noted that PDF documents can be of two types: text-based PDF, i.e., text-based PDF; and image-based PDF (composed of scanned images), i.e., image-based PDF. Embodiments of the present application may perform different extraction processes for text-based PDF and image-based PDF.
[0071] S300: The resume text is divided into resume sub-texts and then input into different large models respectively, so that the different large models can extract key information from the corresponding resume sub-texts.
[0072] The large model can be a large language model. After training, the embodiment of the present application can enable the large model to have the ability to extract key information from resumes. Furthermore, the embodiment of the present application can deploy multiple different large models and conduct targeted training on different large models, so that each large model can be used to understand and extract key information from resume subtexts of different information categories.
[0073] It should be noted that this embodiment of the present application can segment the resume text according to the information category to avoid the problem of segmentation disrupting the text's continuity. Information categories may include "basic information," "education experience," "work experience," and "project experience," etc., which are not limited in this embodiment of the present application. The specific segmentation steps will be described in detail below and are not detailed here.
[0074] It can be understood that the number of resume sub-texts can be one or more.
[0075] During the actual training phase, the present embodiment can utilize four types of training data: basic information, education history, work experience, and project experience. These data can be used to train four large models, enabling them to extract key information from basic information, education history, work experience, and project experience. This allows the complexity of the task to be distributed across the different large models, ensuring the quality of information extraction.
[0076] It is understandable that in practical applications, different large models can be trained based on actual needs to extract different types of key information from resume texts.
[0077] S400: Outputting the key information into a resume information file in a target format.
[0078] The target format may be json, xml or CSV, etc., which is not specifically limited in the present embodiment.
[0079] In practical applications, the resume information extraction method can be deployed on a computing device and exposed through an API interface, allowing IT systems or other applications to call the method to process resumes and obtain a formatted resume information file. The IT system can then display the formatted resume information file on its front-end interface for users (e.g., HR) to view.
[0080] From the above content, it can be seen that the embodiment of the present application provides a resume information extraction method, which includes: determining whether the resume to be identified is a multi-part resume; wherein, a multi-part resume refers to a resume to be identified that includes at least two information area blocks arranged side by side, each information area block includes multiple text blocks, and the text block is determined by character recognition of the text content in the resume to be identified; in the case where the resume to be identified is a multi-part resume, the text content corresponding to the text block is arranged in order according to the different information area blocks to which the text block belongs, to obtain the resume text; after the resume text is divided into resume sub-texts, they are input into different large models respectively, so that different large models respectively extract the key information in the corresponding resume sub-text. This method can identify the layout structure of the resume, extract and rearrange the text content therein, then use the large model to analyze the key information, and finally output a resume information file that conforms to the target format. Not only can it handle complex resume formats (such as multi-part resumes), it can also efficiently extract and organize key information, improve the degree of automation of resume screening and management, and provide strong support for enterprises and recruitment platforms.
[0081] The resume information extraction method provided in the embodiment of the present application is further described in detail below with reference to the accompanying drawings.
[0082] Figure 4 A schematic diagram of the OCR recognition process provided in an embodiment of the present application.
[0083] like Figure 4 As shown, after obtaining the resume to be identified, the embodiment of the present application can first perform a format identification step to determine whether the resume to be identified is in a picture format or a non-picture format.
[0084] After determining the format, the resume to be identified in non-image format can be converted into image format, and then the resume to be identified can be subjected to OCR recognition to determine whether it is a multi-part resume. Specifically, step S100 may include the following steps S101-S103.
[0085] S101: Determine whether the resume to be identified is in image format.
[0086] It is understandable that OCR recognition mainly relies on pixel information in the image to recognize text. Therefore, before performing OCR recognition, you should first determine whether the resume to be recognized is in image format.
[0087] S102: If the resume to be identified is in a non-picture format, convert the resume to be identified into a picture format.
[0088] Among them, the image format is, for example, png format, and the format conversion can be performed using a document conversion tool or library (such as imagemagick, pdf2image, etc.), which is not specifically limited in the embodiment of the present application.
[0089] S103: Adjust the size of the resume to be recognized in the image format to the marked size.
[0090] In order to meet the unified image size standards in subsequent processing steps, the image size needs to be adjusted. In this embodiment of the application, the annotation size can be pre-set (for example, 1000 pixels in width and 1400 pixels in height), and the size of the resume to be recognized in image format can be adjusted to the annotation size to ensure the accuracy of the OCR processing results.
[0091] Furthermore, after the resume to be identified is unified into a picture format and the size is the marked size, the resume to be identified can be subjected to OCR recognition to determine whether the resume to be identified is a multi-part resume. Specifically, the following step S104 may be included after step S103.
[0092] S104: Perform optical character recognition (OCR) on the resume to be recognized to obtain text blocks and their corresponding block coordinates.
[0093] It should be noted here that during the OCR recognition process, an image coordinate system can be constructed in the resume to be recognized. The x-axis represents the horizontal coordinate, corresponding to the horizontal direction of the resume, and the y-axis represents the vertical coordinate, corresponding to the vertical direction of the resume. Based on this, the specific coordinate values of the block coordinates can be determined.
[0094] Figure 5 A schematic diagram of identifying non-multi-part resumes provided in an embodiment of the present application.
[0095] Figure 6 A schematic diagram of identifying multiple resumes provided in an embodiment of the present application.
[0096] like Figure 5 and Figure 6As shown in the figure, after OCR recognition, the content of the resume to be recognized can be divided into multiple text blocks. For example, the size of the entire resume page is 1000*1400 pixels. The resume to be recognized may include the following basic information: "Name: Zhang San, Contact Information: 138-xxxx-5678". After the resume content is recognized by the OCR system, "Name: Zhang San" can be divided into a text block with the corresponding block coordinates of (x1:50, y1:100, x2:80, y2:120); the contact information "138-xxxx-5678" can be divided into a text block with the corresponding block coordinates of (x1:150, y1:160, x2:200, y2:150).
[0097] Furthermore, after OCR recognition, the embodiment of the present application can further determine whether the resume to be recognized is a multi-part resume. Specifically, after step S104, the following steps S105-S108 can also be included.
[0098] S105: Divide the multiple text blocks into rows based on the block coordinates of the text blocks; wherein the difference between the row coordinates of the text blocks in the same row is less than a preset threshold.
[0099] The embodiment of the present application can be based on the row division operation according to the block coordinates. The block coordinates can include the upper left coordinate and the lower right coordinate of the text block, the upper left coordinate can include the horizontal coordinate and the vertical coordinate, and the lower right coordinate also includes the horizontal coordinate and the vertical coordinate. Specifically, by comparing the row coordinates (equivalent to the horizontal coordinate) of each text block, for text blocks whose row coordinate difference is less than a preset threshold, it is determined that they are in the same row. The preset threshold can be, for example, equal to 5 pixels, 10 pixels or 20 pixels, and the embodiment of the present application does not make specific limitations on this.
[0100] It's important to note that when determining whether two text blocks belong to the same row, a unified comparison basis is required: the coordinates of the upper left row or the lower right row of the two text blocks should be compared uniformly, rather than using a mix of coordinate values from different bases. This unified comparison ensures consistency in row division logic and avoids incorrect row assignment due to inconsistent coordinate bases.
[0101] In this way, after traversing all text blocks and classifying them, a text block set in lines can be constructed.
[0102] S106: Determine the gap area between adjacent text blocks in each row.
[0103] After the text blocks are divided into rows, the present embodiment can further analyze the blank space between adjacent text blocks in each row to determine the gap area. Furthermore, the position and range of the gap area can be determined by comparing the coordinate values of adjacent text blocks.
[0104] For example, in Figure 5 In the mth row, there is a text block A1 and a text block B1 next to it. The horizontal coordinate of the right edge of A1 is x a , the horizontal coordinate of the left border of B1 is x b , then x b -x a That is, the width of the gap area I1 between the two adjacent area blocks. The horizontal coordinate of the gap area I1 can be expressed as (x1:x a ,x2:x b ).
[0105] The vertical coordinate of the gap area can be expressed as the vertical coordinate of the text block. For example Figure 5 In the example, the right edge of text block A1 has a vertical coordinate of y a , the vertical coordinate of the left border of text block B1 is y b , then the vertical coordinate of the gap area I1 can be (y1:y b ,y2:y a ), and the height of the gap area is the difference y between the vertical coordinate of this line of text block b -y a In summary, the coordinates of the gap area can be (x a ,y b , x b ,y a ).
[0106] For another example, the coordinates of two adjacent text blocks are (x11, y11, x12, y12) and (x21, y21, x22, y22), where (x11, y11) and (x12, y12) are the upper left and lower right corner coordinates of the previous text block, and (x21, y21) and (x22, y22) are the upper left and lower right corner coordinates of the next text block. Then the coordinates of the gap area between them can be determined as (x12, y11, x21, y22). That is, the upper left corner coordinates (x12, y11) of the gap area are the horizontal coordinates of the lower right corner and the vertical coordinates of the upper left corner of the previous text block, and the lower right corner coordinates (x21, y22) are the horizontal coordinates of the upper left corner and the vertical coordinates of the lower right corner of the next text block. Alternatively, the coordinates of the gap area can be determined as (x12, y21, x21, y12), that is, the upper left corner coordinate (x12, y21) of the gap area is the horizontal coordinate of the lower right corner of the previous text block and the vertical coordinate of the upper left corner of the next text block, and the lower right corner coordinate (x21, y12) is the horizontal coordinate of the upper left corner of the next text block and the vertical coordinate of the lower right corner of the previous text block.
[0107] It can be understood that the abscissa can be used to determine the position and range of the gap area in the horizontal direction, and the ordinate can be used to determine the position and range of the gap area in the vertical direction.
[0108] S107: traverse the gap regions of each row, and when the gap regions of adjacent rows are continuous in the vertical direction, determine the vertically continuous gap regions as vertically segmented regions.
[0109] In an embodiment of the present application, the gap areas determined by traversing each row are as follows. For gap areas of adjacent rows, if they are connected to each other in the vertical direction to form a continuous blank area band, then this vertically continuous gap area can be determined as a vertically cut area.
[0110] When judging vertical continuity, the embodiment of the present application can compare whether the difference in the vertical coordinates of the gap areas between adjacent rows meets a preset condition. The preset condition is, for example, that the absolute value of the vertical coordinate difference is less than a preset continuity threshold. The preset continuity threshold is, for example, 10 pixels, 15 pixels, 20 pixels, or 30 pixels. The embodiment of the present application does not specifically limit this. If the condition is met, the gap areas of these adjacent rows are merged into a vertical segmentation area. In this way, the embodiment of the present application can identify vertical blank areas that may exist in the resume for dividing different layouts.
[0111] For example, for a gap area in the i-th row, its coordinates are (x1_i, y1_i, x2_i, y2_i), and the coordinates of a gap area in the i+1-th row are (x1_i+1, y1_i+1, x2_i+1, y2_i+1). Then, the embodiment of the present application can calculate the difference between the maximum vertical coordinate y2_i of the gap area in the i-th row and the minimum vertical coordinate y1_i+1 of the gap area in the i+1-th row. If y2_i-y1_i+1≤a preset continuity threshold (for example, 10 pixels), it is determined that the gap areas of the two adjacent rows are vertically continuous.
[0112] like Figure 5 As shown, there is a gap area I1 between the text block A1 and the text block B1 in the mth row, while the text block C1 in the m+1th row does not have an area vertically connected to the gap area I1, so there is no vertical segmentation area in the resume to be identified.
[0113] like Figure 6 As shown, there is a gap area I2 between text block A2 and text block B2 in the nth row, and a gap area I3 between text block A3 and text block B3 in the n+1th row. The gap area I2 and the gap area I3 are vertically continuous, and so on, a vertical cutting area Q can be formed.
[0114] S108: Based on the vertical segmentation area, determine whether the resume to be identified is a multi-part resume.
[0115] Specifically, step S108 includes the following steps S1081-S1084.
[0116] S1081: Determine the middle dividing line of the vertical cutting area based on the coordinates of the vertical cutting area as a candidate layout cutting line.
[0117] Figure 6 Schematic diagrams of various candidate layout dividing lines are shown as examples. For example, taking the horizontal coordinate x_left and the horizontal coordinate x_right of the left boundary of the vertical cutting area, the vertical coordinate y_left and the vertical coordinate y_right of the left boundary as examples, the horizontal coordinate of the middle dividing line is (x_left+x_right) / 2, and the height of the middle dividing line is (y_right-y_left) / 2. This middle dividing line is the candidate layout dividing line, which represents the potential segmentation position for dividing the resume into different layouts. Among them, the horizontal coordinate of the left boundary of the vertical cutting area can refer to the horizontal coordinate of the upper left corner of the first gap area that constitutes the vertical cutting area vertically, the vertical coordinate of the left boundary refers to the vertical coordinate of the upper left corner of the first gap area that constitutes the vertical cutting area vertically, the horizontal coordinate of the right boundary can refer to the horizontal coordinate of the lower right corner of the last gap area that constitutes the vertical cutting area vertically, and the vertical coordinate of the right boundary refers to the vertical coordinate of the lower right corner of the last gap area that constitutes the vertical cutting area vertically. The embodiments of the present application do not make specific limitations on this.
[0118] S1082: Traverse each candidate layout dividing line to determine whether there is a candidate layout dividing line that meets the screening rules; wherein the screening rules include that the distance between the candidate layout dividing line and its adjacent text block is greater than a distance threshold, the height of the candidate layout dividing line in the resume to be identified is greater than a height threshold and / or the number of fields in the layout obtained based on the candidate layout dividing line is greater than a field threshold.
[0119] The embodiment of the present application can traverse each candidate layout dividing line and determine whether it meets the characteristics of the layout dividing line according to the set screening rules.
[0120] Specifically, the distance threshold is used to ensure that there is sufficient space between the candidate layout dividing line and the surrounding text blocks to avoid mistakenly dividing areas within the same layout. For example, the distance threshold can be set to 15 pixels, which requires that the minimum distance between the candidate layout dividing line and the adjacent text blocks is greater than 15 pixels.
[0121] The height of the candidate layout splitting line can refer to the effective extension length of the candidate layout splitting line (or its corresponding vertical splitting area) in the vertical direction, or the span of the candidate layout splitting line in the Y-axis direction. Considering the actual situation, the vertical splitting area of a multi-page resume usually extends from near the top to near the bottom of the resume. For example, for a multi-page resume with an A4 size, its height is about 279 mm, then its vertical splitting area can extend from the 20th mm to the 270th mm, and the height of the layout splitting line corresponding to this vertical splitting area is 250 mm. The height threshold is to ensure that the splitting line has a certain length and can reflect the possible layout division to a certain extent. For example, the height threshold can be set to 1 / 3 of the total height of the resume. In the embodiments of the present application, the text blocks are determined by character recognition of the text content in the resume to be recognized. Each text block can be a relatively independent text unit, such as a word, a number, a phrase, or a sentence, etc. The number of text blocks can refer to the number of such smallest text units recognized in the resume. The specific value of the number of text blocks depends on factors such as the number of characters in the resume and the layout format of the text.
[0122] A field is a logical unit obtained by classifying information according to the semantics and structure of the resume, and can also refer to the smallest unit with specific meaning and independent information in the resume to be recognized. The classification of fields is based on a predefined resume structure template. Common fields include "Name", "Gender", "Age", "Educational Background", and "Work Experience", etc. Each field represents a category of information with specific semantics and uses. The number of fields refers to the number of categories of information with specific semantics and uses included in the resume.
[0123] In the embodiments of the present application, one text block can correspond to one field. When a text block can completely represent a specific field information by itself, for example, the text block "Zhang San" corresponds to the "Name" field, and the text block "Male" corresponds to the "Gender" field, etc. In this case, the number of text blocks and the number of fields are equal.
[0124] In some implementation manners, multiple text blocks can correspond to one field. The information of some fields needs to be combined by multiple text blocks to be completely expressed. For example, the "Educational Background" field can be jointly composed of multiple text blocks such as "School Name", "Major", "Degree", and "Graduation Time". At this time, one field can correspond to multiple text blocks, and the number of fields is less than the number of text blocks.
[0125] In some implementation manners, one text block can involve multiple fields. For example, a text block is "Zhang San graduated from the Computer Science Department of Peking University with a bachelor's degree in June 2020", and this text block involves multiple fields such as "Name" and "Educational Background".
[0126] The field threshold is determined by counting the number of information fields in the layout obtained after the candidate layout dividing line is divided. If the number of fields in the layout after division is large and greater than the pre-set field threshold (for example, the field threshold is 50 fields), it means that the dividing line may correspond to the layout division of the resume to be identified.
[0127] Alternatively, it is also possible to determine whether the candidate layout dividing line corresponds to the layout division of the resume to be identified based on the number of text blocks in the layout obtained by dividing the candidate layout dividing line. At this time, the screening rules may include that the number of text blocks in the layout obtained by dividing the candidate layout dividing line is greater than a quantity threshold, and the quantity threshold is, for example, equal to 20. The embodiments of the present application do not make specific limitations on this.
[0128] S1083: When there are candidate page dividing lines that meet the screening rules, determine that the resume to be identified is a multi-part resume.
[0129] In the process of traversing the candidate layout dividing lines, if at least one candidate layout dividing line meets the screening rules, it means that there is an obvious vertical layout dividing line in the resume to be identified, which divides it into multiple columns, which meets the characteristics of a multi-part resume.
[0130] It should be noted that the embodiment of the present application can determine that the candidate layout dividing line meets the requirements when the candidate layout dividing line meets one or more of the screening rules, or the embodiment of the present application can determine that the candidate layout dividing line meets the requirements when the candidate layout dividing line meets all the screening rules. The specific adjustment can be made based on the actual situation, and the embodiment of the present application does not make any specific restrictions on this.
[0131] In some implementations, embodiments of the present application can partition the resume to be identified based on candidate layout dividing lines that meet the screening rules. For example, the areas formed by the candidate layout dividing lines can be determined as first information area blocks, second information area blocks, and so on, arranged side by side. The areas not divided by the candidate layout dividing lines can be uniformly determined as a single information area block. In this way, the text content can be rearranged based on the partitioning results.
[0132] S1084: When there is no candidate page dividing line that meets the screening rules, determine that the resume to be identified is not a multi-part resume.
[0133] After traversing the candidate layout dividing lines, if there is no candidate layout dividing line that meets the screening rules, it can be determined that there is no obvious vertical layout line that divides the resume to be identified into at least two information area blocks arranged side by side, so the resume to be identified is not a multi-part resume.
[0134] Furthermore, it can be seen from the foregoing that if the resume to be identified is not a multi-part resume and is in a non-picture format, the embodiment of the present application can directly read the text in the resume to be identified as the resume text. If the resume to be identified is not a multi-part resume and is in a picture format, character recognition can be performed based on OCR technology to obtain the resume text. If the resume to be identified is a multi-part resume, character recognition and rearrangement can be performed based on OCR technology to obtain the resume text. Furthermore, after extracting the resume text from the resume to be identified, the embodiment of the present application can segment the resume text to input the resume sub-texts obtained by segmentation into different large models.
[0135] Figure 7 A schematic diagram of the process of segmenting a resume text provided in an embodiment of the present application.
[0136] like Figure 7 As shown, before step S300, the following steps S501-S503 may also be included.
[0137] S501: Based on an object detection algorithm, the title of the resume to be identified is identified.
[0138] The object detection algorithm is a visual algorithm that can be used to locate the position of a specified object in an image. An example of an object detection algorithm is the Yolo algorithm. In this step, to improve recognition results, key elements of the resume to be recognized can be identified, including the title, text, and table. Figure 8 The recognition results of non-multi-part resumes are shown as an example.
[0139] It can be understood that in step S102, the resume to be identified in non-picture format can be converted into picture format to obtain the resume to be identified in picture format. Therefore, in step S501, the resume to be identified in picture format can be directly identified based on the target detection algorithm without the need to perform the format conversion step again.
[0140] S502: Perform regular matching on the extracted text title using a regular expression to determine the information category to which the text title belongs.
[0141] Different text titles can correspond to different information categories, including basic information, education experience, work experience, and project experience. For example, the text titles corresponding to the "Basic Information" information category are "Personal Information," "Basic Information," "Personal Profile," and the corresponding regular expression can be: ^(Personal Information|Basic Information|Personal Profile|Basic Information)$. For example, the text titles corresponding to the "Educational Experience" information category are "Educational Background," "Learning Experience," "Educational Background," and "Educational Experience," and the corresponding regular expression can be: ^(Educational Background|Learning Experience|Educational Background|Educational Experience)$. For example, the text titles corresponding to the "Work Experience" information category are "Work Experience," "Career Experience," "Work Resume," and "Work Experience," and the corresponding regular expression can be: ^(Work Experience|Career Experience|Work Resume|Work Experience)$. For example, the text titles corresponding to the "Project Experience" information category are "Project Experience," "Project Resume," "Project Practice," and "Project Experience," and the corresponding regular expression can be: ^(Project Experience|Project Resume|Project Practice|Project Experience)$.
[0142] It is understandable that the above regular expressions are merely exemplary. In actual applications, the regular expressions may be adjusted based on actual needs.
[0143] S503: Segment the resume text based on the text title to obtain resume sub-text corresponding to each information category.
[0144] That is to say, the resume subtext is obtained by segmenting the resume text, and different resume subtexts correspond to different information categories.
[0145] After determining the text title and the information category to which it belongs, since the embodiment of the present application has extracted the resume text in the resume to be identified, the resume text can be segmented based on the text title to obtain the resume sub-text. The specific approach can be to traverse the resume text, starting from the position where the text title appears, and search backward until the next text title is encountered. This section of resume text is the resume sub-text corresponding to the text title. For example, if the title "Educational Background" is identified in the resume text, all the text from the text title onward until the next text title (such as "Work Experience") is encountered is the resume sub-text corresponding to the information category "Educational Background". For the last text title of the resume to be identified, its corresponding resume sub-text is from the text title to the end of the resume text. In this way, the entire resume text can be divided into multiple resume sub-texts, each resume sub-text corresponding to a specific information category, so as to prepare for the subsequent input of different resume sub-texts into different large models for processing.
[0146] It can be seen that the embodiment of the present application can efficiently and accurately divide the resume content through visual models and regular matching, and can ensure the content continuity of the resume sub-text.
[0147] Furthermore, step S300 may include S301: inputting each resume subtext into a large model corresponding to its information category.
[0148] For example, the resume subtext of "Personal Information" is input into the large model that processes personal information. The resume subtext of "Educational Experience" is input into the large model that processes educational experience. The resume subtext of "Work Experience" is input into the large model that processes work experience. The resume subtext of "Project Experience" is input into the large model that processes project experience.
[0149] In an embodiment of the present application, in order to improve the performance of the large language model in resume information extraction, a two-stage fine-tuning scheme can be adopted.
[0150] Phase 1: Fine-tuning semantic understanding capabilities.
[0151] Objective: To improve the semantic understanding capability of large models in resume scenarios, enabling them to accurately identify and extract specific information (such as company name, position, job responsibilities, time period, etc.).
[0152] Data preparation: Collect a large amount of annotated resume data and assign clear semantic labels to each piece of information.
[0153] Fine-tuning process: Use the pre-trained large model (such as Qwen, GLM, etc.) as the base model, and fine-tune it on this basis to enable the model to better understand and extract key information in the resume.
[0154] Stage 2: End-to-end information extraction fine-tuning.
[0155] Goal: Further improve the ability of large models to automatically extract all relevant information from resume text.
[0156] Data preparation: Use annotated resume data, which contains resume text and the ideal output results of manual annotation.
[0157] Fine-tuning process: Based on the fine-tuning in the first stage, training is performed again to optimize the model's understanding of complex text structures, enabling it to accurately extract various types of information.
[0158] Based on this, the split resume sub-information can be input into different large models, which can ensure the efficiency of information extraction, reduce the task complexity of a single large model, and ensure the quality of information extraction.
[0159] Step S301 may be followed by step S302: inputting prompt words corresponding to information categories into each large model, so that each large model extracts key information in the resume subtext based on the prompt words.
[0160] It is understandable that the resume sub-text may include rich information, and whether each piece of information is key information that the large model should pay attention to can be distinguished by guiding the large model based on prompt words.
[0161] In an embodiment of the present application, prompt words can indicate the category of key information that needs to be extracted. For example, an example of prompt words for inputting the "Personal Information" large model is: "Please extract personal information, including name, age, contact information, and email address"; an example of prompt words for inputting the "Work Experience" large model is: "Please extract work experience, including company name, position, start time, and end time"; an example of prompt words for inputting the "Educational Experience" large model is: "Please extract educational background, including school name, major, degree, and major courses"; an example of prompt words for inputting the "Project Experience" large model is: "Please extract project experience, including project name, project description, and project time".
[0162] For example, Figure 5 In the resume shown, the output of the “Personal Information” model may be “Zhang San, male, 28, 138-xxxx-5678, zhangsan@example.com”.
[0163] Furthermore, in order to splice the key information in each resume sub-text to obtain the final resume information file, the embodiment of the present application can also use prompt words to regularize the format of the output content of the large model, for example, regularize it into json format, so as to improve the stability of the large model in formatted output.
[0164] Specifically, step S400 may include the following step S401: mapping the key information output by each large model into a target format to obtain a resume information file.
[0165] Based on this step, the extracted key information can be structured and output as structured data for further processing. This step can be implemented based on a formatted large model. The formatted large model can be deployed after the large model corresponding to the information category to receive the output of the large model corresponding to the information category. The target format can be JSON, which is not specifically limited in this embodiment of the application.
[0166] Furthermore, in order to map the key information output by each large model into the target format, prompt words can be input into the formatted large model. Examples of prompt words are:
[0167] Please convert the following resume into a structured JSON format. The output JSON should include the following fields: Personal Information (name, age, contact information, email address), Work Experience (company name, position, start date, end date), Project Experience (project name, project description, start date, end date), and Educational Background (school name, major, degree). Please follow these rules for field mapping and ensure the output JSON is formatted correctly.
[0168] So, for Figure 5 The resume to be identified in the resume information file can include the following contents:
[0169]
[0170]
[0171]
[0172] As can be seen, based on the prompt word, the formatted big model can map the key information extracted by the big model for each information category to the corresponding fields in the target format. For example, the formatted big model can map the school name extracted by the "Education Experience" big model to the "School Name" field in the JSON structure.
[0173] Furthermore, before outputting the key information into a structured resume information file, embodiments of the present application may also perform a time data regularization step to ensure the regularization of time information extracted from time data in different formats. This step may specifically include: using the large model to modify the time data in the key information into a preset time format.
[0174] The large model in this step can be executed using the aforementioned formatted large model. Moreover, this step can be executed simultaneously with step S401 or after step S401. The specific execution order can be achieved by flexibly adjusting the prompt words. Prompt word example:
[0175] Please pay special attention to the time data in the resume information file and normalize it according to the following rules:
[0176] Unified date format: If month-year information expressed in different formats such as "March 2022", "2022.03", "3 / 2022" appears, it will be uniformly converted to the "YYYY-MM" format, for example, "2022-03"; if specific dates appear, such as "March 15, 2022", "15 / 03 / 2022", "2022.03.15", they will be uniformly converted to the "YYYY-MM-DD" format, that is, "2022-03-15".
[0177] Fuzzy time processing: If ambiguous expressions such as "last year" or "last month" appear, they must be converted to a specific date based on the current date (the current date is [specific year, month, and day]). For example, if the current date is April 7, 2025, "last year" would be converted to "2024-04-07" and "last month" would be converted to "2025-03-07."
[0178] No specific date processing: If only the year is mentioned, such as "2022", it is uniformly converted to the "YYYY-01-01" format, that is, "2022-01-01"; if only the month and year are mentioned, such as "March 2022", it is uniformly converted to the "YYYY-MM-01" format, that is, "2022-03-01".
[0179] In some implementations, steps S302, S401, and the time data regularization step can also be performed separately by the big models corresponding to different information categories. Afterwards, the JSON outputs of the different types of big models can be spliced to obtain the final resume information file. At this time, the prompt word example for the "Project Engineering" big model is:
[0180] Project experience section: Each project experience is a json object, which contains the following fields: "Start time" (in the format of YYYY-MM), "End time" (in the format of YYYY-MM, if the project has not ended, it can be written to the present), "Project name", "Project description" (listing key information such as project goals, processes, and results in points), "Project responsibilities" (listing the specific work of individuals in the project in points), "Position in the project", "Affiliated unit", and "Project performance" (listing the results and benefits achieved by the project in points).
[0181] From the above content, it can be seen that the resume information extraction method provided in the embodiment of the present application can have the following technical effects.
[0182] 1. Extract resume content based on direct file parsing and layout analysis combined with OCR technology.
[0183] Improves the accuracy and completeness of resume content extraction. By combining file parsing and OCR technology, the optimal parsing solution is selected based on different typesetting methods, preserving the original information.
[0184] 2. Resume document segmentation based on target detection title detection and regular matching.
[0185] Improved the efficiency of resume content extraction. Through visual models and regular expression matching, the resume content is efficiently divided and the task complexity is distributed across different large language models to ensure the quality of information extraction.
[0186] 3. Two-stage fine-tuning of large language models.
[0187] The large language model's ability to capture key resume information has been significantly improved. Through two stages of fine-tuning, the model has been given stronger semantic understanding and end-to-end information extraction capabilities, ensuring that no key information is missed.
[0188] 4. Temporal data regularization method based on prompt word engineering and large language model.
[0189] Unifying time formats improves data consistency and readability, laying a good foundation for subsequent data analysis. Through regularization, time data from different sources and formats can be standardized, improving overall data quality.
[0190] Figure 9 This is a second flow chart of the resume information extraction method provided in the embodiment of the present application.
[0191] like Figure 9 As shown, the resume information extraction method provided in the embodiment of the present application may include the following steps S601-S603.
[0192] S601: Determine whether the resume to be identified is a multi-part resume; wherein a multi-part resume refers to a resume to be identified that includes at least two information area blocks arranged side by side, each information area block including multiple text blocks, and the text blocks are determined by character recognition of the text content in the resume to be identified;
[0193] S602: If the resume to be identified is a multi-part resume, the text contents corresponding to the text blocks are arranged in order according to the different information area blocks to which the text blocks belong, to obtain the resume text;
[0194] S603: The resume text is divided into resume sub-texts and then input into different large models respectively, so that the different large models can extract key information from the corresponding resume sub-texts respectively.
[0195] Figure 10 A schematic diagram of the structure of the resume information extraction device provided in an embodiment of the present application.
[0196] like Figure 10 As shown, the embodiment of the present application provides a resume information extraction device 1100, which includes:
[0197] Identification module 1101 is configured to: determine whether the resume to be identified is a multi-part resume; wherein a multi-part resume refers to a resume to be identified that includes at least two information area blocks arranged side by side, each information area block including multiple text blocks, and the text blocks are determined by character recognition of the text content in the resume to be identified;
[0198] The resume text determination module 1102 is configured to: if the resume to be identified is a multi-part resume, arrange the text contents corresponding to the text blocks in order according to the different information area blocks to which the text blocks belong, to obtain the resume text;
[0199] The information extraction module 1103 is configured to: divide the resume text into resume sub-texts and input them into different large models respectively, so that the different large models can extract key information from the corresponding resume sub-texts.
[0200] In one possible implementation, the identification module 1101 is further configured to: divide multiple text blocks into rows based on the block coordinates of the text blocks; wherein the difference in row coordinates of text blocks located in the same row is less than a preset threshold; determine the gap area between adjacent text blocks in each row; traverse the gap area of each row, and when the gap areas of adjacent rows are continuous vertically, determine the vertically continuous gap areas as vertical cutting areas; based on the vertical cutting areas, determine whether the resume to be identified is a multi-part resume.
[0201] In one possible implementation, the identification module 1101 is further configured to: determine the middle dividing line of the vertical cutting area based on the coordinates of the vertical cutting area as a candidate layout cutting line; traverse each candidate layout cutting line to determine whether there is a candidate layout cutting line that meets the screening rules; wherein the screening rules include that the distance between the candidate layout cutting line and its adjacent text block is greater than a distance threshold, the height of the candidate layout cutting line in the resume to be identified is greater than a height threshold and / or the number of fields in the layout obtained based on the candidate layout cutting line is greater than a field threshold; in the case that there is a candidate layout cutting line that meets the screening rules, determine that the resume to be identified is a multi-copy resume; in the case that there is no candidate layout cutting line that meets the screening rules, determine that the resume to be identified is not a multi-copy resume.
[0202] In one possible implementation, the recognition module 1101 is further configured to: determine whether the resume to be recognized is in a picture format; if the resume to be recognized is not in a picture format, convert the resume to be recognized into a picture format; adjust the size of the resume to be recognized in a picture format to the marked size; perform optical character OCR recognition on the resume to be recognized to obtain a text block and its corresponding block coordinates.
[0203] In one possible implementation, the resume text determination module 1102 is further configured to: when the resume to be identified is not a multi-copy resume and when the resume to be identified is in a non-picture format, read the text in the resume to be identified as the resume text; when the resume to be identified is not a multi-copy resume and when the resume to be identified is in a picture format, determine the text obtained by character recognition of the resume to be identified as the resume text.
[0204] In one possible implementation, the resume information extraction device 1100 also includes a segmentation module 1104, which is specifically configured to: identify the text title in the resume to be identified based on the target detection algorithm; use regular expressions to perform regular matching on the text title to determine the information category corresponding to the text title; segment the resume text based on the text title to obtain the resume sub-text corresponding to each information category.
[0205] In one possible implementation, the information extraction module 1103 is specifically configured to: input multiple resume sub-texts into the large model corresponding to their information categories respectively; input corresponding prompt words into each large model, so that each large model extracts key information in the resume sub-text based on the prompt words.
[0206] In a possible implementation, the information extraction module 1103 is further configured to map the key information output by each large model into a target format to obtain a resume information file.
[0207] In a possible implementation, the information extraction module 1103 is further configured to modify the time data in the key information into a preset time format using the large model.
[0208] Figure 11 A schematic diagram of a computing device provided in an embodiment of the present application.
[0209] like Figure 11 As shown, the computing device may include a server, a terminal, or other devices; the computing device includes one or more processors 1201 and a memory 1202. The memory 1202 is configured to store one or more programs. When the one or more programs are executed by the one or more processors 1201, the one or more processors 1201 implement the resume information extraction method in the above embodiment.
[0210] Continue to see Figure 10 The computing device 1200 may further include: a communication interface (CommunicationsInterface) 1203 and a communication bus 1204.
[0211] The processor 1201, the memory 1202 and the communication interface 1203 communicate with each other via a communication bus 1204. The communication interface 1203 is used to communicate with other devices such as a client or other server network elements.
[0212] In some embodiments, one or more processors 1201 are configured to execute one or more programs 1205, specifically, to execute the relevant steps in the resume information extraction method embodiment described above. Specifically, the program 1205 may include program code, which includes computer-executable instructions.
[0213] For example, the processor 1201 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement some embodiments of the present application. The computing device 1200 may include one or more processors of the same type, such as one or more CPUs, or different types of processors, such as one or more CPUs and one or more ASICs.
[0214] In some embodiments, the memory 1202 is used to store one or more programs 1205. The memory 1202 may include a high-speed RAM memory, and may also include a non-volatile memory (NVM), such as at least one disk memory.
[0215] Program 1205 can be specifically called by processor 1201 to enable computing device 1200 to execute resume information extraction method operations.
[0216] Some embodiments of the present application provide a computer-readable storage medium storing at least one executable instruction. When the executable instruction is executed on a computing device 1200, the computing device 1200 executes the resume information extraction method in the above embodiment.
[0217] The executable instructions can be specifically used to enable the computing device 1200 to perform resume information extraction method operations.
[0218] For example, the computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a compact disc (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, and the like.
[0219] The beneficial effects that can be achieved by the readable storage medium provided in some embodiments of the present application can be referred to the beneficial effects of the corresponding resume information extraction method provided above, and will not be repeated here.
[0220] It should be noted that, in the application, relational terms such as first and second, etc. are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article, or apparatus comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.
[0221] Each embodiment in this specification is described in a related manner. Similar portions between the embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences from other embodiments. In particular, the device embodiments are generally similar to the method embodiments, so their description is relatively simple. For related portions, refer to the description of the method embodiments.
[0222] The logic and / or steps represented in the flowchart or otherwise described herein may be considered, for example, as an ordered list of executable instructions for implementing logical functions, and may be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus, or device (such as a computer-based system, a system including a processor, or other system that can fetch and execute instructions from an instruction execution system, apparatus, or device).
[0223] For the purposes of this specification, a "computer-readable medium" can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with an instruction execution system, apparatus, or device.
[0224] More specific examples (a non-exhaustive list) of computer-readable media include the following: an electrical connection having one or more wires (electronic device), a portable computer disk cartridge (magnetic device), random access memory (RAM), read-only memory (ROM), erasable and programmable read-only memory (EPROM or flash memory), fiber optic device, and a portable compact disc read-only memory (CDROM).
[0225] In addition, the computer readable medium can even be paper or other suitable medium on which the program can be printed, because the program can be obtained electronically, for example, by optically scanning the paper or other medium, and then editing, interpreting or processing it in other suitable ways as necessary, and then storing it in the computer memory. It should be understood that various parts of the present application can be implemented in hardware, software, firmware or a combination thereof.
[0226] In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented using hardware, as in another embodiment, any one of the following technologies known in the art or a combination thereof can be used: a discrete logic circuit having logic gate circuits for implementing logic functions on data signals, an application-specific integrated circuit having suitable combinational logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.
[0227] The implementation methods described above are only specific implementation methods of the present application and are not intended to limit the scope of protection of the present application. Any modifications, equivalent replacements, improvements, etc. made on the basis of the technical solution of the present application should be included in the scope of protection of the present application.
Claims
1. A resume information extraction method, characterized in that: include: Determining whether the resume to be identified is a multi-part resume; wherein the multi-part resume refers to the resume to be identified including at least two information area blocks arranged side by side, each of the information area blocks including multiple text blocks, the text blocks being determined by character recognition of the text content in the resume to be identified; In the case where the resume to be identified is a multi-part resume, the text contents corresponding to the text blocks are arranged in order according to the different information area blocks to which the text blocks belong, to obtain the resume text; The resume text is divided into resume sub-texts and then input into different large models respectively, so that different large models can extract key information from the corresponding resume sub-texts.
2. The resume information extraction method according to claim 1, characterized in that: Determining whether the resume to be identified is a multi-part resume includes: Based on the block coordinates of the text blocks, the plurality of text blocks are divided into rows; wherein the difference in row coordinates of the text blocks located in the same row is less than a preset threshold; Determine the gap area between adjacent text blocks in each line; Traversing the gap regions of each row, and in the case that the gap regions of adjacent rows are continuous in the vertical direction, determining the vertically continuous gap regions as vertically segmented regions; Based on the vertical segmentation area, determine whether the resume to be identified is a multi-part resume.
3. The resume information extraction method according to claim 2, characterized in that: The determining whether the resume to be identified is a multi-part resume based on the vertical segmentation area includes: Determine the middle dividing line of the vertical cutting area based on the coordinates of the vertical cutting area as a candidate layout cutting line; Traversing each of the candidate layout dividing lines to determine whether there is a candidate layout dividing line that meets the screening rules; wherein the screening rules include that the distance between the candidate layout dividing line and the adjacent text block is greater than a distance threshold, the height of the candidate layout dividing line in the resume to be identified is greater than a height threshold, and / or the number of fields in the layout obtained by dividing the candidate layout dividing line is greater than a field threshold; If there is a candidate page split line that meets the screening rule, determining that the resume to be identified is the multi-part resume; In the case that there is no candidate page dividing line that meets the screening rule, it is determined that the resume to be identified is not the multi-part resume.
4. The resume information extraction method according to claim 3, characterized in that: Before dividing the plurality of text blocks into rows based on the block coordinates of the text blocks, the method further includes: Determine whether the resume to be identified is in image format; If the resume to be identified is in a non-picture format, converting the resume to be identified into a picture format; Adjust the size of the resume to be identified in picture format to the marked size; Perform optical character recognition (OCR) on the resume to be recognized to obtain the text block and the corresponding block coordinates.
5. The resume information extraction method according to claim 1, characterized in that: Before the resume text is divided into resume sub-texts and inputted into different large models respectively, the process further includes: If the resume to be identified is not the multi-part resume and is in a non-picture format, reading text from the resume to be identified as the resume text; When the resume to be identified is not the multi-part resume and is in a picture format, the text obtained by performing character recognition on the resume to be identified is determined as the resume text.
6. The resume information extraction method according to claim 1, characterized in that: The method further comprises: Identify the text title in the resume to be identified based on the target detection algorithm; Perform regular matching on the text title using a regular expression to determine the information category corresponding to the text title; The resume text is segmented based on the text title to obtain the resume sub-text corresponding to each information category.
7. The resume information extraction method according to claim 6, characterized in that: The resume text is divided into resume sub-texts and then input into different large models respectively, including: Inputting the plurality of resume subtexts into the macro model corresponding to the information categories thereof respectively; Corresponding prompt words are input into each of the large models, so that each of the large models extracts the key information in the resume subtext based on the prompt words.
8. The resume information extraction method according to claim 1, characterized in that: After the resume text is divided into resume sub-texts and input into different large models respectively, the method includes: The key information output by each of the large models is mapped into a target format to obtain a resume information file.
9. The resume information extraction method according to any one of claims 1 to 8, characterized in that: The method further comprises: The large model is used to modify the time data in the key information into a preset time format.
10. A computing device, characterized in that include: one or more processors; as well as, a memory configured to: store one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the resume information extraction method according to any one of claims 1 to 9.
Citation Information
Patent Citations
Character recognition method and device
CN105989341A
RPA and AI combined image recognition method and device, computer equipment and medium
CN112381087A
Resume content extraction method and device
CN114997167A
Wireless table structure restoration method and device, computer equipment and storage medium
CN115618836A
Text recognition method and device, electronic equipment and storage medium
CN115719488A
Cited By
Standardized resume generation method and related equipment
CN121503457A