Abhängigkeitsanalyse in NLP [Erklärt mit Beispielen]

Veröffentlicht: 2021-03-10

Natural Language Processing ist ein interdisziplinäres Konzept, das die Grundlagen der Computerlinguistik und der künstlichen Intelligenz nutzt, um zu verstehen, wie menschliche Sprache mit Technologie interagiert.

NLP erfordert ein tiefgreifendes Verständnis verschiedener Terminologien und Konzepte, um sie greifbar auf reale Szenarien anzuwenden. Einige dieser Grundkonzepte umfassen unter anderem Part-of-Speech(POS)-Tagging, statistische Sprachmodellierung, syntaktische, semantische und Stimmungsanalyse, Normalisierung, Tokenisierung, Dependency Parsing und Constituency Parsing.

In diesem Artikel werden wir uns mit den Grundlagen des Dependency Parsing befassen, um einen Überblick darüber zu erhalten, wie es in NLP implementiert wird.

Inhaltsverzeichnis

Abhängigkeitsanalyse

Dependency Parsing (DP) bezieht sich auf die Untersuchung der Abhängigkeiten zwischen den Wörtern eines Satzes, um seine grammatikalische Struktur zu analysieren. Darauf aufbauend wird ein Satz in mehrere Bestandteile zerlegt. Der Mechanismus basiert auf dem Konzept, dass zwischen jeder sprachlichen Einheit eines Satzes eine direkte Verbindung besteht. Diese Verknüpfungen werden als Abhängigkeiten bezeichnet.

Nehmen wir zum Beispiel den Satz Ich bevorzuge den morgendlichen Flug über Denver.“

Das folgende Diagramm erläutert die Abhängigkeitsstruktur des Satzes:

Quelle

Die Beziehungen zwischen jeder linguistischen Einheit oder jedem Wort des Satzes werden durch gerichtete Bögen in einer typisierten Abhängigkeitsstruktur angezeigt. Wie im Diagramm gekennzeichnet, bildet die Wurzel des Baums „bevorzugen“ den Kopf des obigen Satzes.

Die Beziehung zwischen zwei beliebigen Wörtern wird durch ein Abhängigkeits-Tag gekennzeichnet. Zum Beispiel modifiziert das Wort „Flug“ die Bedeutung des Substantivs „Denver“. Daher können Sie eine Abhängigkeit von Flug -> Denver feststellen, wobei der Flug der Kopf und Denver das Kind oder der Unterhaltsberechtigte ist. Er wird mit nmod bezeichnet , das einen nominalen Modifikator darstellt.

Dies ist der Fall für die Abhängigkeit zwischen jeweils zwei Wörtern, bei denen eines als Kopf und das andere als abhängig fungiert. Derzeit besteht die Universal Dependency V2 -Taxonomie aus 37 universellen syntaktischen Beziehungen, wie in der folgenden Tabelle angegeben:

Abhängigkeits-Tag Beschreibung
akl Satzmodifikator eines Substantivs (Adnominalsatz)
acl:relcl Modifizierer für Relativsätze
Erw Modifikator für Adverbialsätze
advmod adverbiales Attribut
advmod:emph betonendes Wort, Verstärker
advmod:lmod Lokaler Adverbialmodifikator
amod Adjektiv-Modifikator
appos Appositionsmodifikator
Zusatz Hilfs-
Zusatz: pass passives Hilfsmittel
Fall Fall-Markierung
cc koordinierende Konjunktion
cc:vorkonj Vorkonjunktur
Komp satzliche Ergänzung
clf Klassifikator
Verbindung Verbindung
Verbindung: lvc leichte Verbkonstruktion
zusammengesetzt:prt Phrasal Verb Partikel
Verbindung: redup reduzierte Verbindungen
Verbindung: svc serielle Verbverbindungen
Konj Konjunktion
Polizist Kopula
csubj Klauselthema
csubj:pass Satzpassives Subjekt
abh nicht näher bezeichnete Abhängigkeit
det Bestimmer
det:numgov pronominaler Quantifizierer, der den Fall des Substantivs bestimmt
det:nummod pronominaler Quantifizierer, der im Fall mit dem Substantiv übereinstimmt
det: evtl besitzanzeigendes Fürwort
Diskurs Diskurselement
ausgerenkt dislozierte Elemente
erkl Kraftausdruck
expl:imper unpersönlicher Kraftausdruck
expl:pass Reflexivpronomen, das im Reflexivpassiv verwendet wird
expl: pv reflexive Klitik mit einem inhärent reflexiven Verb
Fest fester Mehrwortausdruck
Wohnung flacher Mehrwortausdruck
flach: ausländisch Fremdwörter
Wohnung: Name Namen
geht mit geht mit
iobj indirektes Objekt
Liste Liste
Kennzeichen Marker
nmod nominaler Modifikator
nmod:evtl Possessiver Nominalmodifikator
nmod:tmod zeitlicher Modifikator
nsubj nominelles Thema
nsubj:pass passives Nominalsubjekt
nummod numerischer Modifikator
nummod:gov numerischer Modifikator, der den Fall des Substantivs bestimmt
obj Objekt
obl schräg nominal
obl:agent Agentenmodifikator
obl:arg schräges Argument
obl:lmod Lokaler Modifikator
obl:tmod zeitlicher Modifikator
verwaist verwaist
Parataxe Parataxe
Punkt Interpunktion
Wiedergutmachung überwundene Disfluenz
Wurzel Wurzel
Vokativ Vokativ
xcomp offene satzergänzung

Abhängigkeitsanalyse mit NLTK

Die Abhängigkeitsanalyse kann mit dem Natural Language Toolkit (NLTK)-Paket durchgeführt werden, das eine Sammlung von Bibliotheken und Codes ist, die bei der statistischen Verarbeitung natürlicher Sprache (NLP) der menschlichen Sprache verwendet werden.

Wir können NLTK verwenden, um eine Abhängigkeitsanalyse durch eine der folgenden Methoden zu erreichen:

  1. Probabilistischer, projektiver Abhängigkeitsparser : Diese Parser verwenden das Wissen der menschlichen Sprache, das aus manuell geparsten Sätzen gewonnen wird, um neue Sätze vorherzusagen. Sie sind dafür bekannt, Fehler zu machen und mit einem eingeschränkten Satz von Trainingsdaten zu arbeiten.
  2. Stanford-Parser : Dies ist ein in Java implementierter natürlicher Sprachparser. Sie benötigen den Stanford CoreNLP-Parser , um die Abhängigkeitsanalyse durchzuführen. Der Parser umfasst mehrere Sprachen, darunter Englisch, Chinesisch, Deutsch und Arabisch.

So können Sie den Parser verwenden:

aus nltk.parse.stanford importieren Sie StanfordDependencyParser

path_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser.jar'

path_models_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser-3.4.1-models.jar'

dep_parser = StanfordDependencyParser(

path_to_jar = path_jar, path_to_models_jar = path_models_jar

)

result = dep_parser.raw_parse('Ich habe im Schlaf einen Elefanten erschossen')

Abhängigkeit = result.next()

list(dependency.triples())

Die Ausgabe des obigen Programms sieht wie folgt aus:

[

((u'shot', u'VBD'), u'nsubj', (u'I', u'PRP')),

((u'shot', u'VBD'), u'dobj', (u'elefant', u'NN')),

((u'elefant', u'NN'), u'det', (u'an', u'DT')),

((u'shot', u'VBD'), u'prep', (u'in', u'IN')),

((u'in', u'IN'), u'pobj', (u'sleep', u'NN')),

((u'sleep', u'NN'), u'poss', (u'my', u'PRP$'))

]

Wahlkreisanalyse

Das Parsing von Wahlkreisen basiert auf kontextfreien Grammatiken. Hier enthält der Parsing-Baum Sätze, die in Teilphrasen unterteilt sind, die jeweils zu einer Grammatikkategorie gehören. Jede Spracheinheit oder jedes Wort in einem Satz fungiert als Endknoten, der seinen Elternknoten und ein Wortart-Tag hat.

Beispielsweise sind die Ausdrücke „eine Katze“ und „eine Kiste unter dem Bett“ Nominalphrasen, während „einen Brief schreiben“ und „ein Auto fahren“ Verbphrasen sind.

Betrachten wir einen Beispielsatz Ich habe einen Elefanten in meinem Schlafanzug erschossen.“ Hier ist eine grafische Darstellung des Wahlkreis-Parse-Baums:

Quelle

Der Analysebaum auf der linken Seite bezieht sich auf das Schießen eines Elefanten im Schlafanzug, und der Analysebaum auf der rechten Seite zeigt an, dass das Subjekt einen Elefanten im Schlafanzug erschießt.

Der gesamte Satz wird in Unterphasen zerlegt, bis wir abschließende Wörter übrig haben. VP bezeichnet eine Verbphrase und NP bezeichnet Nominalphrasen.

Parsing von Abhängigkeiten vs. Parsing von Wahlkreisen

Wahlkreis-Parsing kann auch mit dem Stanford-Parser implementiert werden. Es analysiert im Wesentlichen einen bestimmten Satz gemäß dem Wahlkreis-Parser und wandelt anschließend den Wahlkreis-Parse-Baum in einen Abhängigkeitsbaum um.

Wenn es Ihr Ziel ist, einen Satz in Teilphrasen zu zerlegen, sollten Sie das Parsing der Wahlkreise implementieren. Wenn Sie jedoch die Abhängigkeiten zwischen den Wörtern in einem Satz untersuchen möchten, sollten Sie die Abhängigkeitsanalyse verwenden.

Checkout: NLP-Projektideen und -themen

Fazit

Wenn Sie diesen Artikel hilfreich fanden, sollten Sie sich die 6-monatige PG-Zertifizierung von upGrad in maschinellem Lernen und NLP ansehen, die eine personalisierte Betreuung durch Branchenexperten von Flipkart, Gramener und Zee5 bietet.

Das Programm richtet sich an Ingenieure, Software-/IT-, Daten- und andere Fachleute, die in Data Science und maschinellem Lernen Fuß fassen möchten. Diese Postgraduierten-Zertifizierung von IIIT BBangalorethe bietet eine durchschnittliche Gehaltserhöhung von 58% und ist alles, was Sie brauchen, um fortgeschrittene Positionen als Datenanalyst, Datenwissenschaftler, ML-Ingenieur und NLP-Ingenieur in Top-Unternehmen zu ergattern. Blockieren Sie noch heute Ihren Sitzplatz für nur Rs. 3.034 pro Monat!

Wozu dient die Abhängigkeitsanalyse im NLP?

Bei der Verarbeitung natürlicher Sprache ist die Abhängigkeitsanalyse eine Technik, die verwendet wird, um semantische Beziehungen zwischen Wörtern in einem Satz zu identifizieren. Abhängigkeitsparser werden verwendet, um die Wörter in einem Satz semantischen Rollen zuzuordnen, wodurch die syntaktischen Beziehungen zwischen Wörtern identifiziert werden. Die Abhängigkeitsanalyse ist ein bekannter Ansatz zur syntaktischen Analyse von Texten in natürlicher Sprache auf der Ebene der Oberflächenstruktur. Bei diesem Verfahren wird die syntaktische Struktur eines Satzes aus einer linearen Folge von Wort-Token wiederhergestellt, indem die syntaktischen Abhängigkeiten zwischen Wörtern analysiert und die syntaktische Kategorie jedes Wortes identifiziert werden.

Was sind die Anwendungen der Abhängigkeitsanalyse?

Hier ist eine Liste mehrerer Anwendungsbereiche, in denen die Abhängigkeitsanalyse verwendet wird. Eine der Hauptanwendungen der Abhängigkeitsanalyse ist die semantische Rollenkennzeichnung (SRL) und die Informationsextraktion, die Komponenten der Verarbeitung natürlicher Sprache sind. Das Parsing von Abhängigkeiten wird auch für syntaktisches Chunking und Parsing von Wahlkreisen außerhalb von NLP-Aufgaben verwendet. Die Abhängigkeitsanalyse unterscheidet sich grundlegend von der Phrasenstrukturanalyse, die die Wörter in einem Satz der entsprechenden Phrasenmarkierung oder Baumstruktur zuordnet.

Was ist der grundlegende Unterschied zwischen syntaktischer Analyse und Abhängigkeitsanalyse?

Der Unterschied zwischen syntaktischem Parser und Abhängigkeitsparser besteht darin, dass ein Abhängigkeitsparser einen Syntaxbaum und ein syntaktischer Parser einen Syntaxbaum erstellt. Beim syntaktischen Parsing werden vordefinierte Regeln verwendet, um die Syntax zu definieren, und ein Abhängigkeitsparser hingegen kann alle Arten von Phrasen verstehen und auch mit mehrdeutigen Eingaben umgehen. Ein Abhängigkeitsparser kann für Phrasenerkennung, Chunking, Abhängigkeitsanalyse, Chunking und Parsing verwendet werden.