I have Dataset (CSV format). enter image description here

My mail goal is to do named entity recognition and use algorithms that are today's SOTA, for example according to the website nlpprogress.com.

One of the SOTA is this repository: https://github.com/ZihanWangKi/CrossWeigh/tree/master

Now, from what I've seen for named entity recognition I need to create a BIO file format.

Which I don't have right now.

What I have in my hand is a csv with a division of fields into their respective headers.

The question is how do I create such a dataset with the appropriate tags: B-Skill, I-SKILL, B-EDU, I-EDU, B-EXP, I-EXP


1 Answer 1


You need to manually annotate a large sample of your input text like this:

Irrelevant   O
information, O
Adaptable    B-Skill
to           I-Skill
stuff        I-Skill
,            O
Leadership   B-Skill
skills       I-Skill
...          O

But normally NER is intended for unstructured text. So if you consider that the CSV structure is reliable, then there's no point using NER since you already know which text belongs to which category: everything in the 'skills' columns belongs to SKILLS, everything in 'experience' belongs to EXPERIENCE, etc.

  • $\begingroup$ Any idea how do I annotate the BIO tagging with the help of a NLP algorithm? I want to annotate in the same way as shown in your answer. I have thousands of words and manual annotation is out of the question! $\endgroup$
    – spectre
    May 27, 2023 at 4:58
  • $\begingroup$ This format (or its variants) is the standard output for NER. NER is supervised, so one trains a model with data manually annotated with BIO, otherwise the data is likely to have errors and so the model would do a lot of errors (and its evaluation would be completely biased). There are of course pretrained model which can be applied directly to raw text, but they can find only the entities that they have been trained to recognize (usually person names, places, etc.) $\endgroup$
    – Erwan
    May 27, 2023 at 9:35
  • $\begingroup$ So if you find a model which has been trained to find skills, experience etc., then you can apply it directly to your data and you will obtain this kind of output. In my opinion It would not be correct to train a new model on data automatically annotated, since there can be errors. $\endgroup$
    – Erwan
    May 27, 2023 at 9:39
  • $\begingroup$ Actually I don't want a NER model. I am aware of it. What I meant when I said I want the same output is that I want a model which can label raw text with BIO format. Not the entities. So the output should be the same as above but only the BIO tagging should be there...not the entities $\endgroup$
    – spectre
    May 28, 2023 at 4:29
  • 1
    $\begingroup$ @spectre of course, virtually every NER library works with BIO under the hood and I would expect that most of them can give it as output. The ones I know are a bit old and maybe not very convenient, like CRF++, Wapiti, ... But apparently more recent libs can do this too: Spacy can convert the output to BIO for instance (actually a variant of BIO, BILUO). $\endgroup$
    – Erwan
    Jun 1, 2023 at 9:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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