Analiza zależności w NLP [wyjaśnione z przykładami]

Opublikowany: 2021-03-10

Przetwarzanie języka naturalnego to interdyscyplinarna koncepcja, która opiera się na podstawach lingwistyki komputerowej i sztucznej inteligencji, aby zrozumieć, w jaki sposób języki ludzkie współdziałają z technologią.

NLP wymaga dogłębnego zrozumienia różnych terminologii i pojęć, aby zastosować je namacalnie w rzeczywistych scenariuszach. Niektóre z tych podstawowych pojęć obejmują między innymi tagowanie części mowy (POS), statystyczne modelowanie języka, analizę składniową, semantyczną i sentymentalną, normalizację, tokenizację, analizę zależności i analizę okręgów wyborczych.

W tym artykule przyjrzymy się podstawom analizy zależności, aby zyskać perspektywę jej implementacji w NLP.

Spis treści

Analiza zależności

Analiza zależności (DP) odnosi się do badania zależności między słowami zdania w celu analizy jego struktury gramatycznej. Na tej podstawie zdanie dzieli się na kilka elementów. Mechanizm opiera się na założeniu, że istnieje bezpośredni związek między każdą jednostką językową zdania. Te linki są nazywane zależnościami.

Weźmy na przykład zdanie Wolę poranny lot przez Denver”.

Poniższy diagram wyjaśnia strukturę zależności zdania:

Źródło

Relacje między każdą jednostką językową lub słowem w zdaniu są wskazywane za pomocą skierowanych łuków w typowanej strukturze zależności. Jak zaznaczono na diagramie, korzeń drzewa „preferować” tworzy nagłówek powyższego zdania.

Relacja między dowolnymi dwoma słowami jest oznaczona znacznikiem zależności. Na przykład słowo „lot” modyfikuje znaczenie rzeczownika „Denver”. W związku z tym można zauważyć zależność z lotu -> Denver, gdzie lot jest głową, a Denver jest dzieckiem lub dzieckiem. Jest oznaczony przez nmod , który reprezentuje modyfikator nominalny.

Stanowi to przypadek zależności między każdymi dwoma słowami, w których jedno działa jako głowa, a drugie jest zależne. Obecnie taksonomia Universal Dependency V2 składa się z 37 uniwersalnych relacji składniowych, jak określono w poniższej tabeli:

Znacznik zależności Opis
acl clausal modyfikator rzeczownika (zdanie przyimkowe)
acl:relcl modyfikator zdania względnego
przysł modyfikator zdania przysłówkowego
advmod modyfikator przysłówkowy
advmod:emph podkreślające słowo, wzmacniacz
advmod:lmod miejscownik przysłówkowy modyfikator
amod modyfikator przymiotnika
przyp modyfikator apozycyjny
pomocniczy pomocniczy
aux: pass pasywny pomocniczy
walizka znakowanie przypadków
cc spójnik koordynacyjny
cc:preconj prekonjunkcja
ccomp dopełnienie klauzuli
clf klasyfikator
pogarszać pogarszać
związek:lvc lekka konstrukcja czasownika
związek:prt cząsteczka czasownika frazowego
związek: redup zduplikowane związki
związek:svc szeregowe związki czasownikowe
conj połączony
policjant spójka
csubj przedmiot klauzuli
csubj: pass zobowiązujący podmiot bierny
dep nieokreślona zależność
det determinant
det:numgov zaimkowy kwantyfikator rządzący przypadkiem rzeczownika
det:nummod kwantyfikator zaimkowy zgodny w przypadku z rzeczownikiem
det:możliwość determinant dzierżawczy
rozprawiać element dyskursu
zwichnięty przemieszczone elementy
objaśnić dopełniający
expl: imperatory bezosobowe przekleństwo
wyw: przepustka zaimek zwrotny używany w odruchu biernym
wyk:pv klityka zwrotna z czasownikiem z natury zwrotnym
naprawiony naprawiono wyrażenie wielowyrazowe
mieszkanie płaskie wyrażenie wielowyrazowe
mieszkanie: obcy obcojęzyczne słowa
mieszkanie: nazwa nazwy
idzie z idzie z
iobj niebezpośredni obiekt
lista lista
znak znacznik
nmod modyfikator nominalny
nmod:możliwe zaborczy modyfikator nominalny
nmod:tmod modyfikator czasowy
nsubj podmiot nominalny
nsubj: pass bierny podmiot nominalny
nummod modyfikator liczbowy
nummod:gov modyfikator liczbowy rządzący przypadkiem rzeczownika
obiekt obiekt
obl ukośny nominalny
obl: agent modyfikator agenta
obl:arg ukośny argument
obl:lmod modyfikator miejscownika
obl:tmod modyfikator czasowy
sierota sierota
parataksa parataksa
punktowy interpunkcja
reparandum przezwyciężona niepłynność
źródło źródło
wołacz wołacz
xcomp dopełnienie klauzuli otwartej

Analiza zależności przy użyciu NLTK

Dependency Parsing można przeprowadzić za pomocą pakietu Natural Language Toolkit (NLTK), który jest zbiorem bibliotek i kodów używanych w statystycznym przetwarzaniu języka naturalnego (NLP) ludzkiego języka.

Możemy użyć NLTK, aby uzyskać analizę zależności za pomocą jednej z następujących metod:

  1. Probabilistyczny, projekcyjny parser zależności : te parsery wykorzystują wiedzę o ludzkim języku zebraną z ręcznie analizowanych zdań do przewidywania nowych zdań. Wiadomo, że popełniają błędy i pracują z ograniczonym zestawem danych treningowych.
  2. Parser Stanford : Jest to parser języka naturalnego zaimplementowany w Javie. Potrzebujesz parsera Stanford CoreNLP, aby przeprowadzić analizę zależności. Parser zawiera kilka języków, w tym angielski, chiński, niemiecki i arabski.

Oto jak możesz użyć parsera:

z nltk.parse.stanford import StanfordDependencyParser

path_jar = 'ścieżka_do/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

)

wynik = dep_parser.raw_parse('Zastrzeliłem słonia we śnie')

zależność = wynik.następny()

lista(zależność.trójki())

Wyjście powyższego programu wygląda następująco:

[

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

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

((u'słoń', 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$'))

]

Analiza okręgów wyborczych

Analiza okręgowa opiera się na gramatykach bezkontekstowych. Tutaj drzewo parsowania zawiera zdania podzielone na podfrazy, z których każda należy do kategorii gramatycznej. Każda jednostka językowa lub słowo w zdaniu działa jak węzeł końcowy, który ma swój węzeł nadrzędny i znacznik części mowy.

Na przykład fraza „kot” i „pudełko pod łóżkiem” to wyrażenia rzeczownikowe, podczas gdy „napisz list” i „jedź samochodem” to wyrażenia czasownikowe.

Rozważmy przykładowe zdanie Zastrzeliłem słonia w piżamie”. Oto graficzna reprezentacja drzewa analizy okręgów wyborczych:

Źródło

Parse tree po lewej odnosi się do strzelania do słonia w piżamie, a parse tree po prawej wskazuje, że obiekt strzela do słonia w piżamie.

Całe zdanie jest podzielone na podfazy, dopóki nie pozostaną słowa końcowe. VP oznacza frazę czasownikową, a NP oznacza frazę rzeczownikową.

Analiza zależności a analizowanie okręgów

Parsowanie okręgów wyborczych można również zaimplementować za pomocą parsera Stanford. Zasadniczo analizuje dane zdanie zgodnie z parserem okręgu, a następnie przekształca drzewo analizy okręgu w drzewo zależności.

Jeśli Twoim celem jest podzielenie zdania na podzwroty, powinieneś wdrożyć parsowanie okręgów wyborczych. Jeśli jednak chcesz zbadać zależności między słowami w zdaniu, powinieneś użyć analizy zależności.

Zamówienie: pomysły i tematy projektów NLP

Wniosek

Jeśli uznałeś ten artykuł za pomocny, powinieneś zapoznać się z 6-miesięczną certyfikacją PG firmy upGrad w zakresie uczenia maszynowego i NLP , która oferuje spersonalizowaną opiekę mentorską od ekspertów branżowych z Flipkart, Gramener i Zee5.

Program jest przeznaczony dla inżynierów, oprogramowania / IT, danych i innych profesjonalistów, którzy chcą zdobyć przyczółek w nauce o danych i uczeniu maszynowym. Ten certyfikat ukończenia studiów podyplomowych od IIIT Bbangalorethe szczyci się 58% podwyżką średniej pensji, to wszystko, czego potrzebujesz, aby znaleźć zaawansowane stanowiska analityka danych, naukowca danych, inżyniera ML i inżyniera NLP w najlepszych firmach. Zablokuj swoje miejsce już dziś za jedyne Rs. 3034 miesięcznie!

Jaki jest pożytek z analizowania zależności w NLP?

W przetwarzaniu języka naturalnego analiza zależności jest techniką stosowaną do identyfikowania relacji semantycznych między słowami w zdaniu. Parsery zależności są używane do mapowania słów w zdaniu na role semantyczne, identyfikując w ten sposób relacje składniowe między słowami. Analiza zależności jest dobrze znanym podejściem do analizy składniowej tekstów języka naturalnego na poziomie struktury powierzchniowej. W tej metodzie struktura syntaktyczna zdania jest odzyskiwana z liniowej sekwencji symboli słów, poprzez analizę zależności składniowych między słowami i określenie kategorii składniowej każdego słowa.

Jakie są zastosowania analizy zależności?

Oto lista kilku obszarów aplikacji, w których używane jest analizowanie zależności. Jednym z głównych zastosowań analizowania zależności jest etykietowanie ról semantycznych (SRL) i wyodrębnianie informacji, które są składnikami przetwarzania języka naturalnego. Analiza zależności jest również używana do dzielenia składni i analizowania okręgów poza zadaniami NLP. Analiza zależności zasadniczo różni się od analizy struktury frazy, która mapuje słowa w zdaniu na odpowiedni znacznik frazy lub strukturę drzewa.

Jaka jest podstawowa różnica między analizowaniem składniowym a analizowaniem zależności?

Różnica między parserem składniowym a parserem zależności polega na tym, że parser zależności buduje drzewo analizy, a parser składni buduje drzewo składni. Z drugiej strony parsowanie składni obejmuje użycie predefiniowanych reguł do zdefiniowania składni, a parser zależności może zrozumieć wszystkie rodzaje fraz, a także radzić sobie z niejednoznacznymi danymi wejściowymi. Parser zależności może być używany do rozpoznawania fraz, fragmentowania, analizy zależności, fragmentowania i analizowania.