Hi everyone, I thought I’d share some of our current work in progress! The first one is a UI demo of a new interface for fully manual NER annotation – i.e. highlighting a span of text and assigning a label. Once it’s implemented, this interface might replace the current “boundaries” interface.
(I’ve only tested the demo in recent Chrome and Firefox so far, so it might not be 100% cross-browser compatible yet. This will be no problem though once it’s ported over to the React app.)
- The interface allows adding multiple entities per annotation task.
- Selection is handled via the browser’s native behaviour – this means, you can also double-click on single tokens to highlight them.
- The selection is based on already existing token boundaries. This makes the click-and-drag interaction easier, because you just need to hit tokens, not exact characters. (For example, if you highlight only parts of two tokens, the full token span will be “locked in”.)
- Highlighted spans can be deleted by clicking on them.
- To allow the highlighted span to be “locked in” immediately after highlighting, the label needs to be set before selecting the span. After adding an entity, the labels dropdown is focused again to help select the next label, if necessary. The previous decision will be remembered, which makes it faster to add multiple entities of the same type.
- Highlighting nested spans is automatically prevented.
Looking forward to your feedback, thoughts and ideas! I’m also currently working on a similar interface for image annotation, e.g. highlighting rectangular and polygon shapes. We’re also still thinking about how to name those interfaces. Internally, we’ve been calling them “unguided”, but that’s a little abstract. So maybe “manual” would be a better idea?