NER and Relation Extraction


Like to seek your opinion on how I should approach the tasks in terms of workflow.

  1. I annotate the dataset first by labelling the entities and then build a NER model
  2. Use the NER model generated and run it on the same dataset as in step #1 and together with the entities inferred by the model, label the relation between entities and build another relation model.


  1. I annotate the entities and relation on the dataset.
  2. Build a NER model using the annotated file.
  3. Build a entity relation model using the same annotated file (same file as in step 2).

Please recommend.



By the way, the "entity relation extraction" model I mentioned above is same as the one found in github project.

Hi @koayst ,

Welcome to Prodigy :slight_smile:

For the entity relation extraction (REL) use-case, your first option of
annotating them separately makes sense. This is because for most REL applications, deciding whether something is an entity is unrelated to whether that
entity is a relation, so you have different thought processes in annotating.

If you annotate them at the same time, you might miss out on actual entities that just happened to not belong in a relation--lowering your recall and affect the consistency of the NER data and subsequent models.

I also suggest looking at these discussions for more information:

1 Like