Analiza zależności w NLP [wyjaśnione z przykładami]
Opublikowany: 2021-03-10Przetwarzanie 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:
- 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.
- 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.