Welche Möglichkeiten gibt es, Textdokumente (in natürlicher Sprache, unstrukturiert) mit semantischen Metadaten zu versehen? Betrachten Sie zum Beispiel ein kurzes Dokument:
I saw the company's manager last day.
Um Informationen daraus extrahieren zu können, müssen sie mit zusätzlichen Daten versehen werden, damit sie nicht mehr eindeutig sind. Das Auffinden solcher Metadaten ist nicht in Frage, nehmen wir also an, dass dies manuell erfolgt. Die Frage ist, wie diese Daten so gespeichert werden können, dass eine weitere Analyse bequemer und effizienter durchgeführt werden kann.
Ein möglicher Ansatz ist die Verwendung von XML-Tags (siehe unten), die jedoch zu ausführlich erscheinen. Vielleicht gibt es bessere Ansätze / Richtlinien zum Speichern solcher Metadaten in Textdokumenten.
<Person name="John">I</Person> saw the <Organization name="ACME">company</Organization>'s
manager <Time value="2014-5-29">last day</Time>.
nlp
metadata
data-cleaning
text-mining
Amir Ali Akbari
quelle
quelle
Antworten:
Persönlich würde ich dafür eintreten, etwas zu verwenden, das sowohl für das NLP-Gebiet nicht spezifisch ist, als auch etwas, das allgemein genug ist, dass es auch dann noch als Werkzeug verwendet werden kann, wenn Sie anfangen, über diese Metadatenebene hinauszugehen. Ich würde insbesondere ein Format auswählen, das unabhängig von der Entwicklungsumgebung verwendet werden kann und das eine grundlegende Struktur beibehält, wenn dies relevant wird (wie Tokenisierung).
Es mag seltsam erscheinen, aber ich würde ehrlich vorschlagen
JSON
. Es ist extrem gut unterstützt, unterstützt viel Struktur und ist flexibel genug, dass Sie sich nicht davon entfernen müssen, um nicht leistungsfähig genug zu sein. Für Ihr Beispiel ungefähr so:Der einzige große Vorteil, den Sie gegenüber NLP-spezifischen Formaten haben, ist, dass
JSON
sie in jeder Umgebung analysiert werden können. Da Sie Ihr Format wahrscheinlich trotzdem bearbeiten müssen, bietet sich JSON für sehr einfache Bearbeitungen an, die Ihnen eine kurze Distanz bieten zu anderen Formaten.Sie können Tokenisierungsinformationen auch implizit speichern, wenn Sie Folgendes möchten:
BEARBEITEN: Um die Zuordnung von Metadaten zu verdeutlichen, ist ziemlich offen, aber hier ist ein Beispiel:
Hoffe das hilft, lass es mich wissen, wenn du weitere Fragen hast.
quelle
Im Allgemeinen möchten Sie keine XML-Tags verwenden, um Dokumente auf diese Weise zu kennzeichnen, da sich Tags überlappen können.
UIMA , GATE und ähnliche NLP-Frameworks kennzeichnen die vom Text getrennten Tags. Jeder Tag, wie
Person
,ACME
,John
usw. als die Position gespeichert , dass der Tag beginnt und die Position , dass es endet. Für das TagACME
würde es also so gespeichert, dass es an Position 11 beginnt und an Position 17 endet.quelle
Das Brat-Annotation-Tool könnte laut meinem Kommentar für Sie nützlich sein. Ich habe viele von ihnen ausprobiert und dies ist das Beste, was ich gefunden habe. Es hat eine schöne Benutzeroberfläche und kann eine Reihe von verschiedenen Arten von Anmerkungen unterstützen. Die Anmerkungen werden in einer separaten .annot-Datei gespeichert, die jede Anmerkung sowie ihren Speicherort im Originaldokument enthält. Ein Wort der Warnung: Wenn Sie die Anmerkungen letztendlich in einen Klassifikator wie das Stanford NER-Tool einspeisen möchten, müssen Sie einige Manipulationen vornehmen, um die Daten in ein Format zu bringen, das akzeptiert wird.
quelle
Es ist eine sehr schwierige Aufgabe, alle vorhandenen Daten zu beschreiben, aber wir können ein Datenmodell verwenden: http://schema.org/ , wobei es sich um strukturelle Typen der Informationen handelt. Die vorherige Ausführung war auf die Implementierung der MarkUp-Technologie ausgerichtet, daher scheint sie für Ihre Aufgabe nützlich zu sein.
quelle