Biblioteka NLTK Pythona zawiera solidny tokenizer zdań i tagger POS. Python posiada natywny tokenizer, funkcję .split(), której można przekazać separator, a ona podzieli łańcuch, na którym funkcja jest wywołana, na ten separator. Tokenizator NLTK jest bardziej rozbudowany. Tokenizuje on zdanie na słowa i znaki interpunkcyjne. Biorąc pod uwagę następujący kod:

będzie on tokenizował zdanie Can you please buy me an Arizona Ice Tea? It's .99." w następujący sposób:

Zauważ, że tokenizer traktuje 's , '$' , 0.99 i . jako oddzielne tokeny. Jest to ważne, ponieważ kontrakcje mają swoje własne znaczenie semantyczne, jak również mają swoją własną część mowy, co prowadzi nas do następnej części biblioteki NLTK – tagera POS. Tagger POS w bibliotece NLTK tworzy specyficzne znaczniki dla określonych słów. Lista znaczników POS jest następująca, z przykładami tego, co każdy POS oznacza.

  • CC spójnik koordynacyjny
  • CD cyfra kardynalna
  • DT determinator
  • EX egzystencjalny there (jak: „there is” … myśl o tym jak o „istnieje”)
  • FW wyraz obcy
  • IN przyimek/ spójnik podrzędny
  • JJ przymiotnik 'duży’
  • JJR przymiotnik, porównawczy 'większy’
  • JS przymiotnik,
  • LS znacznik listy 1)
  • MD modalne could, will
  • NN rzeczownik, liczba pojedyncza 'desk’
  • NNS rzeczownik liczba mnoga 'desks’
  • NNP rzeczownik właściwy, liczba pojedyncza 'Harrison’
  • NNNPS rzeczownik właściwy, liczba mnoga 'Amerykanie’
  • PDT predykator 'wszystkie dzieci’
  • POS końcówka dzierżawcza parent’s
  • PRP zaimek osobowy I, he, she
  • PRP$ zaimek dzierżawczy my, his, hers
  • RB przysłówek bardzo, cicho,
  • RBR przysłówek, porównawczo lepszy
  • RBS przysłówek, ponadprzeciętnie najlepszy
  • RP cząstka give up
  • TO, to go 'to’ the store.
  • UH wtrącenie, errrrrrm
  • VB czasownik, forma podstawowa take
  • VBD czasownik, czas przeszły took
  • VBG czasownik, gerund/present participle taking
  • VBN czasownik, past participle taken
  • VBP czasownik, sing. present, non-3d take
  • VBZ czasownik, 3. osoba sing. present takes
  • WDT wh-determiner which
  • WP wh-pronoun who, what
  • WP$ possessive wh-pronoun whose
  • WRB wh-abverb where, when

Jak widać w linii 5 powyższego kodu, funkcja .pos_tag() funkcja musi otrzymać tokenizowane zdanie do otagowania. Tagowanie odbywa się za pomocą modelu wytrenowanego w bibliotece NLTK. Dołączony POS tagger nie jest idealny, ale daje całkiem dokładne wyniki. Używając tego samego zdania co powyżej, wynik jest następujący:

Oznaczanie części mowy może być ważne dla analizy syntaktycznej i semantycznej. Tak więc, dla czegoś takiego jak zdanie powyżej, słowo can ma kilka znaczeń semantycznych. Jednym z nich jest modal do tworzenia pytań, innym pojemnik do przechowywania jedzenia lub płynów, a jeszcze innym czasownik oznaczający zdolność do zrobienia czegoś. Nadanie słowu takiemu jak to określonego znaczenia pozwala programowi na potraktowanie go we właściwy sposób zarówno w analizie semantycznej, jak i syntaktycznej.

Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.