Resume matching method, device, electronic device and storage medium
By performing structural analysis and named entity recognition on job description texts, combining word vector models to expand keywords and generate job tags, the limitations of manually maintained tag libraries are overcome, and efficient resume matching and talent recommendation are achieved.
Patent Information
- Application Number
- CN202510999051.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-21
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2045-07-21
AI Technical Summary
In existing technologies, talent management platforms and resume matching systems rely on manual maintenance of labels, resulting in poor scalability, inability to effectively match emerging positions, and low resume matching accuracy and recommendation quality.
By performing structural analysis on the job description text, using the named entity recognition model to extract skills, experience and qualification keywords, and using the word vector model for semantic expansion, the job label is generated for resume matching.
It improves the automation and intelligence level of resume matching, enhances keyword coverage and matching accuracy, adapts to the flexibility and scalability of emerging positions, and improves the relevance and success rate of talent recommendations.
Smart Images

Figure CN120509862B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of text data processing, and in particular to a resume matching method, device, electronic device and storage medium. Background Art
[0002] Current talent management platforms and resume management systems generally rely on manually created tags to match resumes. System administrators predefine tag categories, keyword lists, and matching rules. They use word frequency, keyword dictionaries, and manual tagging to categorize job descriptions. These tags are then matched to terms found in resumes.
[0003] However, label maintenance relies on manual labor and has poor scalability. The keyword library and matching rules require long-term maintenance. When faced with emerging positions, there are often no labels available, resulting in low resume matching accuracy and recommendation quality. Summary of the Invention
[0004] This application aims to solve at least one of the technical problems existing in the prior art or related art.
[0005] To this end, this application provides a resume matching method. By performing structured parsing of job description text and utilizing a named entity recognition model, this method accurately extracts key competency requirements. Combined with semantic expansion technology, this method significantly improves keyword coverage and matching accuracy, significantly enhancing the automation and intelligence of the resume matching process and avoiding the limitations of traditional reliance on manually maintained tag libraries. This method offers excellent scalability and flexibility, particularly when addressing emerging positions and rapidly changing industry demands, thereby increasing the relevance and success rate of talent recommendations.
[0006] The present application also provides a resume matching device, electronic device and storage medium including the above resume matching method.
[0007] A resume matching method according to an embodiment of the first aspect of the present application includes: obtaining a job description text, wherein the job description text includes at least job requirement information;
[0008] Performing structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification requirements;
[0009] Extracting skill keywords, experience keywords, and qualification keywords from the sub-sentences using a named entity recognition model; the named entity recognition model distinguishes different types of entities based on predefined entity categories, the entity categories including at least: skill entity class, experience entity class, and qualification entity class;
[0010] Using a word vector model to semantically expand the skill keywords, experience keywords, and qualification keywords to obtain a keyword list; the word vector model is used to expand synonyms or near-synonyms;
[0011] A job tag is generated based on the keyword list, and the job tag is used as an input basis for a subsequent semantic matching model for accurate matching of subsequent resumes.
[0012] Optionally, the step of performing structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification conditions includes:
[0013] Performing paragraph classification on the job description text to identify the job requirement segment that carries job requirement information; the paragraph classification comprises dividing the job description text into a job introduction segment, a job requirement segment, a salary and benefits segment, and other segments using a text classification model;
[0014] Based on the rule matching method, regular expressions are used to identify the format of the numbered items in the position requirement section, and sub-statements are segmented to obtain sub-statements that carry skills, experience or qualification conditions.
[0015] Optionally, the steps of constructing the text classification model include:
[0016] Obtaining labeled job description paragraph samples, wherein the classification labels of the job description paragraph samples include job introduction paragraph, job requirements paragraph, salary and benefits paragraph, and other paragraphs;
[0017] Extract text features for each paragraph, wherein the text features include at least TF-IDF vector and paragraph start keyword features;
[0018] The extracted text features are input into the SVM classification model for training to obtain the text classification model.
[0019] Optionally, the step of constructing the named entity recognition model includes:
[0020] Defining entity categories, the entity categories at least including: skill entity class, experience entity class and qualification entity class;
[0021] Obtain historical job description text as training corpus and automatically annotate it; the automatic annotation includes: extracting high-frequency skill phrases from the training corpus within the same job category based on the TF-IDF algorithm and annotating them as skill entities; annotating content representing years of work experience in the training corpus as experience entities based on recognition rules that include numerical information; and annotating content related to education, major, certificate, and language in the training corpus as qualification entities based on recognition rules that include education, major, certificate, and language.
[0022] The annotated training corpus is input into a pre-trained language model as an encoder to generate a contextual representation for the input sub-sentences. The pre-trained language model is a BERT model.
[0023] Adding a conditional random field layer after the output of the encoder to model the transition relationship between the entity categories and output the most likely entity sequence;
[0024] The maximum likelihood method is used for training to obtain the named entity recognition model.
[0025] Optionally, the step of building the named entity recognition model further includes:
[0026] Set the model automatic training cycle to control the automatic iteration of the model;
[0027] When the model automatic training cycle is reached, the latest job description text is obtained as incremental corpus;
[0028] Use incremental corpus to incrementally train the historical named entity recognition model to generate updated model parameters.
[0029] Optionally, the step of using a word vector model to semantically expand the skill keywords, experience keywords, and qualification keywords to obtain a keyword list includes:
[0030] Input the skill keywords, experience keywords, and qualification keywords into the word vector model respectively to obtain the word vector corresponding to each keyword;
[0031] Based on the similarity calculation between word vectors, the words with similarity greater than the preset threshold are obtained as synonyms or near synonyms;
[0032] The obtained synonyms or near-synonyms are merged with the original keywords to obtain a keyword list.
[0033] Optionally, the step of generating a job tag based on the keyword list includes:
[0034] The skill keywords, experience keywords and qualification keywords in the keyword list are respectively mapped to a predefined job label template to generate a standardized job label; the job label template is a semantically unified data representation required in the subsequent semantic matching model.
[0035] A resume matching device according to an embodiment of the second aspect of the present application includes:
[0036] An acquisition module, configured to acquire a job description text, wherein the job description text at least includes job requirement information;
[0037] A parsing module, configured to perform structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification conditions;
[0038] an extraction module, configured to extract skill keywords, experience keywords, and qualification keywords from the sub-sentence using a named entity recognition model; the named entity recognition model distinguishes different types of entities based on predefined entity categories, the entity categories including at least: a skill entity class, an experience entity class, and a qualification entity class;
[0039] An expansion module, configured to perform semantic expansion on the skill keywords, experience keywords, and qualification keywords using a word vector model to obtain a keyword list; the word vector model is used to expand synonyms or near-synonyms;
[0040] The template module is used to generate a job tag based on the keyword list. The job tag is used as the input basis of the subsequent semantic matching model for accurate matching of subsequent resumes.
[0041] An electronic device according to an embodiment of the third aspect of the present application includes:
[0042] A processor and a memory, the memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to execute the method of the first aspect.
[0043] According to a fourth aspect of the present application, a computer-readable storage medium is provided, which is used to store a computer program, and the computer program enables a computer to execute the method of the first aspect.
[0044] One of the above technical solutions has at least the following advantages or beneficial effects:
[0045] A resume matching method for an embodiment of the present application includes: obtaining a job description text, wherein the job description text includes at least job requirement information; performing structural analysis on the job description text to obtain sub-sentences that carry skills, experience or qualification conditions; using a named entity recognition model to extract skill keywords, experience keywords and qualification keywords from the sub-sentences; the named entity recognition model is based on predefined entity categories to distinguish different types of entities, and the entity categories include at least: skill entity class, experience entity class and qualification entity class; using a word vector model to semantically expand the skill keywords, experience keywords and qualification keywords to obtain a keyword list; the word vector model is used to expand synonyms or near-synonyms; generating a job label based on the keyword list, and the job label is used as the input basis for a subsequent semantic matching model for subsequent resume accurate matching. This application can accurately extract key capability requirements by structurally analyzing the job description text and using a named entity recognition model, and significantly improves keyword coverage and matching accuracy in conjunction with semantic expansion technology, significantly improving the degree of automation and intelligence of the resume matching process, and avoiding the limitations of traditional reliance on manually maintained tag libraries. Especially when dealing with emerging positions and rapidly changing industry needs, it has good scalability and flexibility, thereby improving the relevance and success rate of talent recommendations.
[0046] A resume matching device, electronic device and storage medium provided in the embodiments of the present application are provided with the above-mentioned resume matching method. Since the resume matching method has the above-mentioned technical effects, a resume matching device, electronic device and storage medium provided with the resume matching method should also have corresponding technical effects. BRIEF DESCRIPTION OF THE DRAWINGS
[0047] In order to more clearly illustrate the technical solution of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0048] Figure 1 A flowchart of a resume matching method provided in an embodiment of the present application;
[0049] Figure 2 A schematic diagram of a flow chart for structurally parsing the job description text in a resume matching method provided in an embodiment of the present application;
[0050] Figure 3 A schematic diagram of a process for constructing a text classification model in a resume matching method provided in an embodiment of the present application;
[0051] Figure 4A schematic diagram of a process for constructing a named entity recognition model in a resume matching method provided in an embodiment of the present application;
[0052] Figure 5 A schematic diagram of a resume matching device provided in an embodiment of the present application is shown;
[0053] Figure 6 A schematic diagram of an electronic device provided in an embodiment of the present application is shown. DETAILED DESCRIPTION
[0054] The following embodiments are described in detail, with examples illustrated in the accompanying drawings. When the following description refers to the drawings, identical numbers in different figures represent identical or similar elements unless otherwise indicated. The embodiments described in the following embodiments are not intended to represent all possible implementations consistent with the present application. They are merely examples of systems and methods consistent with certain aspects of the present application, as detailed in the claims.
[0055] The following describes resume matching methods, devices, electronic devices, and storage media according to some embodiments of the present application with reference to the accompanying drawings.
[0056] See also Figures 1 to 6 The first embodiment of the present application provides a resume matching method, comprising:
[0057] S100: Acquire a job description text, where the job description text at least includes job requirement information.
[0058] Job descriptions are the raw input for analysis and processing by the resume matching system. They are obtained by accessing the talent management platform's database. Job descriptions typically include multiple sections, such as the job title, job description, responsibilities, requirements, salary and benefits, and location. For this application, we'll focus on the job requirements, as they are crucial for subsequent semantic matching of resumes.
[0059] For example, the job description text is obtained as follows:
[0060] Job Title: Java Development Engineer
[0061] Job Description:
[0062] We are an innovative company focusing on financial technology, committed to building a high-performance funds clearing and settlement platform.
[0063] Job Responsibilities:
[0064] 1. Participate in the architecture design and development of core systems;
[0065] 2. Maintain existing systems and optimize their functionality based on business needs;
[0066] 3. Write technical documentation and participate in code review and testing.
[0067] Job requirements:
[0068] 1. Bachelor degree or above, computer-related major;
[0069] 2. At least 3 years of Java development experience, familiar with mainstream frameworks such as Spring Boot and MyBatis;
[0070] 3. Familiar with database principles, master MySQL database design and tuning;
[0071] 4. Have good programming standards and teamwork skills;
[0072] 5. Applicants with financial industry development background are preferred.
[0073] Salary and benefits: 15K-25K / month, five insurances and one fund, holiday benefits, etc.
[0074] Work location: A science and technology park in Chaoyang District, Beijing.
[0075] S200: Performing structural analysis on the job description text to obtain sub-sentences that carry skills, experience, or qualification requirements.
[0076] In job descriptions, the job requirements section is typically unstructured natural language content, containing multiple parallel or compound sentences expressing the job requirements. To achieve efficient semantic extraction, it needs to be further parsed into independent, identifiable sub-sentence units. Each sub-sentence typically carries a specific skill, experience, or qualification, which then serves as the input unit for the named entity recognition model, improving extraction efficiency and classification accuracy.
[0077] In an illustrative embodiment, Figure 2 As shown, the step of performing structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification conditions includes:
[0078] S210: Perform paragraph classification on the job description text to identify the job requirement segment that carries the job requirement information; the paragraph classification is to divide the job description text into a job introduction segment, a job requirement segment, a salary and benefits segment, and other segments through a text classification model.
[0079] In this embodiment, the original job description text is structurally divided at the paragraph level to determine which paragraphs contain job responsibilities and which paragraphs specifically describe the job requirements. To this end, a text classification model is constructed, which inputs each paragraph of the input text as an independent sample and outputs the paragraph type label to which it belongs, including the position introduction paragraph, the job requirements paragraph, the salary and benefits paragraph, and other paragraphs. The text classification model is trained using the SVM classification model, and the input features include TF-IDF vectors, keywords at the beginning of the paragraph, etc. After the classification is completed, the system automatically identifies the paragraphs belonging to the job requirements paragraph.
[0080] For example, if you input the above job description text, you will get the job requirements section:
[0081] Job requirements:
[0082] 1. Bachelor degree or above, computer-related major;
[0083] 2. At least 3 years of Java development experience, familiar with mainstream frameworks such as Spring Boot and MyBatis;
[0084] 3. Familiar with database principles, master MySQL database design and tuning;
[0085] 4. Have good programming standards and teamwork skills;
[0086] 5. Applicants with a background in financial industry development are preferred.
[0087] In an illustrative embodiment, Figure 3 As shown, the steps of constructing the text classification model include:
[0088] S211: Obtain labeled job description paragraph samples, wherein the classification labels of the job description paragraph samples include job introduction section, job requirements section, salary and benefits section, and other sections;
[0089] S212: Extract text features for each paragraph, where the text features include at least a TF-IDF vector and a paragraph start keyword feature;
[0090] S213: Input the extracted text features into the SVM classification model for training to obtain the text classification model.
[0091] In this embodiment, a text classification model is constructed through supervised learning to effectively classify different paragraph types within job description texts. A training corpus is constructed using labeled job description paragraph samples. These job description paragraph samples can be manually labeled, with each paragraph sample assigned a predefined label. Label categories include at least job description paragraphs, job requirements paragraphs, salary and benefits paragraphs, and other paragraphs. Sample sources can include publicly available data from recruitment websites and historical job description texts in databases.
[0092] For example, the job description text is annotated as follows:
[0093] Table 1
[0094] Paragraph content Category Tags Job Title: Java Development Engineer Job Description Section Job Description: We are an innovative enterprise focusing on financial technology, committed to building a high-performance funds clearing and settlement platform. Job Description Section Job Responsibilities: 1. Participate in the architecture design and development of core systems; 2. Maintain existing systems and optimize functions according to business needs; 3. Write technical documentation and participate in code review and testing. Job Description Section Requirements: 1. Bachelor's degree or above in a computer science-related field; 2. At least three years of Java development experience, familiar with mainstream frameworks such as Spring Boot and MyBatis; ... Job requirements section Salary and benefits: 15K-25K / month, five insurances and one fund, holiday benefits, etc. Salary range Work location: A science and technology park in Chaoyang District, Beijing. Other paragraphs
[0095] This implementation extracts text features from each paragraph by combining statistical and structural semantic features. First, the TF-IDF algorithm is used to extract keyword weight information within a paragraph, reflecting the importance distribution of terms across different paragraphs. For example, terms like "Spring Boot," "MyBatis," and "Java" have higher weights in the job requirements section, while terms like "five social insurances and one housing fund" and "holiday benefits" have higher weights in the salary and benefits section. Second, keyword features at the beginning of each paragraph, such as "job title," "job description," "job responsibilities," "job requirements," "salary and benefits," and "work location," are extracted as structural cueing factors. The TF-IDF vector and the keyword features at the beginning of each paragraph are combined to form a vector representation of each paragraph.
[0096] The extracted text features are fed into a Support Vector Machine (SVM) classification model for training. The SVM classification model is a supervised learning model based on statistical learning theory and is widely used in fields such as text classification, image recognition, and medical diagnosis. It is particularly well-suited for high-dimensional, sparse data scenarios, such as paragraph classification in natural language processing. After training, the resulting text classification model can be used to classify paragraphs in unknown job descriptions, outputting the category of each paragraph and providing prior structural information for subsequent semantic structure analysis and keyword extraction.
[0097] Here is a Python code example showing how to use an SVM classification model to classify job description paragraphs:
[0098] import numpy as np
[0099] from sklearn.base import BaseEstimator, TransformerMixin
[0100] from sklearn.pipeline import Pipeline, FeatureUnion
[0101] from sklearn.feature_extraction.text import TfidfVectorizer
[0102] from sklearn.preprocessing import OneHotEncoder
[0103] from sklearn.svm import SVC
[0104] from sklearn.compose import ColumnTransformer
[0105] from sklearn.preprocessing import FunctionTransformer
[0106] # Example data
[0107] texts = [
[0108] Job Description: We are an innovative company focused on financial technology, dedicated to building a high-performance funds clearing and settlement platform.
[0109] "Job requirements: 1. Bachelor degree or above, computer-related major;",
[0110] 2. At least 3 years of Java development experience, familiar with mainstream frameworks such as Spring Boot and MyBatis;
[0111] Salary: 15,000-25,000 yuan / month, five insurances and one fund, holiday benefits, etc. ]
[0113] labels = ["Position Introduction Section", "Position Requirements Section", "Position Requirements Section", "Salary Benefits Section"]
[0114] # Customize the extraction of the first word of a paragraph (such as the first 5 characters)
[0115] def extract_leading_keyword(X):
[0116] return np.array([[x.strip()[:5]] for x in X])
[0117] # Feature combination: first-sentence keyword + TF-IDF
[0118] leading_keyword_pipe = Pipeline([
[0119] ('extract', FunctionTransformer(extract_leading_keyword, validate=False)),
[0120] ('onehot', OneHotEncoder(handle_unknown='ignore')) ])
[0122] combined_features = FeatureUnion([
[0123] ('tfidf', TfidfVectorizer()),
[0124] ('leading_keyword', leading_keyword_pipe) ])
[0126] # Build the final pipeline
[0127] model = Pipeline([
[0128] ('features', combined_features),
[0129] ('clf', SVC(kernel='linear')) ])
[0131] # Model training
[0132] model.fit(texts, labels)
[0133] # Test predictions
[0134] new_paragraphs = [
[0135] "Have good communication skills and teamwork spirit;",
[0136] "The company is located in Chaoyang District, Beijing, and the office environment is comfortable." ]
[0138] predictions = model.predict(new_paragraphs)
[0139] # Output
[0140] for p, pred in zip(new_paragraphs, predictions):
[0141] print(f"Paragraph: {p}\nPrediction classification: {pred}\n")
[0142] Example output:
[0143] Paragraph: Have good communication skills and teamwork spirit;
[0144] Prediction classification: Job requirements segment
[0145] Paragraph: The company is located in Chaoyang District, Beijing, with a comfortable office environment.
[0146] Prediction classification: Job description segment
[0147] S220: Based on a rule matching method, a regular expression is used to identify the format of the numbered items in the position requirement segment, and sub-statements are segmented to obtain sub-statements that carry skills, experience or qualification conditions.
[0148] Since the job requirement paragraph generally has a fixed numbered item format, such as "1.", "(1)", "●", etc., rule matching can be used to perform sub-statement segmentation. Regular expressions are used to match the numbering format in the paragraph to identify the requirement points in the job requirement paragraph, and this is used as the cutting point of the sub-statement to perform the sub-statement segmentation operation. In this way, each sub-statement can correspond to a complete skill requirement, experience description or qualification condition, and is the basic input unit of the subsequent named entity recognition model. Regular expression segmentation combined with the numbered item structure has the characteristics of simple implementation and strong versatility, and can quickly adapt to the job formats released by various companies. The refined sub-statements facilitate semantic analysis and entity extraction in the subsequent processing flow, which helps to build a highly accurate semantic labeling system, thereby improving the intelligence level of the overall resume matching system.
[0149] Taking Python as an example, the implementation is as follows:
[0150] import re
[0151] 1. Bachelor degree or above, computer related major;
[0152] 2. At least 3 years of Java development experience, familiar with mainstream frameworks such as Spring Boot and MyBatis;
[0153] 3. Familiar with database principles, master MySQL database design and tuning;
[0154] 4. Have good programming standards and teamwork skills;
[0155] 5. Applicants with a background in financial industry development are preferred.
[0156] # Use regular expression for segmentation
[0157] parts = re.split(r"\d+\.\s*", text)[1:] # The first one is an empty string, skip
[0158] parts = [p.strip(";。; \n") for p in parts] # remove the ending symbol
[0159] for i, clause in enumerate(parts, 1):
[0160] print(f"Substatement {i}: {clause}")
[0161] Output:
[0162] Sub-clause 1: Bachelor degree or above, computer-related major
[0163] Sub-statement 2: At least 3 years of Java development experience, familiar with mainstream frameworks such as Spring Boot and MyBatis
[0164] Sub-statement 3: Familiar with database principles and master MySQL database design and tuning
[0165] Sub-statement 4: Have good programming standards and teamwork skills
[0166] Sub-statement 5: Candidates with financial industry development background are preferred
[0167] To improve parsing accuracy, the system can also perform simplicity checks to remove blank items or abnormal formatting to ensure that the input sentence has independent semantics.
[0168] S300: Using a named entity recognition model, extract skill keywords, experience keywords and qualification keywords from the sub-sentences; the named entity recognition model distinguishes different types of entities based on predefined entity categories, and the entity categories include at least: skill entity class, experience entity class and qualification entity class.
[0169] Job requirements typically contain multiple subclauses, covering competency requirements at different levels. To achieve high-precision resume matching, key competency information from these subclauses must be structured and extracted. Specifically, these keywords must be extracted: skill keywords related to technical capabilities, experience keywords related to work experience, and qualification keywords related to academic qualifications / qualification standards. These keywords can then be automatically identified and classified using a named entity recognition (NER) model.
[0170] In an illustrative embodiment, Figure 4 As shown, the steps of constructing the named entity recognition model include:
[0171] S310: defining entity categories, wherein the entity categories include at least: skill entity class, experience entity class, and qualification entity class;
[0172] S320: Obtain historical job description texts as training corpus and automatically annotate them; the automatic annotation includes: extracting high-frequency skill phrases from the training corpus within the same job category based on the TF-IDF algorithm and annotating them as skill entities; annotating content representing years of work experience in the training corpus as experience entities based on recognition rules that include numerical information; and annotating content related to education, major, certificate, and language in the training corpus as qualification entities based on recognition rules that include academic qualifications, majors, certificates, and languages;
[0173] S330: Inputting the annotated training corpus into a pre-trained language model as an encoder to generate a contextual representation for the input sub-sentences, wherein the pre-trained language model is a BERT model;
[0174] S340: Adding a conditional random field layer after the output of the encoder to model the transfer relationship between the entity categories and output the most likely entity sequence;
[0175] S350: Using the maximum likelihood method for training to obtain the named entity recognition model.
[0176] This implementation builds a named entity recognition (NER) model based on the BERT+CRF architecture to automatically extract and classify keywords from job requirement sub-sentences. The specific process is as follows:
[0177] Define entity categories for training, including but not limited to skill entity classes, experience entity classes, and qualification entity classes. The annotation labels corresponding to each entity category can be encoded in BIO format. For example, "B-SKILL" represents the starting word of the skill entity, "I-SKILL" represents the internal word of the skill entity, and "O" represents the non-entity part. Skill entities are used to represent the technical capabilities, tool mastery, and platform experience required for a position. Skill entities are typically represented by proper nouns or technical phrases, often co-occurring with words like "familiar," "mastered," and "capable of...". They are highly industry-specific and often recur within the same job category, for example, Java, Python, C++, and SQL. Therefore, they can be identified using the TF-IDF algorithm. Experience entities are primarily used to express a candidate's work experience in time, tasks, projects, and human resource management. Experience entities are often composed of numerals and words like "experience," "projects," and "years." Sentence structures such as "at least," "possess," and "have..." are also common, such as "3 years," "5 years or more," and "2 years of R&D experience." Therefore, they can be identified using recognition rules that include numerical information. Qualification entities are used to identify the academic qualifications, professional background, certifications, and language proficiency requirements for a position. Qualification entities often appear in conjunction with the semantics of job requirements, such as "must have..." academic qualifications," "major in..."," and "priority given to..." certificates. Therefore, they can be identified using recognition rules that include academic qualifications, majors, certificates, and language skills.
[0178] Obtain historical job description texts. Since job categories, such as data analyst and front-end developer, are selected in the system when recruitment information is entered, job requirement segments within the same job category can be extracted and a job cluster corpus pool can be constructed.
[0179] Skill entity classes are annotated: The TF-IDF algorithm is used to calculate the word frequency and inverse document frequency of all job requirements for the same position. Technical terms representative of the position, such as "Python," "Java," "SpringBoot," "MyBatis," and "MySQL," are selected and assembled into a skill dictionary for that position. For each document to be annotated, the text is traversed, matching skill phrases in the skill dictionary and performing word-level BIO sequence annotation.
[0180] Taking Python as an example, the implementation is as follows:
[0181] from sklearn.feature_extraction.text import TfidfVectorizer
[0182] import pandas as pd
[0183] # Example: Front-end development job description corpus (sample text)
[0184] corpus = [
[0185] "Familiar with Vue.js, Element UI, and Webpack packaging tools."
[0186] "Master the basic syntax of JavaScript, HTML5, and CSS3, and be able to develop web pages independently.",
[0187] "Experience with React and Echarts, and familiar with Git version control.",
[0188] "Understand data visualization tools such as Tableau and AntV G2.",
[0189] "Proficient in front-end engineering processes and CI / CD configuration." ]
[0191] # Initialize the TF-IDF vectorizer, preserve word case, and allow phrase recognition
[0192] vectorizer = TfidfVectorizer(
[0193] token_pattern=r"(?u)\b[\w\. / +#-]+\b", # Support technical term format
[0194] lowercase=False,
[0195] ngram_range=(1, 2), # supports phrases, such as "Element UI", "AntV G2"
[0196] min_df=1 )
[0198] # Calculate TF-IDF matrix
[0199] tfidf_matrix = vectorizer.fit_transform(corpus)
[0200] feature_names = vectorizer.get_feature_names_out()
[0201] # Convert the result to DataFrame to view the TF-IDF value
[0202] df_tfidf = pd.DataFrame(tfidf_matrix.toarray(), columns=feature_names)
[0203] # Calculate the maximum TF-IDF value of each word (across corpora)
[0204] max_scores = df_tfidf.max(axis=0)
[0205] # Set a threshold to filter keywords (example threshold: 0.5)
[0206] keywords = max_scores[max_scores > 0.5].sort_values(ascending=False)
[0207] skill_keywords = list(keywords.index)
[0208] # Output results
[0209] print("Automatically extracted skill keyword dictionary:")
[0210] for kw in skill_keywords:
[0211] print(f"-{kw}")
[0212] Output:
[0213] Automatically extracted skill keyword dictionary:
[0214] - Vue.js
[0215] - JavaScript
[0216] - Element UI
[0217] - HTML5
[0218] - CSS3
[0219] - Webpack
[0220] - React
[0221] - Echarts
[0222] - Git
[0223] - Tableau
[0224] -AntV G2
[0225] - CI / CD
[0226] Label the empirical entity class: Use regular expressions to set recognition rules that contain numerical information, for example:
[0227] Table 2
[0228] Expression Regular Example "3 years", "5 years or more" \d+years(or more)? "Two years", "one and a half years" [one, two, three, four, five, six, seven, eight, nine, ten, hundred, thousand] + year (and a half)? "X+ years of experience" \d+years+.*?Experience
[0229] Regular expressions containing numerical information can identify structures containing years of service. They can also further identify contextual cues that co-occur with the years of service, including "experience," "background," "project," and "lead a team." They can also determine whether they are preceded by words like "at least," "have," "have," and "require." If these numerical expressions and semantic trigger words form a continuous phrase, the entire entity is labeled as an experience-related entity.
[0230] For example, the system first identifies "at least three years of Java development experience" using the rule "\d+year(above)" and combines it with the context "at least," "Java," and "development experience" to form the complete phrase "three years of Java development experience." This phrase will be annotated as "B-EXP, I-EXP, I-EXP, I-EXP." Similarly, "experience leading a team," "experience implementing large-scale projects," and "more than five years of backend development experience" will also be identified using the rule template and annotated as experience-related entities.
[0231] Labeling the qualification entity class: using regular expressions to construct recognition rules for the four dimensions of academic qualifications, professional background, qualification certification, and language ability, specifically including:
[0232] For academic qualifications, regular expressions are used to identify keywords such as "undergraduate", "master", "doctor", etc., and are positioned in combination with modifying structures such as "education", "degree", and "educational background". Typical matching sentences include "undergraduate degree or above", "with a master's degree", etc.
[0233] For professional background, regular expressions are used to identify phrases such as "XXX related majors" and "XXX majors". Common structures include "The major studied is...", "Related professional background", "Professional direction is...", etc. For example:
[0234] Table 3
[0235] Sample text Regular expression templates "Computer-related majors", "Finance majors" [\u4e00-\u9fa5A-Za-z]+(Related)?Professional "My major is Automation" and "My major is AI" What is your major? What is your major? "Have a professional background in communications engineering" .*?Professional background, .*?Professional requirements
[0236] Similarly, for certificates and language proficiency, regular rules are used to match "hold a certificate of...", "pass an exam of...", "CET-6", "CFA", "PMP", "teacher qualification certificate", etc. For example, in the sub-sentence "Bachelor's degree or above, computer-related major, CET-6 preferred", the system will identify and mark the following entities:
[0237] “Bachelor’s degree or above” is marked consecutively as “B-QUAL, I-QUAL, I-QUAL”;
[0238] “Computer-related majors” are marked as “B-QUAL, I-QUAL, I-QUAL” consecutively;
[0239] “CET-6” is marked as “B-QUAL, I-QUAL” consecutively.
[0240] By obtaining historical job description texts as training corpus and combining it with a rule-driven automatic tagging method based on job clustering semantic features, the method has the following advantages: through TF-IDF keyword extraction and professional structure rules based on job category clustering, the generated tagging dictionary is customized for each job type and can flexibly adapt to the language style and content differences of various job descriptions such as "front-end development", "algorithm engineer", and "human resources specialist"; the automatic tagging logic integrates multi-dimensional recognition strategies such as word frequency statistics, regular patterns, and sentence semantics, and can accurately extract multi-granular expressions such as "more than three years of work experience", "CET-6", "computer-related majors", and "Spring Boot framework", ensuring that the label quality meets the training requirements of the supervised learning model; the automatic tagging rules and dictionary system can be updated in real time according to the corpus to adapt to the evolution trend of the job description language, giving the model the ability to continuously self-optimize and providing basic support for subsequent automatic incremental learning.
[0241] After entity annotation, the text is fed into the BERT pre-trained language model as an encoder. The BERT model, based on a multi-layer Transformer architecture, generates context-aware semantic representations of input word sequences, making it suitable for job descriptions with complex linguistic structures.
[0242] A conditional random field (CRF) structure is connected to the BERT encoder output as a decoder to model the label sequence. This CRF layer is used to capture dependencies between labels, for example, preventing illegal label combinations such as "I-EXP" without "B-EXP" before it. The optimal entity sequence is output through the Viterbi algorithm.
[0243] During training, the maximum likelihood method was used to optimize the CRF layer parameters, using the annotated corpus as a supervisory signal to minimize the difference between the predicted sequence and the true annotated sequence. Ultimately, a named entity recognition model with entity recognition capabilities was developed. It can automatically output annotations containing skills, experience, and qualifications keywords for any job description subsentence, which can be used for subsequent resume semantic matching.
[0244] In an exemplary embodiment, the step of constructing the named entity recognition model further includes:
[0245] Set the model automatic training cycle to control the automatic iteration of the model;
[0246] When the model automatic training cycle is reached, the latest job description text is obtained as incremental corpus;
[0247] Use incremental corpus to incrementally train the historical named entity recognition model to generate updated model parameters.
[0248] In this embodiment, the cycle parameters for automatic model training are pre-set, and the cycle can be set according to the time dimension, such as monthly, quarterly, semi-annual, etc. After the automatic training cycle is reached, the system automatically captures the latest collected job description text and screens out high-quality new corpus as incremental training data for the named entity recognition model in accordance with the above steps S200-S300. The incremental training data will automatically annotate the existing skills, experience, and qualification rule systems in accordance with the above step S320, maintaining the BIO tag format consistent with the original training corpus. Based on the existing named entity recognition model parameters, incremental training operations are performed in combination with the incremental training data. The training process adopts a breakpoint loading strategy, that is, on the basis of retaining the semantics of the old model, the model's recognition ability for newly added expressions is optimized through a small number of training rounds, thereby avoiding catastrophic forgetting of the model. The new model parameters generated by each incremental training will be automatically saved as an independent version. The system supports version selection or rollback based on the performance evaluation of the validation set to ensure that the online model meets the expected requirements in terms of accuracy, stability and performance. Through the above-mentioned automatic incremental training mechanism, this application can achieve continuous optimization and real-time evolution of the named entity recognition model, ensure that the model can adapt to the evolution trend of job description expression, and enhance the long-term stability, scalability and industry adaptability of the entity recognition system.
[0249] S400: Using a word vector model to perform semantic expansion on the skill keywords, experience keywords, and qualification keywords to obtain a keyword list; the word vector model is used to expand synonyms or near-synonyms.
[0250] Different companies or recruiters may use different expressions for the same concept in job descriptions, such as "bachelor's degree" versus "university degree," "Java" versus "J2EE," etc. By expanding entity keywords through word embedding models, we can identify and incorporate a large number of semantically similar words, greatly improving the system's ability to process synonyms and near-synonyms.
[0251] In an exemplary embodiment, the step of using a word vector model to semantically expand the skill keywords, experience keywords, and qualification keywords to obtain a keyword list includes:
[0252] Input the skill keywords, experience keywords, and qualification keywords into the word vector model respectively to obtain the word vector corresponding to each keyword;
[0253] Based on the similarity calculation between word vectors, the words with similarity greater than the preset threshold are obtained as synonyms or near synonyms;
[0254] The obtained synonyms or near-synonyms are merged with the original keywords to obtain a keyword list.
[0255] In this embodiment, the skill keywords, experience keywords and qualification keywords are respectively input into the word vector model to obtain the word vector representation corresponding to each keyword. The word vector model is a pre-trained semantic embedding model that can map each word to a vector point in a high-dimensional vector space with consistent dimensions. Optionally, the word vector model can be Word2Vec, FastText, GloVe or a domain self-training model. The word vector model is calculated based on the cosine similarity between word vectors to determine the semantic proximity between the current keyword and other terms in the word vector vocabulary. When the similarity between a certain term and the target keyword is greater than a set threshold (such as 0.65), the term is regarded as a synonym or near-synonym of the keyword. All the synonyms or near-synonyms obtained are merged with the original keyword to form a keyword list covering a wider range of expressions. This keyword list can be used for subsequent resume information matching, semantic index construction, entity recognition recall optimization and other tasks, significantly improving the coverage and accuracy of semantic matching.
[0256] For example, if the original skill keyword is "JavaScript," the word embedding model can expand to include similar terms such as "JS," "ECMAScript," "TypeScript," and "Node.js," with the similarity between "JS" and "JavaScript" reaching 0.85. Another example is that the qualification keyword corresponding to "undergraduate degree" can be expanded to include "bachelor's degree," "university degree," and "four-year university." These expanded terms are added to the keyword list and treated as semantically equivalent in subsequent tasks, participating in the matching analysis between resumes and positions.
[0257] Through the above-mentioned semantic expansion process, the richness and coverage of keyword expressions can be enhanced, the diversity of job terms can be adapted, and the semantic understanding and generalization capabilities of downstream resume matching and information extraction systems can be significantly improved.
[0258] S500: Generate a job tag based on the keyword list. The job tag is used as an input basis for a subsequent semantic matching model for accurate matching of subsequent resumes.
[0259] In actual resume matching tasks, the system uses job labels as the input basis of semantic matching models (such as deep semantic matching networks, BERT text matching models, etc.), aligns and matches them with structured resume labels or entity sequences, and calculates matching scores or similarities to assist in intelligent recommendations and candidate screening.
[0260] In an exemplary embodiment, the step of generating a job tag based on the keyword list includes:
[0261] The skill keywords, experience keywords and qualification keywords in the keyword list are respectively mapped to a predefined job label template to generate a standardized job label; the job label template is a semantically unified data representation required in the subsequent semantic matching model.
[0262] In this embodiment, a position label template is first constructed. The template is a multi-field structured form, usually including but not limited to: skill label field (Skills), experience label field (Experience), and qualification label field (Qualification). Each field is used to carry the corresponding standardized entity content to ensure that the position semantic data has a unified structure and consistent semantic granularity during the matching model input stage.
[0263] The keyword list is standardized, and based on the field definition in the job tag template, the keywords are mapped to the corresponding fields according to their types. The mapping process may include: alias normalization, such as mapping "JS" to "JavaScript"; label term normalization, such as mapping "project experience" to "project delivery experience"; preset label alignment, such as mapping "English Level 6" to "CET-6", etc.
[0264] The mapped label fields are organized into a unified data structure and are used by the semantic matching model in the form of JSON, vector, sequence, etc. For example, in JSON form:
[0265] {
[0266] "Skills": ["Java", "Spring Boot", "MySQL"],
[0267] "Experience": ["3 years of development experience", "Large-scale system design background"],
[0268] "Qualification": ["Bachelor's degree", "Computer Science", "CET-6"]
[0269] }
[0270] Original job descriptions suffer from diverse expressions and inconsistent structures. By building a unified job label template structure and mapping keywords to corresponding fields, we achieve standardization and fieldization of semantic units, enabling the system to consistently understand and process the core semantic content of different texts across positions and industries. Compared to directly using raw text or unstructured keyword sets as model input, structured job labels provide the semantic matching model with clear semantic boundaries and data alignment, effectively reducing the risk of model misunderstanding and improving matching accuracy and stability.
[0271] like Figure 5 As shown, the second embodiment of the present application provides a resume matching device, including:
[0272] An acquisition module, configured to acquire a job description text, wherein the job description text at least includes job requirement information;
[0273] A parsing module, configured to perform structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification conditions;
[0274] an extraction module, configured to extract skill keywords, experience keywords, and qualification keywords from the sub-sentence using a named entity recognition model; the named entity recognition model distinguishes different types of entities based on predefined entity categories, the entity categories including at least: a skill entity class, an experience entity class, and a qualification entity class;
[0275] An expansion module, configured to perform semantic expansion on the skill keywords, experience keywords, and qualification keywords using a word vector model to obtain a keyword list; the word vector model is used to expand synonyms or near-synonyms;
[0276] The template module is used to generate a job tag based on the keyword list. The job tag is used as the input basis of the subsequent semantic matching model for accurate matching of subsequent resumes.
[0277] like Figure 6 As shown, the third embodiment of the present application provides an electronic device, including:
[0278] A memory and a processor, wherein the memory is used to store a computer program and transmit the program code to the processor. In other words, the processor can call and run the computer program from the memory to implement the method in the embodiment of the present application.
[0279] For example, the processor may be configured to execute the above method embodiments according to instructions in the computer program.
[0280] In some embodiments of the present application, the processor may include but is not limited to:
[0281] General-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0282] In some embodiments of the present application, the memory includes but is not limited to:
[0283] Volatile memory and / or non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus random access memory (DR RAM).
[0284] In some embodiments of the present application, the computer program may be divided into one or more modules, which are stored in the memory and executed by the processor to perform the method provided by the present application. The one or more modules may be a series of computer program instruction segments capable of performing specific functions, and the instruction segments are used to describe the execution process of the computer program in the controller.
[0285] The electronic device may further include:
[0286] A transceiver may be connected to the processor or the memory.
[0287] The processor may control the transceiver to communicate with other devices, specifically, to send data to other devices or receive data sent by other devices. The transceiver may include a transmitter and a receiver. The transceiver may further include an antenna, which may be one or more.
[0288] It should be understood that the various components in the electronic device are connected via a bus system, wherein the bus system includes not only a data bus but also a power bus, a control bus and a status signal bus.
[0289] A fourth aspect of the present application also provides a computer storage medium having a computer program stored thereon, which, when executed by a computer, enables the computer to perform the method of the aforementioned method embodiment. In other words, an embodiment provided by the present application also provides a computer program product comprising instructions, which, when executed by a computer, enables the computer to perform the method of the aforementioned method embodiment.
[0290] When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the embodiments of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, hard disk, magnetic tape), an optical medium (e.g., a digital video disc (DVD)), or a semiconductor medium (e.g., a solid-state drive (SSD)).
[0291] Those skilled in the art will appreciate that the modules and algorithm steps of each example described in conjunction with the embodiments applied for herein can be implemented with electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0292] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or modules, which can be electrical, mechanical or other forms.
[0293] It should be noted that the terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequential order. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can, for example, be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0294] In the description of this specification, the description of the terms "one embodiment", "some embodiments", "embodiment", "exemplary embodiment", "example", "specific example" or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present application. In this specification, the schematic expressions of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine different embodiments or examples described in this specification and the features of different embodiments or examples, unless they are contradictory.
[0295] Although the embodiments of the present application have been shown and described above, it can be understood that the above embodiments are exemplary and cannot be understood as limitations on the present application. Ordinary technicians in this field can change, modify, replace and modify the above embodiments within the scope of the present application.
Claims
1. A resume matching method, characterized in that: Obtaining a job description text, wherein the job description text at least includes job requirement information; Performing structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification requirements; Using a named entity recognition model, extracting skill keywords, experience keywords, and qualification keywords from the sub-sentences; The named entity recognition model is to distinguish different types of entities based on predefined entity categories, wherein the entity categories include at least: skill entity class, experience entity class and qualification entity class; The steps of constructing the named entity recognition model include: Defining entity categories, the entity categories at least including: skill entity class, experience entity class and qualification entity class; Obtain historical job description text as training corpus and automatically annotate it; the automatic annotation includes: extracting high-frequency skill phrases from the training corpus within the same job category based on the TF-IDF algorithm and annotating them as skill entities; annotating content representing years of work experience in the training corpus as experience entities based on recognition rules that include numerical information; and annotating content related to education, major, certificate, and language in the training corpus as qualification entities based on recognition rules that include education, major, certificate, and language. The annotated training corpus is input into a pre-trained language model as an encoder to generate a contextual representation for the input sub-sentences. The pre-trained language model is a BERT model. Adding a conditional random field layer after the output of the encoder to model the transition relationship between the entity categories and output the most likely entity sequence; Using the maximum likelihood method for training to obtain the named entity recognition model; Using a word vector model to semantically expand the skill keywords, experience keywords, and qualification keywords to obtain a keyword list; the word vector model is used to expand synonyms or near-synonyms; A job tag is generated based on the keyword list, and the job tag is used as an input basis for a subsequent semantic matching model for accurate matching of subsequent resumes.
2. A resume matching method according to claim 1, characterized in that: The step of performing structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification conditions includes: Performing paragraph classification on the job description text to identify the job requirement segment that carries job requirement information; the paragraph classification comprises dividing the job description text into a job introduction segment, a job requirement segment, a salary and benefits segment, and other segments using a text classification model; Based on the rule matching method, regular expressions are used to identify the format of the numbered items in the position requirement section, and sub-statements are segmented to obtain sub-statements that carry skills, experience or qualification conditions.
3. A resume matching method according to claim 2, characterized in that: The steps of constructing the text classification model include: Obtaining labeled job description paragraph samples, wherein the classification labels of the job description paragraph samples include job introduction paragraph, job requirements paragraph, salary and benefits paragraph, and other paragraphs; Extract text features for each paragraph, wherein the text features include at least TF-IDF vector and paragraph start keyword features; The extracted text features are input into the SVM classification model for training to obtain the text classification model.
4. A resume matching method according to claim 1, characterized in that: The step of constructing the named entity recognition model further includes: Set the model automatic training cycle to control the automatic iteration of the model; When the model automatic training cycle is reached, the latest job description text is obtained as incremental corpus; Use incremental corpus to incrementally train the historical named entity recognition model to generate updated model parameters.
5. A resume matching method according to claim 1, characterized in that: The step of using a word vector model to semantically expand the skill keywords, experience keywords, and qualification keywords to obtain a keyword list includes: Input the skill keywords, experience keywords, and qualification keywords into the word vector model respectively to obtain the word vector corresponding to each keyword; Based on the similarity calculation between word vectors, the words with similarity greater than the preset threshold are obtained as synonyms or near synonyms; The obtained synonyms or near-synonyms are merged with the original keywords to obtain a keyword list.
6. A resume matching method according to claim 1, characterized in that: The step of generating a job tag based on the keyword list includes: The skill keywords, experience keywords and qualification keywords in the keyword list are respectively mapped to a predefined job label template to generate a standardized job label; the job label template is a semantically unified data representation required in the subsequent semantic matching model.
7. A resume matching device, characterized in that: include: An acquisition module, configured to acquire a job description text, wherein the job description text at least includes job requirement information; A parsing module, configured to perform structural analysis on the job description text to obtain sub-sentences carrying skills, experience or qualification conditions; an extraction module, configured to extract skill keywords, experience keywords, and qualification keywords from the sub-sentences using a named entity recognition model; The named entity recognition model is to distinguish different types of entities based on predefined entity categories, wherein the entity categories include at least: skill entity class, experience entity class and qualification entity class; The steps of constructing the named entity recognition model include: Defining entity categories, the entity categories at least including: skill entity class, experience entity class and qualification entity class; Obtain historical job description text as training corpus and automatically annotate it; the automatic annotation includes: extracting high-frequency skill phrases from the training corpus within the same job category based on the TF-IDF algorithm and annotating them as skill entities; annotating content representing years of work experience in the training corpus as experience entities based on recognition rules that include numerical information; and annotating content related to education, major, certificate, and language in the training corpus as qualification entities based on recognition rules that include education, major, certificate, and language. The annotated training corpus is input into a pre-trained language model as an encoder to generate a contextual representation for the input sub-sentences. The pre-trained language model is a BERT model. Adding a conditional random field layer after the output of the encoder to model the transition relationship between the entity categories and output the most likely entity sequence; Using the maximum likelihood method for training to obtain the named entity recognition model; An expansion module, configured to perform semantic expansion on the skill keywords, experience keywords, and qualification keywords using a word vector model to obtain a keyword list; the word vector model is used to expand synonyms or near-synonyms; The template module is used to generate a job tag based on the keyword list. The job tag is used as the input basis of the subsequent semantic matching model for accurate matching of subsequent resumes.
8. An electronic device, characterized in that: include: A processor and a memory, the memory being used to store a computer program, and the processor being used to call and run the computer program stored in the memory to execute the method according to any one of claims 1 to 6.
9. A computer-readable storage medium, characterized in that Used to store a computer program, wherein the computer program causes a computer to execute the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Text analysis method and device suitable for man-post matching recommendation system
CN111125343A
Method, system and equipment for mining skill entities in recruitment field
CN116776879A