Question

Given a finite dictionary of entity terms, I'm looking for a way to do Entity Extraction with intelligent tagging using Lucene. Currently I've been able to use Lucene for:
- Searching for complex phrases with some fuzzyness
- Highlighting results

However, I 'm not aware how to:
-Get accurate offsets of the matched phrases
-Do entity-specific annotaions per match(not just tags for every single hit)

I have tried using the explain() method - but this only gives the terms in the query which got the hit - not the offsets of the hit within the original text.

Has anybody faced a similar problem and is willing to share a potential solution?

Thank you in advance for you help!

Was it helpful?

Solution

For the offset, see this question: How get the offset of term in Lucene?

I don't quite understand your second question. It sounds to me like you want to get the data from a stored field though. To get the data from a stored field:

TopDocs results = searcher.Search(query, filter, num);
foreach (ScoreDoc result in results.scoreDocs)
{
    Document resultDoc = searcher.Doc(result.doc);
    string valOfField = resultDoc.Get("My Field");
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top