Chatbot z Pytonem : Analiza zależności

https://szkolazpieklarodem.pl/

Analiza zależności jest jedną z piękniejszych i najpotężniejszych funkcji spaCy, która jest szybka i dokładna. Parser może być również używany do wykrywania granic zdań i umożliwia iterację po podstawowych frazach rzeczownikowych, czyli „fragmentach”. Ta funkcja spaCy zapewnia przeanalizowane drzewo, które wyjaśnia relację rodzic-dziecko między słowami lub frazami i jest niezależne od kolejności występowania słów. Weźmy przykład, w którym musisz przeanalizować następujące zdanie:

Zarezerwuj mi lot z Bangalore do Goa

Przykład 1:

doc = nlp(u’Book me a flight from Bangalore to Goa’)

blr, goa = doc[5], doc[7]

list(blr.ancestors)

Wyjście:

[from, flight, Book]

Powyższe dane wyjściowe mogą nam powiedzieć, że użytkownik chce zarezerwować lot z Bangalore. Spróbujmy wypisać przodków obiektu goa.ancestors:

list(goa.ancestors)

Wyjście:

[to, flight, Book]

Dane wyjściowe mogą nam powiedzieć, że użytkownik chce zarezerwować lot do Goa.

Czym są przodkowie w analizie zależności?

Przodkowie są skrajnym prawym symbolem syntaktycznych potomków tego tokenu. Podobnie jak w powyższym przykładzie dla obiektu br przodkowie pochodzili z, lotu i Księgi. Pamiętaj, że zawsze możesz wyświetlić listę przodków elementu obiektu dokumentu, używając atrybutu przodków.

list(doc[4].ancestors) #doc[4]==flight

Powyższy kod wyświetli:

[flight, Book]

Aby programowo sprawdzić, czy element obiektu dokumentu jest przodkiem innego elementu obiektu dokumentu, możemy wykonać następujące czynności:

doc[3].is_ancestor(doc[5])

Powyższe zwraca True, ponieważ dokument [3] (tj. lot) jest przodkiem dokumentu [5] (tj. Bangalore). Możesz wypróbować więcej takich przykładów, aby lepiej zrozumieć analizę zależności i koncepcję przodków. Jeśli spróbujemy pomyśleć o scenariuszu ze świata rzeczywistego, z którym możemy się spotkać, próbując zbudować chatbota, możemy natknąć się na zdanie w rodzaju: Chcę zarezerwować taksówkę do hotelu i stolik w restauracji. W tym zdaniu ważne jest, aby wiedzieć, jakie zadania są zlecane i dokąd są kierowane (tj. czy użytkownik chce zarezerwować taksówkę do hotelu lub restauracji). Spróbujmy to zrobić za pomocą następującego kodu:

Przykład 1:

doc = nlp(u’Book a table at the restaurant and the taxi to the hotel’)

tasks = doc[2], doc[8] #(table, taxi)

tasks_target = doc[5], doc[11] #(restaurant, hotel)

for task in tasks_target:

for tok in task.ancestors:

if tok in tasks:

print(“Booking of {} belongs to {}”.format(tok, task))

break

Wyjście:

Booking of table belongs to restaurant

Booking of taxi belongs to hotel

Czym są dzieci w analizie zależności?

Dzieci są bezpośrednimi syntaktycznymi zależnymi tokena. Możemy zobaczyć dzieci słowa, używając atrybutu dzieci, tak jak używaliśmy przodków.

list(doc[3].children)

wyjściewyprowadzi

[a, from, to]

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *