Doccano: Funktionsanfrage: Ausgabe auf Token-Ebene

Erstellt am 3. Okt. 2019  ·  4Kommentare  ·  Quelle: doccano/doccano

Funktionsbeschreibung

doccano gibt derzeit nur Anmerkungen auf Zeichenebene aus. Einige für NLP verwendete Workflows erfordern jedoch eine Eingabe in Form von Wortlisten und einer Liste von Token-Labels:

Sample sentence: 
['Two', ',', 'Samsung', 'based', ',', 'electronic', 'cash', 'registers', 'were', 'reconstructed', 'in', 'order', 'to', 'expand', 'their', 'functions', 'and', 'adapt', 'them', 'for', 'networking', '.']

Sample sentence labels: 
['O', 'O', 'I-ORG', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O']

In einer früheren Ausgabe (#7) wird darauf hingewiesen, dass dies aufgrund der Tatsache, dass einige Sprachen nicht durch Leerzeichen getrennt sind, so gemacht wurde. Ich denke, es wäre gut, diese Option zu haben, und Benutzer, die durch Leerzeichen getrennte Sprachen kommentieren, können dies für eine nahtlose Eingabe in ihren Workflow verwenden.

Beispiel entnommen aus: https://github.com/microsoft/nlp/blob/master/examples/named_entity_recognition/ner_wikigold_bert.ipynb

feature request

Hilfreichster Kommentar

Ich habe vor, ein neues Python-Paket namens doccano-transformer zu erstellen.
Es wandelt kommentierte Dokumente in andere Formate wie https://github.com/chakki-works/doccano/issues/362 , https://github.com/chakki-works/doccano/issues/454 und so weiter um. Die Ausgabe auf Token-Ebene sollte also in doccano-transformer .

Alle 4 Kommentare

Hi! Ich habe etwas Ähnliches für mich selbst geschrieben und würde gerne mit PR beitragen :) Ich bin mir jedoch nicht sicher, wie ich mit falsch gekennzeichneten Token umgehen soll. Was ist nämlich, wenn ein Token nur teilweise markiert wurde? Für meine eigenen Zwecke drucke ich das falsch gekennzeichnete Token aus, was eine Warnung für den Benutzer eines Skripts darstellt, und lösche die Token-Anmerkung, aber in einer Produktion ist dies kein Weg.

Die anderen Dinge sind, was sollte ein "Nicht-Entität"-Token sein? 'O' ? Dann sollten wir verhindern, dass Benutzer ein solches Label hinzufügen, das für einige Leute irreführend sein könnte. Oder sollten wir vielleicht das Formular erstellen, in dem der Benutzer selbst das Token bereitstellen kann? Oder leer lassen?

Ich finde diese Funktionsanfrage großartig, aber wir sollten uns darauf einigen, wie das genau angegangen wird :smile: Ich würde gerne Ihre Vorschläge lesen

Ich habe vor, ein neues Python-Paket namens doccano-transformer zu erstellen.
Es wandelt kommentierte Dokumente in andere Formate wie https://github.com/chakki-works/doccano/issues/362 , https://github.com/chakki-works/doccano/issues/454 und so weiter um. Die Ausgabe auf Token-Ebene sollte also in doccano-transformer .

Irgendwelche Updates dazu? Ich möchte einen Datensatz einfach als .txt importieren (wobei jede Zeile ein Satz ist):

George Washington went to Washington.
Sam Houston stayed home.

... und exportieren (nach Annotation) wie folgt, ebenfalls in einer .txt:

George B-PER
Washington I-PER
went O
to O
Washington B-LOC

Sam B-PER
Houston I-PER
stayed O
home O

Mit anderen Worten, exportieren Sie in das bekannte IOB-Anmerkungsformat. Dazu sollte Doccano automatisch wissen, dass, wenn eine annotierte Entität mehr als 1 Token umfasst, mit den Labels B (Anfang) und I (Innen) annotiert werden sollte. Außerdem gibt es neben IOB noch ausgefeiltere Annotationsschemata, wie z. B. BIOES. Hier wird S (single) verwendet, um einen Chunk darzustellen, der ein einzelnes Token enthält. Das BIOES-Anmerkungsschema würde Folgendes ergeben:

George B-PER
Washington E-PER
went O
to O
Washington S-LOC

Sam B-PER
Houston E-PER
stayed O
home O

Es wäre toll, wenn ich kommentierte Datensätze in den Formaten IOB oder BIOES (oder anderen) exportieren könnte. Viele moderne Bibliotheken für NER erfordern Annotationen auf Token-Ebene, um Modelle zu trainieren (Flair von Zalando, Transformers von HuggingFace,...).

Wir haben doccano-transformator veröffentlicht . Es unterstützt die Datentransformation. Derzeit werden unterstützte Aufgaben als Entitätserkennung bezeichnet und unterstützte Formate sind CoNLL2003 und spaCy.

Wir haben einen Plan, Aufgaben und Formate zu erweitern.
Bitte freuen Sie sich darauf.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

callmeashish picture callmeashish  ·  3Kommentare

rebby123 picture rebby123  ·  3Kommentare

JordanSimba picture JordanSimba  ·  4Kommentare

Srijha09 picture Srijha09  ·  4Kommentare

BrambleXu picture BrambleXu  ·  4Kommentare