I am working on the literature documents. I am able to identify important entities using NER and Ontologies. Now I will like to assign the relevance score to the identified entities with respect to the document. I need an approach to get to this, for relevancy I will also like to consider the indirect occurrence of entities Eg - In the document after first occurrence of the entity (by its name) it may be referred using terms like it, this, that ..etc. I tried frequency based approaches but not getting proper results.

Following is the example

Input text "In 2009, Jack Sparrow worked on NLP Api to process the written word, with all of its quirks and nuances, and got immediate traction. That first month, the company's eponymous language-analysis API processed 500,000 transactions. “Context is super-important,” he adds. “'I'm dying' is a lot different than 'I'm dying to buy the new iPhone.'” “As we move into new markets, we're going to be making some new hires," Jack says. "We knocked down some walls and added 2,000 square feet to our office.” Clients include Walmart, PR Newswire and numerous publishers and advertising networks. “This allows a news organization to detect what a person likes to read about,” says Sparrow of publishers and advertisers.."

Representational Entities and their scores – Jack Sparrow - 0.906712, PR Newswire - 0.292422, iPhone - 0.189069

Any help is appreciated..

  • $\begingroup$ Are you trying to get important keywords? Kindly include examples to make the problem statement clear. $\endgroup$ – Himanshu Rai Nov 10 '17 at 11:38
  • $\begingroup$ I am already able to get the desired keywords from the text using Ontologies, now I want to assign the relevancy score to those entities with respect to the text from which they are extracted $\endgroup$ – NKS Nov 10 '17 at 14:27
  • $\begingroup$ The meaning of relevancy score is not clear. How is it defined ? $\endgroup$ – Himanshu Rai Nov 10 '17 at 14:32
  • $\begingroup$ @HimanshuRai added an example $\endgroup$ – NKS Nov 10 '17 at 14:44
  • 1
    $\begingroup$ How are you assigning these scores or are they random? $\endgroup$ – Himanshu Rai Nov 10 '17 at 15:05

Okay, so from what I understand you need a scoring scheme rather than the scores themselves. I would suggest you to look into the TextRank algorithm paper here. It is mainly used for keyword extraction and works like pagerank, however the transition probabilities are defined on a lot of metrics, including synonyms which would solve your problem of counting indirect occurence. It would return you a ranked list of words along with the scores, you can use the scores of the words that you have already extracted. Normalize the extracted scores so that you can get better relative importances.

Another simple approach is to replace all synonyms with one common token and then use the TF-IDF scores as the needed scores. You can use wordnet to extract synonyms.

However, understand that these approaches are frequency based and no other information other than synonym information is being used. So they will not be pefect for your application but they will do. If you need a better system then you need human scored data and then running some kind of regression on a set of extractef features for words, as to what makes a word relevant and what doesnt.


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.