Dependenzparser für deutsche klinische Daten

Auf dieser Seite sind ein Dependenzparser sowie ein deutsches klinisches Korpus, präsentiert in unserer Veröffentlichung zur KONVENS "A Domain-adapted Dependency Parser for German Clinical Text" [1], zum Download bereitgestellt.

Fiktive klinische Daten: Der fiktive klinische Datensatz (siehe Experiment 2 in Kapitel 4.3) kann hier heruntergeladen werden. Es besteht zum einen aus Entlassungsbriefen verschiedener klinischer Domänen, welche mit dem Online-Briefvorlagen-Tool Arztbriefmanager erstellt wurden, und zum anderen aus klinischen Notizen aus dem Teilgebiet der Nephrologie, die manuell verfasst wurden. Die Dateien sind vorsegmentiert (in Token und Sätze) und annotiert (Parts-of-Speech (PoS) und Dependenzrelationen). Die Verarbeitung der Daten erfolgte mit JCoRe [2] und unserem Modell, sowie manuellen Nachbesserungen. Wir empfehlen das Annotationstool brat [3] zur visuellen Darstellung der annotierten Daten.

Klinischer Dependenzparser: Das Modell zum Parsen von Dependenzbäumen steht hier zum Download zur Verfügung. Das Standardmodell von Stanford CoreNLP [4] muss lediglich durch unseres ausgetauscht werden. Hier der Ausführbefehl zum Parsen mithilfe der Beispieldatei input.txt:

java -cp stanford-corenlp-3.8.0.jar edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,depparse -Xmx2g -outputFormat conllu -outputExtension .conllu -file input.txt -outputDirectory output/ -depparse.model UD_German_Clinical_retrain_250_0.gz -pos.model german-ud.tagger

Im Beispiel oben wurden Standardparameter bei der Segmentierung von Tokens und Sätzen, sowie dem PoS-Tagging verwendet. Diese können von der Stanford-Webseite heruntergeladen werden. Unser Modell, UD_German_Clinical_retrain_250_0.gz, basiert auf dem Standardmodell für Deutsch, UD_German.gz, welches mit dem neuronalen Dependenzparser [5] auf unseren klinischen Daten neu trainiert wurde.

Beim PoS-Tagging konnten wir mit JCoRe bessere Ergebnisse erzielen als mit dem Stanford-eigenen Tagger. Hierfür musste CoreNLP leicht modifiziert werden, sodass in dieser Version (bitte entpacken) der Input bereits in vorverarbeiteter Form (tokenisiert, satzsegmentiert und PoS-getaggt) eingegeben werden muss. Überprüfen Sie bitte dazu die Eingabedatei input_pos.txt. Im Großen und Ganzen wird das Tool so verwendet:

java -jar POSDependencyParser.jar --input input_pos.txt --model /UD_German_Clinical_retrain_250_0.gz

Die Dateien werden im conll-Format ausgegeben. Der Output des obigen Beispiels ist in input_pos.conll zu sehen.

How to interpret the output format?

Stanford-Dependenzen bieten eine Darstellung der grammatikalischen Relationen/ Dependenzen zwischen einzelnen syntaktischen Wörtern in einem Satz. Stanford-Dependenzen sind stets Triplets: Dependenz, Regent (das regierende Wort) sowie Dependens (das regierte Wort).

Vom Stanford CoreNLP wird ein Token per Zeile durchnummeriert (Spalte 1) sowie mit weiterer Information versehen (s.u.) ausgegeben. Das Output besitzt das folgende Format (bspw. für die Ellipse "Keine AP, gute Belastbarkeit"):

1KeinePIAT2det
2APNN0root
3,$,5punct
4guteADJA5amod
5BelastbarkeitNN2conj
6.$.2punct

Der annotierte Beispielsatz sieht zum Vergleich wie folgt aus:


Als Ausgabe erhält man simultan außerdem Part-of-Speech (PoS)-Information (Spalte 3) sowie das jeweilige Token mit der zugehörigen eingehenden Kante (Spalte 4), was unmittelbare Rückschlüsse auf die Dependenzen erlaubt. Die Dependenzen besitzen stets nur eine eingehende Kante.

Im oben aufgeführten Beispiel ist Token 2 - "AP" (hier Abkürzung für "Angina Pectoris") - der Root-Node bzw. die Hauptrelation des Satzes. Von diesem Knoten gehen mehrere ausgehende Kanten - zu den Token 1, 5 und 6 - aus. Verbindung der Kanten ist hier an der gemeinsamen Ziffer 2 (Spalte 4) abzulesen. Außerdem existieren in dem einfachen Satz weitere Relationen: jeweils von Token 5 zu 3 sowie 4 (an der Ziffer 5 erkennbar).

In der letzten, fünften Spalte werden die jeweiligen ausgehenden Kanten aufgeführt. So wird die von "AP" nach "Keine" verlaufende Kante durch die Relation "det"[6] (Determinierer) ausgedrückt.

Das folgende einfach zu bedienende Tool kann nochmals zur Veranschaulichung dienen: http://biomedical.dfki.de/mEx

1. Den Button "mEx" betätigen
2. Zu annotierenden Satz in das linke Fenster ("Input Text") eingeben (bspw. "Keine AP, gute Belastbarkeit.")
3. Für eine syntaktische Analyse den grünen "Syntax"-Button bedienen

Referenzen:

[1] Elif Kara, Tatjana Zeen, Aleksandra Gabryszak, Klemens Budde, Danilo Schmidt and Roland Roller. 2018. A Domain-adapted Dependency Parser for German Clinical Text. In Proceedings of KONVENS 2018, "The Conference on Natural Language Processing". Vienna, Austria.

[2] Johannes Hellrich, Franz Matthies, Erik Faessler and Udo Hahn. 2015. Sharing models and tools for processing German clinical texts. Studies in Health Technology and Informatics, 210:734-738.

[3] Pontus Stenetorp, Sampo Pyysalo, Goran Topić, Tomoko Ohta, Sophia Ananiadou and Jun'ichi Tsujii. 2012. brat: a Web-based Tool for NLP-Assisted Text Annotation. In Proceedings of the Demonstrations Session at EACL 2012.

[4] Christopher D. Manning, Mihai Surdeanu, John Bauer, Jenny Finkel, Steven J. Bethard and David McClosky. 2014. The Stanford CoreNLP Natural Language Processing Toolkit. In Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics: System Demonstrations, 55-60.

[5] Danqi Chen and Christopher Manning. 2014. A Fast and Accurate Dependency Parser using Neural Networks. In Proceedings of EMNLP 2014, Association for Computational Linguistics, 740-750. [6] For a complete list of language-specific relations for German, please refer to the UD website: http://universaldependencies.org/de/index.html.