Probabilistische Generierung von Semantischen Netzwerken

9

Ich habe einige einfache semantische Netzwerkimplementierungen und grundlegende Techniken zum Parsen der natürlichen Sprache studiert. Ich habe jedoch nicht viele Projekte gesehen, die versuchen, die Kluft zwischen den beiden zu überbrücken.

Betrachten Sie zum Beispiel den Dialog:

%Vor%

Ein einfaches semantisches Netzwerk, das auf dem Grammatikbaum-Parsing der obigen Sätze basiert, könnte folgendermaßen aussehen:

%Vor%

Diese Implementierung setzt jedoch voraus, dass die Textsegmente "der Mann" und "er" sich auf die gleiche Netzwerkeinheit beziehen.

Wie würden Sie ein System entwerfen, das diese Beziehungen zwischen Segmenten eines semantischen Netzwerks "lernt"? Ich bin es gewohnt, über ML / NL-Probleme nachzudenken, basierend auf der Erstellung eines einfachen Trainingssatzes von Attribut / Wert-Paaren, und füttere es einem Klassifizierungs- oder Regressionsalgorithmus, aber ich habe Probleme, dieses Problem so zu formulieren.

Letztendlich scheint es, dass ich Wahrscheinlichkeiten über das semantische Netzwerk setzen müsste, aber das würde eine Implementierung drastisch erschweren. Gibt es einen Stand der Technik in dieser Richtung? Ich habe mir ein paar Bibliotheken angeschaut, wie NLTK und OpenNLP, und während sie anständige Werkzeuge haben, um mit symbolischer Logik umzugehen und natürliche Sprache zu parsen, scheint keiner von ihnen irgendeine Art von proababliltischem Rahmen zu haben, um einen in den anderen zu konvertieren.

    
Cerin 09.07.2010, 20:47
quelle

3 Antworten

3

Es gibt eine Menge Geschichte hinter dieser Art von Aufgabe. Am besten beginnen Sie mit der Frageantwort .

Der allgemeine Rat, den ich immer gebe, ist, dass wenn Sie eine stark eingeschränkte Domain haben, in der Sie über all die Dinge, die erwähnt werden können, und über all die Arten, wie sie interagieren, Bescheid wissen, können Sie wahrscheinlich ziemlich erfolgreich sein. Wenn dies eher ein "Open-World" -Problem ist, dann wird es extrem schwierig sein, etwas zu finden, das akzeptabel funktioniert.

Die Aufgabe, die Beziehung aus der natürlichen Sprache zu extrahieren, wird "Beziehungsextraktion" (komischerweise) und manchmal Faktenextraktion genannt. Dies ist ein ziemlich großes Forschungsgebiet, dieser Typ hat eine Doktorarbeit darüber gemacht wie viele andere auch. Wie Sie bemerkt haben, gibt es hier eine große Anzahl von Herausforderungen, wie Entity Detection, Anaphora Resolution, etc. Das bedeutet, dass es in den Entitäten und Beziehungen, die Sie extrahieren, wahrscheinlich zu viel 'Rauschen' kommt.

Zur Darstellung von Fakten, die in einer Wissensbasis extrahiert wurden, neigen die meisten Menschen dazu, keinen probabilistischen Rahmen zu verwenden. Auf der einfachsten Ebene werden Entitäten und Beziehungen als Tripel in einer flachen Tabelle gespeichert. Ein anderer Ansatz besteht darin, eine Ontologie zu verwenden, um Struktur hinzuzufügen und eine Schlussfolgerung über die Fakten zu ermöglichen. Dies macht die Wissensbasis erheblich nützlicher, bringt jedoch viele Skalierbarkeitsprobleme mit sich. Zum Hinzufügen von Wahrscheinlichkeiten kenne ich das Prowl -Projekt, das darauf abzielt, eine probabilistische Ontologie zu erstellen, aber es sieht nicht sehr danach aus reif für mich.

Es gibt einige Forschungen über probabilistische relationale Modellierung, hauptsächlich in Markov Logic Networks an der University of Washington und Probabilistische relationale Modelle in Stanford und anderen Orten. Ich bin ein wenig außer Reichweite des Feldes, aber das ist ein schwieriges Problem, und soweit ich weiß, handelt es sich alles um Frühphasenforschung. Es gibt eine Menge Probleme, hauptsächlich im Hinblick auf effiziente und skalierbare Inferenz.

Alles in allem ist es eine gute Idee und eine sehr vernünftige Sache, die man machen möchte. Es ist jedoch auch sehr schwer zu erreichen. Wenn Sie sich ein glattes Beispiel des Stands der Technik ansehen möchten (zB was mit einem Haufen von Leuten und Geld möglich ist), besuchen Sie vielleicht PowerSet .

    
Stompchicken 10.07.2010, 07:47
quelle
2

Interessante Frage, ich habe an einer stark typisierten NLP-Engine in C # gearbeitet: Ссылка und habe kürzlich begonnen, es mit einem Ontologiespeicher zu verbinden.

Für mich sieht es so aus, als ob das Problem hier wirklich ist: Wie parst du die natürliche Sprache, um herauszufinden, dass "Er" dasselbe ist wie "der Mann"? Zu der Zeit im Semantischen Netzwerk ist es zu spät: Sie haben die Tatsache verloren, dass Aussage 2 der Aussage 1 folgt und die Mehrdeutigkeit in Aussage 2 mit Aussage 1 aufgelöst werden kann. Eine dritte Beziehung nach der Tat hinzufügen, um zu sagen, dass "Er" und "der Mann" ist das gleiche ist eine andere Option, aber Sie müssen immer noch die Reihenfolge dieser Behauptungen verstehen.

Die meisten NLP-Parser scheinen sich auf die Analyse einzelner Sätze oder großer Textblöcke zu konzentrieren, aber weniger auf die Verarbeitung von Konversationen. In meiner eigenen NLP-Engine gibt es eine Konversationshistorie, die es ermöglicht, einen Satz im Zusammenhang mit allen davor liegenden Sätzen zu verstehen (und auch die geparsten, stark typisierten Objekte, auf die sie sich bezogen). Die Art, wie ich damit umgehen würde, ist zu erkennen, dass "Er" im aktuellen Satz mehrdeutig ist und dann zurückblickt, um herauszufinden, wer die letzte männliche Person war, die erwähnt wurde.

Im Falle meines Hauses zum Beispiel könnte es Ihnen sagen, dass Sie einen Anruf von einer Nummer verpasst haben, die nicht in seiner Datenbank ist. Sie können eingeben "Es war John Smith" und es kann herausfinden, dass "Es" den Anruf bedeutet, der Ihnen gerade erwähnt wurde. Aber wenn Sie "Tag als Party-Musik" direkt nach dem Anruf eingeben, wird es immer noch zu dem Titel aufgelöst, der gerade abgespielt wird, weil das Haus nach etwas sucht, das ITaggable ist.

    
Ian Mercer 10.07.2010 08:24
quelle
0

Ich bin mir nicht ganz sicher, ob das das ist, was Sie wollen, aber schauen Sie sich die Erzeugung natürlicher Sprache an wikipedia , die "Umkehrung" des Parsens, Konstruieren von Ableitungen, die den gegebenen semantischen Beschränkungen entsprechen.

    
Johan Benum Evensberget 09.07.2010 22:58
quelle