Chatbot z Pytonem : Znakowanie części mowy

https://szkolazpieklarodem.pl/

Znakowanie części mowy (Part-of-speech POS) to proces, podczas którego czytasz jakiś tekst i przypisujesz części mowy do każdego słowa lub symbolu, takiego jak rzeczownik, czasownik, przymiotnik itp. Znakowanie POS staje się niezwykle ważne, gdy chcesz zidentyfikować jakiś podmiot w danym zdaniu. Pierwszym krokiem jest wykonanie tagowania POS i sprawdzenie, co zawiera nasz tekst. Zajmijmy się kilkoma przykładami prawdziwego tagowania POS.

Przykład 1:

nlp = spacy.load(‘en’) #Loads the spacy en model into a python object

doc = nlp(u’I am learning how to build chatbots’) #Creates a doc object

for token in doc:

print(token.text, token.pos_) #prints the text and POS

Dane wyjściowe:

(‘I’, ‘PRON’)

(‘am’, ‘VERB’)

(‘learning’, ‘VERB’)

(‘how’, ‘ADV’)

(‘to’, ‘PART’)

(‘build’, ‘VERB’)

(‘chatbots’, ‘NOUN’)

Przykład 2:

doc = nlp(u’I am going to London next week for a meeting.’)

for token in doc:

print(token.text, token.pos_)

Dane wyjściowe:

(‘I’, ‘PRON’)

(‘am’, ‘VERB’)

(‘going’, ‘VERB’)

(‘to’, ‘ADP’)

(‘London’, ‘PROPN’)

(‘next’, ‘ADJ’)

(‘week’, ‘NOUN’)

(‘for’, ‘ADP’)

(‘a’, ‘DET’)

(‘meeting’, ‘NOUN’)

(‘.’, ‘PUNCT’)

Jak widzimy, drukując tokeny ze zwróconego obiektu Doc z metody nlp, która jest kontenerem umożliwiającym dostęp do adnotacji, otrzymujemy POS otagowany każdym ze słów w zdaniu. Te znaczniki to właściwości należące do słowa, które określają, że słowo jest użyte w poprawnym gramatycznie zdaniu. Możemy używać tych znaczników jako funkcji słów w filtrowaniu informacji itp. spróbujmy wziąć inny przykład, w którym próbujemy zbadać różne atrybuty tokena pochodzącego z obiektu Doc.

Przykład 3:

doc = nlp(u’Google release “Move Mirror” AI experiment that matches your

pose from 80,000 images’)

for token in doc:

print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,

token.shape_, token.is_alpha, token.is_stop)

Dane wyjściowe:

Przykład 4:

doc = nlp(u’I am learning how to build chatbots’)

for token in doc:

print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,

token.shape_, token.is_alpha, token.is_stop)

Dane wyjściowe:

Zapoznaj się z poniższą tabelą, aby poznać znaczenie każdego atrybutu, który wydrukowaliśmy w kodzie.

TEXT: Rzeczywisty tekst lub przetwarzane słowo

LEMMA: Rdzeń przetwarzanego słowa

POS: Część mowy słowa

TAG: wyrażają część mowy (np. CZASOWNIK) i pewną ilość informacji morfologicznych (np., że czasownik jest w czasie przeszłym).

DEP: Zależność syntaktyczna (tj. relacja między tokenami)

SHAPE : kształt słowa (np. wielkość liter, znaki interpunkcyjne, format cyfr)

ALPHA: Czy token jest znakiem alfa?

Stop: Czy słowo jest słowem stop, czy częścią listy stop?

Możesz zapoznać się z poniższą tabelą, aby zrozumieć, co oznaczają poszczególne wartości atrybutów POS obiektu tokena. Ta lista zawiera szczegółowy opis znaczników części mowy przypisanych przez modele spaCy.

POZ: OPIS: PRZYKŁADY

ADJ: przymiotnik: duży, stary, zielony, niezrozumiały, pierwszy

ADP: przyimek: w, do, podczas

ADV: przysłówek: bardzo, jutro, w dół, gdzie, tam

AUX: pomocniczy: jest, zrobił (zrobił), będzie (zrobi), powinien (zrobić)

CONJ: spójnik: i, lub, ale

CCONJ: spójnik koordynujący: i, lub, ale

DET: wyznacznik: a, an, the

INTJ: wykrzyknik: psst, ouch, brawo, cześć

NOUN.: rzeczownik: dziewczyna, kot, drzewo, powietrze, piękno

NUM: cyfra: 1, 2017, jeden, siedemdziesiąt siedem, IV, MMXIV

PART: cząstka: „s, nie,

PRON: zaimek: ja, ty, on, ona, ja, oni sami, ktoś

PROPN: rzeczownik własny: Mary, John, London, NATO, HBO

PUNCT: interpunkcja: ., (, ), ?

SCONJ: spójnik podrzędny: jeśli, podczas gdy, to

SYM: symbol: $, %, §, ©, +, −, ×, ÷, =, :), ½

VERB: czasownik: biegać, biegać, biegać, jeść, jeść, jeść

X: inne: sfpksdpsxmsa

SPACE: przestrzeń

Dlaczego więc tagowanie POS jest potrzebne w przypadku chatbotów? Odpowiedź: aby zmniejszyć złożoność zrozumienia tekstu, którego nie można wytrenować lub który jest przeszkolony z mniejszą pewnością. Dzięki tagowaniu POS możemy zidentyfikować części wprowadzanego tekstu i dopasować ciągi tylko dla tych części. Na przykład, jeśli chcesz sprawdzić, czy w zdaniu istnieje lokalizacja, znacznik POS oznaczy słowo lokalizacji jako RZECZOWNIK, dzięki czemu będziesz mógł pobrać wszystkie RZECZOWNIKI z listy oznaczonych i sprawdzić, czy jest to jedna z lokalizacji z wstępnie ustawionej listy albo nie.

Dodaj komentarz

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