What is your practical NER (Named Entity Recognition) approach? [P]
Current state of the art in named entity recognition (NER)?
If I may plug my own paper ( http://arxiv.org/abs/1404.5367 ) it has state-of-the-art results. To do so you need a CRF, yes, but you also need lexicons and some form of word embeddings / word clusters.
More on reddit.comCustom Named Entity Recognition (NER) for identifying CVs.
Named Entity Recognition: what’s more important, perfect training data or volume of training data? Also, what is a good starting point for number of observations for a good NER model?
I've seen both cases, where small good dataset outperformed large noisy one, and when large noisy dataset worked better. It seems to depend on project specifics, maybe how regular are errors in the training data, how easy model is fooled to learn to do the same errors, how large is the clean dataset.
Either way, for the evaluation you should use clean data, right? So you'd have to annotate some data manually anyways, if you want evaluation to be fair. So a good start could be to both annotate data manually and generate data using a rule-based system.
When you have both, you can evaluate model trained on rule-based data both on held-out rule-based data and on manually annotated data, and check how different are results. You can also train a small model on this clean dataset and evaluate it (use cross-validation to use data efficiently), compare it to a model trained on generated data. And you can also train a model which uses a combined dataset (be careful with evaluation - e.g. use the whole rule-based dataset and 9/10 folds of a clean dataset, with larger weight, and evaluate on the rest 1/10 fold; repeat for all 10 possible splits and aggregate metrics). You can also evaluate rule-based approach directly.
There are many options once you have a clean dataset. I'd be very cautious starting project without data for validation you can trust, as you can't know if efforts you're putting in your model improve results or make them worse.
More on reddit.comWhat is Named Entity Recognition (NER)?
Why is NER important for NLP?
What is the process for extracting meaningful information from unstructured data using Encord?
Hi all,
I'm working on a Flutter app that scans food products using OCR (Google ML Kit) to extract text from an image, recognizes the language and translate it to English. This works. The next challenge is however structuring the extracted text into meaningful parts, so for example:
-
Title
-
Nutrition Facts
-
Brand
-
etc.
The goal would be to extract those and automatically fill the form for a user.
Right now, I use rule-based parsing (regex + keywords like "Calories"), but it's unreliable for unstructured text and gives messy results. I really like the Google ML kit that is offline, so no internet and no subscriptions or calls to an external company. I thought of a few potential approaches for extracting this structured text:
-
Pure regex/rule-based parsing → Simple but fails with unstructured text. (so maybe not the best solution)
-
Make my own model and train it to perform NER (Named Entity Recognition) → One thing, I have never trained any model and am a noob in this AI / ML thing.
-
External APIs → Google Cloud NLP, Wit.ai, etc. (but this I really would prefer to avoid to save costs)
Which method would you recommend? I am sure I maybe miss some approach and would love to hear how you all tackle similar problems! I am willing to spend time btw into AI/ML but of course I'm looking to spend my time efficient.
Any reference or info is highly appreciated!