2009-07-16 20 views
9

Hat jemand eine einfache, aber effektive Möglichkeit gefunden, Datumsreferenzen aus dem Text zu extrahieren? Ich habe ziemlich lange nach temporalen Extraktionswerkzeugen gesucht, aber da draußen gibt es nicht viel. Es gibt ein paar White Papers, aber es scheint in eine Teilmenge des gesamten semantischen Web-Dings zu fallen, wird aber nicht sehr beachtet.Temporale Extraktion (d. H. Extrahieren von Datum/Uhrzeit-Entitäten aus freiem Text) - Wie?

Ich bin nur auf der Suche nach etwas, das 80% effektiv ist. Es gibt keine Notwendigkeit, Dinge wie "der Monat nach Jan 2009" zu erfassen, aber grundlegende gemeinsame Daten Entitäten wäre nett.

Ich bin offen für alle Vorschläge, auch ausgefallene Regex-Ausdrücke.

Feuer weg!

(und Dank - Henry)

Antwort

1

Ein Weg, ich dies getan habe, ist nur für etwas zu suchen, die 4 Zahlen sind und es in eine Zahl umwandeln. Wenn die Zahl in den Bereich von Jahren fällt, die Sie interessieren, haben Sie wahrscheinlich ein Jahr, das Sie verwenden können. Wenn Sie an übereinstimmenden Monaten und Tagen interessiert sind, können Sie benachbarte Wörter überprüfen, um zu sehen, ob es sich um einen Monatsnamen oder eine Zahl zwischen 1 und 31 handelt. Ich bin sicher, dass dies Ihre 80% -Anforderung erfüllen würde.

Regex für Jahre: [0-9] {4} - Sie müssen in eine Zahl umwandeln und sehen, ob sie in dem Bereich liegt, den Sie für gültig halten.

Regex für Monate: Januar | Januar | Februar | Februar ... etc. für jeden Monat

Regex für Tage des Monats: [0-9] {1,2} - Sie müßten konvertieren eine Nummer und sehen, ob es 1-31 ist

+0

ich zur Zeit eine einfache regex =>/\ b ((19 | 20) \ d \ d) extrahieren Jahr treffen \ b/(wollte nur auf die Jahre fokussieren, die mit 19 und 20 beginnen, um falsche Positive einzuschränken); Der nächste Schritt besteht darin, nach Monaten zu suchen, aber noch keine Möglichkeit gefunden zu haben, mit mehreren Daten im selben Satz umzugehen. – henry74

-3

Ich zeichne ein leeres auf, wie man es füttert, aber this library wird eine große Auswahl von Daten analysieren und könnte als das "ist dieses ein wirkliches Datum verwendet werden "Funktion. (Vollständige Offenlegung, ich bin der Autor dieser lib)

+0

Sieht so aus, als müssten Sie in der Bibliothek die tatsächlichen Datumsangaben einsenden. Ich bin auf der Suche nach etwas, das es erlaubt, Sätze zu füttern und die Datum/Uhrzeit-Entitäten extrahieren zu lassen. – henry74

3
  1. Wenn die Ziel zeitlichen Ausdrücke in Ihre Daten sind nur in begrenzten Format verwenden regulären Ausdruck und iterativen Ansatz Ihr System

  2. sonst zu verfeinern verwenden Sie Stanford NLP-Toolkit, SUTime, die ein Overkill sein könnte, aber auf jeden Fall Ihre Anforderungen