Rivva-Logo

Structured News, Monat 2: Faktenextraktion, Normalisierung temporaler Ausdrücke, einfache Suchabfragen

Im zweiten Teil der Serie beschreibe ich die Informationsextraktion simpler Fakten. Dabei unerlässlich ist die möglichst geschickte Umformung in eine Standardform, damit einmal gewonnene Informationen vergleichbar, sortierbar und damit durchsuchbar werden.

Im ersten Teil bin ich bereits auf den Aufbau der Zitatesammlung eingegangen, die als Musterexemplar für alle weiteren Datentypen dann auch allen technischen Unterbau für die Verarbeitung natürlichsprachlicher Texte motivierte.

Projektmonat 2 fügt viele weitere Datentypen hinzu für Faktendaten aller Art, die sich in digitalen Texten verbergen können.

Faktenextraktion

Text referenziert in vielen Fällen wertvolle Kerninformationen. Etwa:

Zudem treten diese Angaben in verschiedenster Gestalt auf:

Wie das menschliche Auge können wir Parsing-Algorithmen dazu trainieren, derartige Textstrukturen zu identifizieren:

Faktenextraktion

Weiß der Mensch diese Informationen noch augenblicklich in einen Kontext zu stellen, kann das Elektronenhirn hingegen oftmals nicht von selbst beurteilen, ob seine Ergebnisse plausibel sind. Wahrscheinlichkeiten geben daher den Grad an Gewissheit an.

Normalisierung temporaler Ausdrücke

Tauchen im Text zeitliche Angaben wie "gestern Abend" oder "vorige Woche" auf, müssen wir sie relativ zu einem Referenzdatum auffassen: in aller Regel dem Veröffentlichungsdatum des Artikels, manchmal wiederum in Bezug zu einem bekannten Ereignis ("ein Jahr nach Einführung") oder eines vorher genannten Objekts ("50 Kilometer weiter").

Letztlich wollen wir, wenn ein bestimmtes Ereignis zu einem nur umschriebenen Zeitpunkt stattfand, dieses Ereignis in kanonischer Form und mit möglichst spezifischen Zeitkoordinaten in unserer Faktendatenbank ablegen. Nach "gestern Abend" können wir nicht universell suchen, nach Ereignissen in einem bestimmten Zeitraum hingegen schon.

Einfache Suchabfragen

Das Extrahieren von Fakten lässt sich natürlich auch als Aufgabe zum Auffüllen von Wissens-Slots auffassen. Wollten wir beispielsweise für eine Wissensbasis den Slot ("Mietpreis", "2014", "Kreuzberg", ?) füllen, können wir unseren Textkorpus nach Textstellen absuchen, die eben diesen Kontext ("2014", "Kreuzberg") erfüllen. (In Monat 5 kommt dafür noch Relation Extraction ins Spiel.)

Mittelfristig sollen mächtigere Suchoperatoren wie "near: Context" und "between: Num1 and: Num2" es ermöglichen, relevante Treffer über sogenannte Fuzzy Queries auch in schwammiger Umgebung zu finden, wo starre Suchkriterien nur ins Nichts führen würden.

 

Archiv: 2021 (2)   2020 (1)   2019 (2)   2018 (5)   2017 (3)   2016 (3)   2015 (1)   2014 (2)   2013 (8)   2012 (11)   2011 (4)   2010 (8)   2009 (18)   2008 (12)   2007 (17)   alle (97)