Uvod u označavanje dijela govora i model skrivenog Markova

Sachin Malhotra i Divya Godayal

Vratimo se u vremena kad nismo imali jezik za komunikaciju. Jedini način na koji smo imali bio je jezik znakova. Tako obično komuniciramo sa svojim psom kod kuće, zar ne? Kad mu kažemo: "Volimo te, Jimmy", on odgovara mašući repom. To ne znači da zna što zapravo govorimo. Umjesto toga, njegov je odgovor jednostavno zato što jezik emocija i gesta razumije više od riječi.

Mi kao ljudi razvili smo razumijevanje mnogih nijansi prirodnog jezika više od bilo koje životinje na ovom planetu. Zato kad kažemo „VOLIM TE, dušo“, a kad kažemo „Neka se LJUBAV, dušo“ mislimo na različite stvari. Budući da razumijemo osnovnu razliku između dviju fraza, naši su odgovori vrlo različiti. Upravo te zamršenosti u razumijevanju prirodnog jezika želimo naučiti stroju.

To bi moglo značiti kad vaš budući pas robot začuje "Volim te, Jimmy", znao bi da je LJUBAV glagol. Također bi shvatio da to izražavamo emociju na koju bi on odgovorio na određeni način. A možda kad svom partneru kažete "Neka se LJUBAVI", pas jednostavno ne krije vaš posao?

Ovo je samo primjer kako učenje robota komuniciranju na nama poznatom jeziku može olakšati stvari.

Primarni slučaj upotrebe koji je istaknut u ovom primjeru je koliko je važno razumjeti razliku u upotrebi riječi LJUBAV u različitim kontekstima.

Označavanje dijela govora

Od vrlo male dobi navikli smo identificirati dio govornih oznaka. Na primjer, čitanje rečenice i prepoznavanje riječi koje djeluju kao imenice, zamjenice, glagoli, prilozi itd. Sve se to naziva dijelovima govornih oznaka.

Pogledajmo definiciju Wikipedije za njih:

U korpusnoj lingvistici označavanje dijela govora ( POS označavanje ili PoS označavanje ili POST ), koje se naziva i gramatičko označavanje ili višeznačnost kategorije riječi , postupak je označavanja riječi u tekstu (korpusu) koja odgovara određenom dijelu govora, na temelju njegove definicije i konteksta - tj. njegovog odnosa sa susjednim i srodnim riječima u frazi, rečenici ili stavku. Pojednostavljeni oblik toga obično se podučava djeci školske dobi, u identificiranju riječi kao imenica, glagola, pridjeva, priloga itd.

Prepoznavanje dijela govornih oznaka mnogo je složenije od jednostavnog mapiranja riječi u njihov dio govornih oznaka. To je zato što POS označavanje nije nešto što je generičko. Sasvim je moguće da jedna riječ ima različiti dio govorne oznake u različitim rečenicama na temelju različitog konteksta. Zbog toga je nemoguće imati generičko mapiranje za POS oznake.

Kao što vidite, nije moguće ručno pronaći različite oznake dijela govora za zadani korpus. Nove vrste konteksta i nove riječi neprestano se pojavljuju u rječnicima na raznim jezicima, a ručno označavanje POS-om samo po sebi nije skalabilno. Zbog toga se oslanjamo na strojno označavanje POS oznaka.

Prije nego što nastavimo dalje i pogledamo kako se vrši označavanje dijela govora, trebali bismo razmotriti zašto je označavanje POS-om potrebno i gdje se može koristiti.

Zašto označavanje dijela govora?

Označavanje dijela govora samo po sebi možda nije rješenje bilo kojeg određenog NLP problema. Međutim, to je nešto što je učinjeno kao preduvjet za pojednostavljivanje mnogih različitih problema. Razmotrimo nekoliko primjena POS označavanja u raznim NLP zadacima.

Pretvorba teksta u govor

Pogledajmo sljedeću rečenicu:

They refuse to permit us to obtain the refuse permit.

Riječ refusese u ovoj rečenici upotrebljava dva puta i ovdje ima dva različita značenja. refUSE (/ rəˈfyo͞oz /) je glagol koji znači „poricati“, dok je REFuse (/ ˈrefˌyo͞os /) imenica koja znači „smeće“ (to jest, oni nisu homofoni). Dakle, moramo znati koja se riječ koristi da bi se tekst pravilno izgovorio. (Iz tog razloga sustavi za pretvaranje teksta u govor obično izvode POS-označavanje.)

Pogledajte oznake dijela govora koje je za ovu rečenicu generirao paket NLTK.

>>> text = word_tokenize("They refuse to permit us to obtain the refuse permit")>>> nltk.pos_tag(text)[('They', 'PRP'), ('refuse', 'VBP'), ('to', 'TO'), ('permit', 'VB'), ('us', 'PRP'),('to', 'TO'), ('obtain', 'VB'), ('the', 'DT'), ('refuse', 'NN'), ('permit', 'NN')]

Kao što vidimo iz rezultata koje pruža paket NLTK, POS oznake za refuse i REFuse su različite. Upotreba ove dvije različite POS oznake za naš pretvarač teksta u govor može stvoriti drugačiji skup zvukova.

Slično tome, pogledajmo još jednu klasičnu primjenu POS označavanja: višeznačnost značenja riječi.

Višeznačnost riječi smisla

Razgovarajmo o tom klincu zvanom Peter. Budući da je njegova majka neurološka znanstvenica, nije ga poslala u školu. Život mu je bio lišen znanosti i matematike.

Jednog dana provela je eksperiment i natjerala ga da sjedi na satu matematike. Iako nije imao nikakvo predznanje iz predmeta, Peter je mislio da je položio svoj prvi test. Njegova je majka tada uzela primjer iz testa i objavila ga kao u nastavku. (Svaka joj čast!)

Riječi se često javljaju u različitim značenjima kao različiti dijelovi govora. Na primjer:

  • Vidjela je medvjeda.
  • Vaš trud urodit će plodom.

Riječ medvjed u gornjim rečenicama ima potpuno različita značenja, ali što je još važnije jedno je imenica, a drugo glagol. Dvoznačna značenja osnovnog smisla riječi moguća su ako riječi možete označavati njihovim POS oznakama.

Dvoznačnost u smislu riječi (WSD) identificira koji se smisao riječi (odnosno koje značenje) koristi u rečenici, kada riječ ima više značenja.

Pokušajte razmisliti o višestrukom značenju ove rečenice:

Vrijeme leti poput strijele

Evo raznih tumačenja dane rečenice. Značenje i stoga dio govora mogu se razlikovati za svaku riječ.

Kao što jasno možemo vidjeti, moguće je više interpretacija dane rečenice. Različita tumačenja daju različite vrste oznaka dijela govora za riječi. Ove nam informacije, ako su nam dostupne, mogu pomoći da saznamo točnu verziju / interpretaciju rečenice, a zatim možemo nastaviti odatle.

Gornji primjer pokazuje nam da jednoj rečenici mogu biti dodijeljene tri različite sekvence POS oznaka koje su jednako vjerojatne. To znači da je vrlo važno znati koje konkretno značenje daje navedena rečenica kad god se pojavi. Ovo je višeznačnost riječi smisla, jer pokušavamo otkriti SEKCIJU.

These are just two of the numerous applications where we would require POS tagging. There are other applications as well which require POS tagging, like Question Answering, Speech Recognition, Machine Translation, and so on.

Now that we have a basic knowledge of different applications of POS tagging, let us look at how we can go about actually assigning POS tags to all the words in our corpus.

Types of POS taggers

POS-tagging algorithms fall into two distinctive groups:

  • Rule-Based POS Taggers
  • Stochastic POS Taggers

E. Brill’s tagger, one of the first and most widely used English POS-taggers, employs rule-based algorithms. Let us first look at a very brief overview of what rule-based tagging is all about.

Rule-Based Tagging

Automatsko označavanje dijela govora područje je obrade prirodnog jezika u kojem su statističke tehnike bile uspješnije od metoda temeljenih na pravilima.

Tipični pristupi temeljeni na pravilima koriste kontekstualne informacije za dodjeljivanje oznaka nepoznatim ili dvosmislenim riječima. Višeznačnost se vrši analizom jezičnih značajki riječi, njezine prethodne riječi, sljedeće riječi i drugih aspekata.

Na primjer, ako je prethodna riječ članak, dotična riječ mora biti imenica. Ti su podaci kodirani u obliku pravila.

Primjer pravila:

Ako dvoznačnoj / nepoznatoj riječi X prethodi odrednik, a iza nje imenica, označite je kao pridjev.

Ručno definiranje skupa pravila izuzetno je glomazan proces i uopće nije skalabilan. Dakle, potreban nam je neki automatski način za to.

The Brill’s tagger is a rule-based tagger that goes through the training data and finds out the set of tagging rules that best define the data and minimize POS tagging errors. The most important point to note here about Brill’s tagger is that the rules are not hand-crafted, but are instead found out using the corpus provided. The only feature engineering required is a set of rule templates that the model can use to come up with new features.

Let’s move ahead now and look at Stochastic POS tagging.

Stochastic Part-of-Speech Tagging

The term ‘stochastic tagger’ can refer to any number of different approaches to the problem of POS tagging. Any model which somehow incorporates frequency or probability may be properly labelled stochastic.

The simplest stochastic taggers disambiguate words based solely on the probability that a word occurs with a particular tag. In other words, the tag encountered most frequently in the training set with the word is the one assigned to an ambiguous instance of that word. The problem with this approach is that while it may yield a valid tag for a given word, it can also yield inadmissible sequences of tags.

An alternative to the word frequency approach is to calculate the probability of a given sequence of tags occurring. This is sometimes referred to as the n-gram approach, referring to the fact that the best tag for a given word is determined by the probability that it occurs with the n previous tags. This approach makes much more sense than the one defined before, because it considers the tags for individual words based on context.

The next level of complexity that can be introduced into a stochastic tagger combines the previous two approaches, using both tag sequence probabilities and word frequency measurements. This is known as the Hidden Markov Model (HMM).

Before proceeding with what is a HiddenMarkov Model, let us first look at what is a Markov Model. That will better help understand the meaning of the term Hiddenin HMMs.

Markov Model

Say that there are only three kinds of weather conditions, namely

  • Rainy
  • Sunny
  • Cloudy

Now, since our young friend we introduced above, Peter, is a small kid, he loves to play outside. He loves it when the weather is sunny, because all his friends come out to play in the sunny conditions.

He hates the rainy weather for obvious reasons.

Every day, his mother observe the weather in the morning (that is when he usually goes out to play) and like always, Peter comes up to her right after getting up and asks her to tell him what the weather is going to be like. Since she is a responsible parent, she want to answer that question as accurately as possible. But the only thing she has is a set of observations taken over multiple days as to how weather has been.

How does she make a prediction of the weather for today based on what the weather has been for the past N days?

Say you have a sequence. Something like this:

Sunny, Rainy, Cloudy, Cloudy, Sunny, Sunny, Sunny, Rainy

So, the weather for any give day can be in any of the three states.

Let’s say we decide to use a Markov Chain Model to solve this problem. Now using the data that we have, we can construct the following state diagram with the labelled probabilities.

In order to compute the probability of today’s weather given N previous observations, we will use the Markovian Property.

Markov Chain is essentially the simplest known Markov model, that is it obeys the Markov property.

The Markov property suggests that the distribution for a random variable in the future depends solely only on its distribution in the current state, and none of the previous states have any impact on the future states.

For a much more detailed explanation of the working of Markov chains, refer to this link.

Also, have a look at the following example just to see how probability of the current state can be computed using the formula above, taking into account the Markovian Property.

Apply the Markov property in the following example.

We can clearly see that as per the Markov property, the probability of tomorrow's weather being Sunny depends solely on today's weather and not on yesterday's .

Let us now proceed and see what is hidden in the Hidden Markov Models.

Hidden Markov Model

It’s the small kid Peter again, and this time he’s gonna pester his new caretaker — which is you. (Ooopsy!!)

As a caretaker, one of the most important tasks for you is to tuck Peter into bed and make sure he is sound asleep. Once you’ve tucked him in, you want to make sure he’s actually asleep and not up to some mischief.

Međutim, ne možete ponovno ući u sobu, jer bi to sigurno probudilo Petera. Dakle, sve što morate odlučiti su zvukovi koji mogu dopirati iz sobe. Ili je soba tiha ili iz sobe dopire buka . To su vaše države.

Petrova majka, prije nego što vas je ostavila ovoj noćnoj mori, rekla je:

Neka zvuk bude s vama :)

Njegova mu je majka dala sljedeći dijagram stanja. Dijagram ima neka stanja, zapažanja i vjerojatnosti.

Imajte na umu da nema izravne korelacije između zvuka iz sobe i Petera koji spava.

Postoje dvije vrste vjerojatnosti koje možemo vidjeti iz dijagrama stanja.

  • Jedna je emisijavjerojatnosti, koje predstavljaju vjerojatnost vršenja određenih opažanja s obzirom na određeno stanje. Na primjer, imamo P(noise | awake) = 0.5. Ovo je vjerojatnost emisije.
  • Drugi je prijelazvjerojatnosti, koje predstavljaju vjerojatnost prelaska u drugo stanje s obzirom na određeno stanje. Na primjer, imamo P(asleep | awake) = 0.4. Ovo je vjerojatnost prijelaza.

Markovsko svojstvo vrijedi i u ovom modelu. Zato nemojte previše komplicirati. Markov, tvoj je spasitelj rekao:

Ne ulazite previše u povijest ...

Svojstvo Markova, kao što bi bilo primjenjivo na primjeru koji smo ovdje razmatrali, bilo bi da vjerojatnost da Peter bude u nekom stanju ovisi SAMO o prethodnom stanju.

But there is a clear flaw in the Markov property. If Peter has been awake for an hour, then the probability of him falling asleep is higher than if has been awake for just 5 minutes. So, history matters. Therefore, the Markov state machine-based model is not completely correct. It’s merely a simplification.

The Markov property, although wrong, makes this problem very tractable.

We usually observe longer stretches of the child being awake and being asleep. If Peter is awake now, the probability of him staying awake is higher than of him going to sleep. Hence, the 0.6 and 0.4 in the above diagram.P(awake | awake) = 0.6 and P(asleep | awake) = 0.4

Before actually trying to solve the problem at hand using HMMs, let’s relate this model to the task of Part of Speech Tagging.

HMMs for Part of Speech Tagging

We know that to model any problem using a Hidden Markov Model we need a set of observations and a set of possible states. The states in an HMM are hidden.

In the part of speech tagging problem, the observations are the words themselves in the given sequence.

As for the states, which are hidden, these would be the POS tags for the words.

The transition probabilities would be somewhat like P(VP | NP) that is, what is the probability of the current word having a tag of Verb Phrase given that the previous tag was a Noun Phrase.

Emission probabilities would be P(john | NP) or P(will | VP) that is, what is the probability that the word is, say, John given that the tag is a Noun Phrase.

Note that this is just an informal modeling of the problem to provide a very basic understanding of how the Part of Speech tagging problem can be modeled using an HMM.

How do we solve this?

Coming back to our problem of taking care of Peter.

Irritated are we ? ?.

Our problem here was that we have an initial state: Peter was awake when you tucked him into bed. After that, you recorded a sequence of observations, namely noise or quiet, at different time-steps. Using these set of observations and the initial state, you want to find out whether Peter would be awake or asleep after say N time steps.

We draw all possible transitions starting from the initial state. There’s an exponential number of branches that come out as we keep moving forward. So the model grows exponentially after a few time steps. Even without considering any observations. Have a look at the model expanding exponentially below.

If we had a set of states, we could calculate the probability of the sequence. But we don’t have the states. All we have are a sequence of observations. This is why this model is referred to as the Hidden Markov Model — because the actual states over time are hidden.

So, caretaker, if you’ve come this far it means that you have at least a fairly good understanding of how the problem is to be structured. All that is left now is to use some algorithm / technique to actually solve the problem. For now, Congratulations on Leveling up!

In the next article of this two-part series, we will see how we can use a well defined algorithm known as the Viterbi Algorithm to decode the given sequence of observations given the model. See you there!