Adding the NorNE dataset for NER

NorNE is a manually annotated corpus of named entities which extends the annotation of the existing Norwegian Dependency Treebank. Comprising both of the official standards of written Norwegian (Bokmål and Nynorsk), the corpus contains around 600,000 tokens and annotates a rich set of entity types including persons, organizations, locations, geo-political entities, products, and events, in addition to a class corresponding to nominals derived from names.


Quick question, @lhoestq. In this specific dataset, two special types `GPE_LOC` and `GPE_ORG` can easily be altered depending on the task, choosing either the more general `GPE` tag or the more specific `LOC`/`ORG` tags, conflating them with the other annotations of the same type. However, I have not found an easy way to implement that. Using splits or configs does not seem appropriate.


About the `GPE_LOC` and `GPE_ORG`. The original NorNE paper in which they published the dataset, does an evaluation on three different NER tag sets, one considering `GPE_LOC` and `GPE_ORG` as they are, another changing them to be just `GPE`, and another one by changing it to become `LOC` and `ORG`. The called these sets, `norne-full`, `norne-7`, and `norne-9`. What I would like is to provide a way for the user of this dataset to get `norne-7` and `norne-9` without having to duplicate the code.

Ok I see !
I guess you can have three configurations  `norne-full`, `norne-7` and `norne-9`.
Each config can have different feature types. You can simply check for the `self.config.name` in the `_info(self)` method and pick the right ClassLabel names accordingly. And then in `_generate_examples` as well you can check for `self.config.name` to know how to process the labels to yield either GPE_LOC/GPE_ORG, GPE or LOC/ORG

But I'm already using the configurations for the different language
varieties. So you propose having something like `bokmaal`, `bokmaal-7`,
etc? Would there be a different way? If not, I'd be fine the corpus as it
is until we come up with a solution. Thanks in any case.

--
Sent using a cell-phone, so sorry for the typos and wrong auto-corrections.

On Tue, Jan 19, 2021, 4:56 PM Quentin Lhoest <notifications@github.com>
wrote:

> Ok I see !
> I guess you can have three configurations norne-full, norne-7 and norne-9.
> Each config can have different feature types. You can simply check for the
> self.config.name in the _info(self) method and pick the right ClassLabel
> names accordingly. And then in _generate_examples as well you can check
> for self.config.name to know how to process the labels to yield either
> GPE_LOC/GPE_ORG, GPE or LOC/ORG
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/huggingface/datasets/pull/1720#issuecomment-762936612>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AABKLYOWNDBD76WZPJHFCWLS2WTTHANCNFSM4V6GSUQA>
> .
>


The first option about having configurations like `bokmaal-7`, `bokmaal-9` etc. would definitely work.

A second option would be to add a parameter `ner_tags_set` to `NorneConfig` and then one could load them with
```python
bokmaal_full = load_dataset("norne", "bokmaal", ner_tags_set="norne-full")
```
for example.

What do you think ?

Hi @versae have you had a chance to consider one of the two options for the config ?
I think both are ok but I have a small preference for the first one since it's simpler to implement.

Feel free to ping me if you have questions or if I can help :) 

Hi @lhoestq. Agree, option 1 seems easier to implement. Just haven't had bandwidth to get to it yet. Hopefully starting next week I'll be able to update the PR.

Hi @versae ! Did you manage to add the configurations ? Let me know if we can help you on this

Hi @lhoestq, I do actually have to code ready, just need to generate the dummy data for it. 

One thing I don't know how to do is to make `_info(self)` return the different NER tags in its `DatasetInfo` object depending on the specific config.

OK, I think it's ready now.

Closing this one and opening a new one with a cleaner commit log.

All set now in #2154.