# A New Approach to Information Extraction in User-Centric E-Recruitment Systems
## 3 The SAJ System
### Entity Extraction  
The segmented job description is forwarded for entity extraction. With the help of the NLP technique, this component first extracts all sentences from the text and then marks each token/word with its respective Part of Speech (POS) tag such as noun, verb, or adjective. Penn TreeBank ([[http://www.anc.org/oanc/penn.html](http://www.anc.org/oanc/penn.html)]([http://www.anc.org/oanc/penn.html](http://www.anc.org/oanc/penn.html))) is used for marking, with labels, such as, JJ for an adjective, NN for singular noun, CD for a cardinal number. The POS tags are mandatory for extracting compound words [29], such as'software development'.  
The compound word extraction uses a set of rules. The rules are designed using knowledge of words construction from English dictionaries and in-depth analysis of scientific and technical English texts. The rules were validated by English literature experts, few sample rules are shown in Table 2 with explanations, and detailed rules available in Ref. [51].  
\begin{table}
\begin{tabular}{c c} \hline \hline \multicolumn{2}{c}{**Segmentation Rules**} \\ \hline
**Rule** & **Description** \\ \hline text.sentence.index == 1 & Job title as the first line of text \\ \hline text.sentence.token \textless{} 4 & Heading line has no other text \\ \hline \multicolumn{2}{c}{**Extraction Rule**} \\ \hline
**Rule** & **Description** \\ \hline Rule:expDurationForSkill & The rules detects experience \\ (Token.kind==number & for a skill, e.g., 2+ years of \\ Token.string==“+“SpaceToken & experience is required in Java \\ (Token.string==”years” & \\ 1’Token.string==“yrs”):exp \textless{} \\ :exp.ExpDuration & \\ = rule = “expDurationForSkill” & \\ \hline \hline \end{tabular}
\end{table}
Table 1: Sample rules designed for segmentation and extraction with description.  
Besides the identification of compound words, POS tags also help in identifying cardinals, such as '_1_' or '_three_'. The identification of cardinals has an impact on text search results, e.g., Java with two years of experience. Here, two is a cardinal that represents the level experience for the skill java. Identification of a cardinal helps to match the experience mentioned in the job description with a user query/profile. After marking the text with POS tags, compound words, cardinals, and entity extraction are next in the pipeline.  
Entity extraction is a process of extracting important information from unstructured text, such as places, organizations, names, or money. Figure 4 shows domain-specific entities for e-recruitment from a job description, such as expertise level, skills, and job requirements.  
Besides extracting the basic entities, Figure 4 shows the extraction of contextual entities, such as job requirements. The extraction of contextual entities is based on the occurrence of basic entities in some predefined order, for example the occurrence of expertise level and skill in a particular context forms a requirement.  
The domain dictionary is utilized in the extraction of domain-specific entities. The domain dictionary contains patterns/action rules for the extraction of entities from text. These patterns/action rules are developed using JAPE (Java Annotation Pattern Engine) ([[https://gate.ac.uk/sale/tao/splitch8.html](https://gate.ac.uk/sale/tao/splitch8.html)]([https://gate.ac.uk/sale/tao/splitch8.html](https://gate.ac.uk/sale/tao/splitch8.html))) grammar. JAPE grammar uses features for building pattern/action rules. The feature set contains aspects, such as POS tags, dictionary of words, and simple pattern/action rules. The JAPE rules also incorporate priorities for determining the execution order. The execution order affects the input/output for subsequent pattern/action rules. Example of pattern/action rules for entities are mentioned in Table 1. Section 4 discusses entity extraction along with JAPE rule examples in more detail.