Tagowanie problemów i ukryty model Markowa

Spisie treści:

Anonim

Oznaczanie zdań

Tagging Sentence w szerszym znaczeniu odnosi się do dodawania etykiet czasownika, rzeczownika itp. W kontekście zdania. Identyfikacja tagów POS to skomplikowany proces. Dlatego też ręczne oznaczanie POS nie jest możliwe, ponieważ niektóre słowa mogą mieć różne (niejednoznaczne) znaczenia w zależności od struktury zdania. Konwersja tekstu w formie listy jest ważnym krokiem przed tagowaniem, ponieważ każde słowo na liście jest zapętlane i zliczane dla określonego tagu. Zapoznaj się z poniższym kodem, aby lepiej go zrozumieć

import nltktext = "Hello Guru99, You have to build a very good site, and I love visiting your site."sentence = nltk.sent_tokenize(text)for sent in sentence:print(nltk.pos_tag(nltk.word_tokenize(sent)))

WYNIK

[('Hello', 'NNP'), ('Guru99', 'NNP'), (',', ','), ('You', 'PRP'), ('have', 'VBP'), ('build', 'VBN'), ('a', 'DT'), ('very', 'RB'), ('good', 'JJ'), ('site', 'NN'), ('and', 'CC'), ('I', 'PRP'), ('love', 'VBP'), ('visiting', 'VBG'), ('your', 'PRP$'), ('site', 'NN'), ('.', '.')]

Objaśnienie kodu

  1. Kod do importu nltk (zestaw narzędzi języka naturalnego, który zawiera moduły podrzędne, takie jak tokenizacja zdań i tokenizacja słów).
  2. Tekst, którego znaczniki mają zostać wydrukowane.
  3. Tokenizacja zdań
  4. Zaimplementowano pętlę For, w której słowa są tokenizowane z zdania, a znacznik każdego słowa jest drukowany jako wyjście.

W Corpus istnieją dwa typy taggerów POS:

  • Oparte na regułach
  • Stochastyczne taggery POS

1.Rule-based POS Tagger: W przypadku słów o niejednoznacznym znaczeniu stosuje się podejście oparte na regułach na podstawie informacji kontekstowych. Odbywa się to poprzez sprawdzenie lub analizę znaczenia poprzedniego lub następnego słowa. Informacje są analizowane z otoczenia słowa lub w nim samym. Dlatego słowa są oznaczane według reguł gramatycznych danego języka, takich jak wielkie litery i znaki interpunkcyjne. np. tagger Brilla.

2.Stochastic POS Tagger: W ramach tej metody stosowane są różne podejścia, takie jak częstotliwość lub prawdopodobieństwo. Jeśli słowo jest w większości oznaczane określonym tagiem w zestawie uczącym, to w zdaniu testowym jest mu nadawany ten konkretny tag. Znacznik słowny jest zależny nie tylko od własnego znacznika, ale także od poprzedniego znacznika. Ta metoda nie zawsze jest dokładna. Innym sposobem jest obliczenie prawdopodobieństwa wystąpienia określonego tagu w zdaniu. W ten sposób ostateczny znacznik jest obliczany poprzez sprawdzenie największego prawdopodobieństwa wystąpienia słowa z określonym znacznikiem.

Ukryty model Markowa:

Problemy związane ze znakowaniem można również modelować za pomocą HMM. Traktuje tokeny wejściowe jako obserwowalną sekwencję, podczas gdy tagi są traktowane jako stany ukryte, a celem jest określenie sekwencji stanów ukrytych. Na przykład x = x 1 , x 2 ,…, x n gdzie x jest sekwencją żetonów, podczas gdy y = y 1 , y 2 , y 3 , y 4 … y n to ukryta sekwencja.

Jak działa model HMM?

HMM używa dystrybucji złączeń, która jest P (x, y), gdzie x to sekwencja wejściowa / sekwencja znaczników, a y to sekwencja znaczników.

Sekwencja znaczników dla x będzie wyglądać następująco: argmax y1… .yn p (x1, x2,… .xn, y1, y2, y3,…). Skategoryzowaliśmy tagi z tekstu, ale statystyki takich tagów są kluczowe. Następna część polega na liczeniu tych tagów do badań statystycznych.