4
$\begingroup$

I have thousands of CV / resumes with me. We want to build a parser which can extract company names from resume.

So far we have tried

  1. Maintained a list of common words present in companies (Eg. Org, Ltd, Limited, Technologies etc.) and use them to identify probable companies. But this list is limited and many times many companies don't get extracted.

  2. Using HTML of CV we have tried to give more score to probable companies which have a certain feature (like Bold, Italics)

Since CV is not only text and we always have some structural information along with it. There should be better ways to extract information. Maybe training some model which could predict companies mentioned in the resume. We are open to any better approaches/suggestions we could incorporate into our system for better accuracy. The precision so far is really bad (less than 45%).

We have already done the segmentation of work experience in CV. So we are able to extract the segment containing work experience with very high precision.

We also have a comprehensive list of companies (millions). Although it contains duplicates and needs significant amount of cleaning. But yes we have a lot of data

Edit

Other approaches we are trying - We try to predict the important phrases inside text using N-Grams and then mark them as probable companies. Then we do a search on companies corpus with us to find any match. How useful is this technique ? Any better approaches ?

$\endgroup$
  • $\begingroup$ Define accuracy? $\endgroup$ – paparazzo Nov 26 '15 at 14:01
  • $\begingroup$ Number of correctly parsed companies / Total predicted companies by the parser $\endgroup$ – khirod Nov 26 '15 at 14:55
  • $\begingroup$ That is precision. $\endgroup$ – paparazzo Nov 26 '15 at 15:02
3
$\begingroup$

Sounds like you want named entity recognition. There are a variety of approaches to NER, and plenty of implementations, like the Stanford NER package.

After you find named entities, determining what the named entity refers to is called concept normalization.

$\endgroup$
  • $\begingroup$ Thanks. But I think Stanford NER uses CRF and that is particularly useful when you want to predict Named Entities using context of surrounding words. In a resume that is not the case. $\endgroup$ – khirod Nov 27 '15 at 7:24
  • $\begingroup$ Infact how useful will be NER when the text is not completely unstructured. Resumes have some structural information associated with them. $\endgroup$ – khirod Nov 27 '15 at 8:27
  • $\begingroup$ Resumes aren't written in complete sentences (most of the time). So standard NLP methods aren't a good match. $\endgroup$ – khirod Nov 27 '15 at 12:42
  • $\begingroup$ That's an interesting point - though if you have meaningful structure, why do you need this extraction? I'll think about the no-full-sentences hurdle $\endgroup$ – jamesmf Nov 27 '15 at 13:27
  • $\begingroup$ The problem is the structure varies a lot. Infact I should say that resumes are poorly structured. We have tried to extract HTML using Apache Tika and bold, italic, tables, bullets of text are intact but visual formatting gets mangled. By structure I mean to say that you can identify visually similar information from a resume. And guess that one part of text is infact a company based on visually similar structure. $\endgroup$ – khirod Nov 27 '15 at 13:36
0
$\begingroup$

Have you tried the XML package? In a similar question here, in SE, the most upvoted answer suggested using some packages for that.

Here: https://stackoverflow.com/questions/3195522/is-there-a-simple-way-in-r-to-extract-only-the-text-elements-of-an-html-page

Here you find further instructions: https://stackoverflow.com/questions/1844829/how-can-i-read-and-parse-the-contents-of-a-webpage-in-r

$\endgroup$
  • $\begingroup$ The HTML is obtained from Apache Tika. And it varies from resume to resume. There is no fixed structure of HTML. $\endgroup$ – khirod Nov 26 '15 at 14:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.