Part-of-Speech Tagging

Similar documents
Part-of-Speech Tagging

Fun with weighted FSTs

HMM and Part of Speech Tagging. Adam Meyers New York University

Statistical methods in NLP, lecture 7 Tagging and parsing

ACS Introduction to NLP Lecture 2: Part of Speech (POS) Tagging

Empirical Methods in Natural Language Processing Lecture 11 Part-of-speech tagging and HMMs

CSCI 5832 Natural Language Processing. Today 2/19. Statistical Sequence Classification. Lecture 9

INF4820: Algorithms for Artificial Intelligence and Natural Language Processing. Language Models & Hidden Markov Models

INF4820: Algorithms for Artificial Intelligence and Natural Language Processing. Hidden Markov Models

INF4820: Algorithms for Artificial Intelligence and Natural Language Processing. Hidden Markov Models

Part of Speech Tagging: Viterbi, Forward, Backward, Forward- Backward, Baum-Welch. COMP-599 Oct 1, 2015

Lecture 9: Hidden Markov Model

CS838-1 Advanced NLP: Hidden Markov Models

Lecture 12: Algorithms for HMMs

Lecture 12: Algorithms for HMMs

10/17/04. Today s Main Points

Sequence Labeling: HMMs & Structured Perceptron

TnT Part of Speech Tagger

Text Mining. March 3, March 3, / 49

Hidden Markov Models

CMSC 723: Computational Linguistics I Session #5 Hidden Markov Models. The ischool University of Maryland. Wednesday, September 30, 2009

N-grams. Motivation. Simple n-grams. Smoothing. Backoff. N-grams L545. Dept. of Linguistics, Indiana University Spring / 24

Language Processing with Perl and Prolog

LING 473: Day 10. START THE RECORDING Coding for Probability Hidden Markov Models Formal Grammars

Natural Language Processing Prof. Pawan Goyal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Hidden Markov Models (HMMs)

Probabilistic Context-free Grammars

Midterm sample questions

Today s Agenda. Need to cover lots of background material. Now on to the Map Reduce stuff. Rough conceptual sketch of unsupervised training using EM

The Noisy Channel Model and Markov Models

Basic Text Analysis. Hidden Markov Models. Joakim Nivre. Uppsala University Department of Linguistics and Philology

SYNTHER A NEW M-GRAM POS TAGGER

Statistical Methods for NLP

N-gram Language Modeling

ACS Introduction to NLP Lecture 3: Language Modelling and Smoothing

Dept. of Linguistics, Indiana University Fall 2009

CS460/626 : Natural Language Processing/Speech, NLP and the Web (Lecture 8 POS tagset) Pushpak Bhattacharyya CSE Dept., IIT Bombay 17 th Jan, 2012

More on HMMs and other sequence models. Intro to NLP - ETHZ - 18/03/2013

Lecture 3: ASR: HMMs, Forward, Viterbi

Posterior vs. Parameter Sparsity in Latent Variable Models Supplementary Material

Sequences and Information

Probabilistic Context Free Grammars. Many slides from Michael Collins

Accelerated Natural Language Processing Lecture 3 Morphology and Finite State Machines; Edit Distance

NLTK tagging. Basic tagging. Tagged corpora. POS tagging. NLTK tagging L435/L555. Dept. of Linguistics, Indiana University Fall / 18

Parsing with Context-Free Grammars

Hidden Markov Models in Language Processing

LECTURER: BURCU CAN Spring

Lecture 7: Sequence Labeling

Sequential Data Modeling - The Structured Perceptron

Crouching Dirichlet, Hidden Markov Model: Unsupervised POS Tagging with Context Local Tag Generation

Part A. P (w 1 )P (w 2 w 1 )P (w 3 w 1 w 2 ) P (w M w 1 w 2 w M 1 ) P (w 1 )P (w 2 w 1 )P (w 3 w 2 ) P (w M w M 1 )

Part-of-Speech Tagging + Neural Networks CS 287

Maximum Entropy and Log-linear Models

Probabilistic Context-Free Grammars. Michael Collins, Columbia University

CS388: Natural Language Processing Lecture 4: Sequence Models I

LECTURER: BURCU CAN Spring

POS-Tagging. Fabian M. Suchanek

Quiz 1, COMS Name: Good luck! 4705 Quiz 1 page 1 of 7

Ngram Review. CS 136 Lecture 10 Language Modeling. Thanks to Dan Jurafsky for these slides. October13, 2017 Professor Meteer

Lecture 6: Part-of-speech tagging

Statistical NLP: Hidden Markov Models. Updated 12/15

Degree in Mathematics

Parsing. Based on presentations from Chris Manning s course on Statistical Parsing (Stanford)

CS460/626 : Natural Language

Hidden Markov Models

An Introduction to Bioinformatics Algorithms Hidden Markov Models

Probabilistic Graphical Models

Deep Learning Basics Lecture 10: Neural Language Models. Princeton University COS 495 Instructor: Yingyu Liang

Hidden Markov Models: All the Glorious Gory Details

Natural Language Processing SoSe Words and Language Model

Machine Learning for natural language processing

Recap: HMM. ANLP Lecture 9: Algorithms for HMMs. More general notation. Recap: HMM. Elements of HMM: Sharon Goldwater 4 Oct 2018.

Context-Free Parsing: CKY & Earley Algorithms and Probabilistic Parsing

Processing/Speech, NLP and the Web

Hidden Markov Models

Maschinelle Sprachverarbeitung

Natural Language Processing

A Context-Free Grammar

NLP Programming Tutorial 11 - The Structured Perceptron

Hidden Markov Models and Gaussian Mixture Models

Natural Language Processing SoSe Language Modelling. (based on the slides of Dr. Saeedeh Momtazi)

Lecture 13: Structured Prediction

Maschinelle Sprachverarbeitung

Lecture 4: Smoothing, Part-of-Speech Tagging. Ivan Titov Institute for Logic, Language and Computation Universiteit van Amsterdam

N-gram Language Modeling Tutorial

Hidden Markov Models

Maxent Models and Discriminative Estimation

Recap: Language models. Foundations of Natural Language Processing Lecture 4 Language Models: Evaluation and Smoothing. Two types of evaluation in NLP

8: Hidden Markov Models


Statistical Methods for NLP

Hidden Markov Model and Speech Recognition

Features of Statistical Parsers

1. Markov models. 1.1 Markov-chain

Advanced Natural Language Processing Syntactic Parsing

DT2118 Speech and Speaker Recognition

Natural Language Processing. Statistical Inference: n-grams

Foundations of Natural Language Processing Lecture 6 Spelling correction, edit distance, and EM

Grammars and introduction to machine learning. Computers Playing Jeopardy! Course Stony Brook University

To make a grammar probabilistic, we need to assign a probability to each context-free rewrite

Transcription:

Part-of-Speech Tagging Informatics 2A: Lecture 17 Shay Cohen School of Informatics University of Edinburgh 26 October 2018 1 / 48

Last class We discussed the POS tag lexicon When do words belong to the same class? Three criteria What tagset should we use? What are the sources of ambiguity for POS tagging? 2 / 48

Automatic POS tagging: the problem Methods for tagging Unigram tagging Bigram tagging Tagging using Hidden Markov Models: Viterbi algorithm Rule-based Tagging Reading: Jurafsky & Martin, chapters (5 and) 6. 3 / 48

Automatic POS tagging: the problem Methods for tagging Unigram tagging Bigram tagging Tagging using Hidden Markov Models: Viterbi algorithm Rule-based Tagging Reading: Jurafsky & Martin, chapters (5 and) 6. 4 / 48

Automatic POS tagging: the problem Methods for tagging Unigram tagging Bigram tagging Tagging using Hidden Markov Models: Viterbi algorithm Rule-based Tagging Reading: Jurafsky & Martin, chapters (5 and) 6. 5 / 48

Benefits of Part of Speech Tagging Essential preliminary to (anything that involves) parsing. Can help with speech synthesis. For example, try saying the sentences below out loud. Can help with determining authorship: are two given documents written by the same person? Forensic linguistics. 1. Have you read The Wind in the Willows? (noun) 2. The clock has stopped. Please wind it up. (verb) 3. The students tried to protest. (verb) 4. The students protest was successful. (noun) 6 / 48

Before we get started Question you should always ask yourself: How hard is this problem? 7 / 48

Before we get started Question you should always ask yourself: How hard is this problem? For POS tagging, this boils down to: How ambiguous are parts of speech, really? If most words have unambiguous POS, then we can probably write a simple program that solves POS tagging with just a lookup table. E.g. Whenever I see the word the, output DT. 7 / 48

Before we get started Question you should always ask yourself: How hard is this problem? For POS tagging, this boils down to: How ambiguous are parts of speech, really? If most words have unambiguous POS, then we can probably write a simple program that solves POS tagging with just a lookup table. E.g. Whenever I see the word the, output DT. This is an empirical question. To answer it, we need data. 7 / 48

Corpus annotation A corpus (plural corpora) is a computer-readable collection of NL text (or speech) used as a source of information about the language: e.g. what words/constructions can occur in practice, and with what frequencies. The usefulness of a corpus can be enhanced by annotating each word with a POS tag, e.g. Our/PRP\$ enemies/nns are/vbp innovative/jj and/cc resourceful/jj,/, and/cc so/rb are/vb we/prp./. They/PRP never/rb stop/vb thinking/vbg about/in new/jj ways/nns to/to harm/vb our/prp\$ country/nn and/cc our/prp\$ people/nn, and/cc neither/dt do/vb we/prp./. Typically done by an automatic tagger, then hand-corrected by a native speaker, in accordance with specified tagging guidelines. 8 / 48

POS tagging: difficult cases Even for humans, tagging sometimes poses difficult decisions. E.g. Words in -ing: adjectives (JJ), or verbs in gerund form (VBG)? a boring/jj lecture a very boring lecture? a lecture that bores the lecture seems boring the falling/vbg leaves *the very falling leaves the leaves that fall sparkling/jj? lemonade? very sparkling lemonade lemonade that sparkles the lemonade seems sparkling In view of such problems, we can t expect 100% accuracy from an automatic tagger. In the Penn Treebank, annotators disagree around 3.5% of the time. Put another way: if we assume that one annotator tags perfectly, and then measure the accuracy of another annotator by comparing with the first, they will only be right about 96.5% of the time. We can hardly expect a machine to do better! 9 / 48

Word types and tokens Need to distinguish word tokens (particular occurrences in a text) from word types (distinct vocabulary items). We ll count different inflected or derived forms (e.g. break, breaks, breaking) as distinct word types. A single word type (e.g. still) may appear with several POS. But most words have a clear most frequent POS. Question: How many tokens and types in the following? Ignore case and punctuation. Esau sawed wood. Esau Wood would saw wood. Oh, the wood Wood would saw! 1. 14 tokens, 6 types 2. 14 tokens, 7 types 3. 14 tokens, 8 types 4. None of the above. 10 / 48

Extent of POS Ambiguity The Brown corpus (1,000,000 word tokens) has 39,440 different word types. 35340 have only 1 POS tag anywhere in corpus (89.6%) 4100 (10.4%) have 2 to 7 POS tags So why does just 10.4% POS-tag ambiguity by word type lead to difficulty? This is thanks to Zipfian distribution: many high-frequency words have more than one POS tag. In fact, more than 40% of the word tokens are ambiguous. He wants to/to go. He went to/in the store. He wants that/dt hat. It is obvious that/cs he wants a hat. He wants a hat that/wps fits. 11 / 48

Word Frequencies in Different Languages Ambiguity by part-of-speech tags: Language Type-ambiguous Token-ambiguous English 13.2% 56.2% Greek <1% 19.14% Japanese 7.6% 50.2% Czech <1% 14.5% Turkish 2.5% 35.2% 12 / 48

Some tagging strategies We ll look at several methods or strategies for automatic tagging. One simple strategy: just assign to each word its most common tag. (So still will always get tagged as an adverb never as a noun, verb or adjective.) Call this unigram tagging, since we only consider one token at a time. Surprisingly, even this crude approach typically gives around 90% accuracy. (State-of-the-art is 96 98%). Can we do better? We ll look briefly at bigram tagging, then at Hidden Markov Model tagging. 13 / 48

Bigram tagging We can do much better by looking at pairs of adjacent tokens. For each word (e.g. still), tabulate the frequencies of each possible POS given the POS of the preceding word. Example (with made-up numbers): still DT MD JJ... NN 8 0 6 JJ 23 0 14 VB 1 12 2 RB 6 45 3 Given a new text, tag the words from left to right, assigning each word the most likely tag given the preceding one. Could also consider trigram (or more generally n-gram) tagging, etc. But the frequency matrices would quickly get very large, and also (for realistic corpora) too sparse to be really useful. 14 / 48

Bigram model Example and a member of both countries, a serious the services of the Dole of. Ross declined to buy beer at the winner of his wife, I can live with her hand who sleeps below 50 @-@ brick appealed to make his last week the size, Radovan Karadzic said. The Dow Jones set aside from the economy that Samuel Adams was half @-@ filled with it, but if that Yeltsin. but analysts and goes digital Popcorn, you don t. this far rarer cases it is educable. 15 / 48

Trigram model Example change his own home ; others ( such disagreements have characterized Diller s team quickly launched deliberately raunchier, more recently, said Michael Pasano, a government and ruling party presidential power, and Estonia, which published photographs by him in running his own club 16 / 48

4-gram model Example not to let nature take its course. we ve got one time to do it in three weeks and was criticized by Lebanon and Syria to use the killing of thousands of years of involvement in the plots. 17 / 48

Problems with bigram tagging One incorrect tagging choice might have unintended effects: The still smoking remains of the campfire Intended: DT RB VBG NNS IN DT NN Bigram: DT JJ NN VBZ... No lookahead: choosing the most probable tag at one stage might lead to highly improbable choice later. The still was smashed Intended: DT NN VBD VBN Bigram: DT JJ VBD? We d prefer to find the overall most likely tagging sequence given the bigram frequencies. This is what the Hidden Markov Model (HMM) approach achieves. 18 / 48

Hidden Markov Models The idea is to model the agent that might have generated the sentence by a semi-random process that outputs a sequence of words. Think of the output as visible to us, but the internal states of the process (which contain POS information) as hidden. For some outputs, there might be several possible ways of generating them i.e. several sequences of internal states. Our aim is to compute the sequence of hidden states with the highest probability. Specifically, our processes will be NFAs with probabilities. Simple, though not a very flattering model of human language users! 19 / 48

Definition of Hidden Markov Models For our purposes, a Hidden Markov Model (HMM) consists of: A set Q = {q 0, q 1,..., q T } of states, with q 0 the start state. (Our non-start states will correspond to parts-of-speech). A transition probability matrix A = (a ij 0 i T, 1 j T ), where a ij is the probability of jumping from q i to q j. For each i, we require T a ij = 1. For each non-start state q i and word type w, an emission probability b i (w) of outputting w upon entry into q i. (Ideally, for each i, we d have w b i(w) = 1.) We also suppose we re given an observed sequence w 1, w 2..., w n of word tokens generated by the HMM. j=1 20 / 48

Transition Probabilities 21 / 48

Emission Probabilities 22 / 48

Generating a Sequence Hidden Markov models can be thought of as devices that generate sequences with hidden states: Edinburgh has a very rich history. 23 / 48

Generating a Sequence Hidden Markov models can be thought of as devices that generate sequences with hidden states: Edinburgh NNP p(nnp s ) p(edinburgh NNP) 24 / 48

Generating a Sequence Hidden Markov models can be thought of as devices that generate sequences with hidden states: Edinburgh NNP has VBZ p(nnp s ) p(edinburgh NNP) p(vbz NNP) p(has VBZ) 25 / 48

Generating a Sequence Hidden Markov models can be thought of as devices that generate sequences with hidden states: Edinburgh has a NNP VBZ DT p(nnp s ) p(edinburgh NNP) p(vbz NNP) p(has VBZ) p(dt VBZ) p(a DT ) 26 / 48

Generating a Sequence Hidden Markov models can be thought of as devices that generate sequences with hidden states: Edinburgh has a very NNP VBZ DT RB p(nnp s ) p(edinburgh NNP) p(vbz NNP) p(has VBZ) p(dt VBZ) p(a DT ) p(rb DT ) p(very RB) 27 / 48

Generating a Sequence Hidden Markov models can be thought of as devices that generate sequences with hidden states: Edinburgh has a very rich NNP VBZ DT RB JJ p(nnp s ) p(edinburgh NNP) p(vbz NNP) p(has VBZ) p(dt VBZ) p(a DT ) p(rb DT ) p(very RB) p(jj RB) p(rich JJ) 28 / 48

Generating a Sequence Hidden Markov models can be thought of as devices that generate sequences with hidden states: Edinburgh has a very rich history NNP VBZ DT RB JJ NN p(nnp s ) p(edinburgh NNP) p(vbz NNP) p(has VBZ) p(dt VBZ) p(a DT ) p(rb DT ) p(very RB) p(jj RB) p(rich JJ) p(nn JJ) p(history NN) 29 / 48

Transition and Emission Probabilities VB TO NN PRP <s>.019.0043.041.67 VB.0038.035.047.0070 TO.83 0.00047 0 NN.0040.016.087.0045 PRP.23.00079.001.00014 I want to race VB 0.0093 0.00012 TO 0 0.99 0 NN 0.000054 0.00057 PRP.37 0 0 0 30 / 48

How Do we Search for Best Tag Sequence? We have defined an HMM, but how do we use it? We are given a word sequence and must find their corresponding tag sequence. It s easy to compute the probability of generating a word sequence w 1... w n via a specific tag sequence t 1... t n : let t 0 denote the start state, and compute T P(t i t i 1 ).P(w i t i ) (1) i=1 using the transition and emission probabilities. But how do we find the most likely tag sequence? We can do this efficiently using dynamic programming and the Viterbi algorithm. 31 / 48

Question Given n word tokens and a tagset with T choices per token, how many tag sequences do we have to evaluate? 1. T tag sequences 2. n tag sequences 3. T n tag sequences 4. T n tag sequences 32 / 48

The HMM trellis NN NN NN NN TO TO TO TO START VB VB VB VB PRP PRP PRP PRP I want to race 33 / 48

The Viterbi Algorithm Keep a chart of the form Table(POS, i) where POS ranges over the POS tags and i ranges over the indices in the sentence. For all T and i: and Table(T, i + 1) max T Table(T, i) p(t T ) p(w i+1 T ) Table(T, 1) p(t s )p(w 1 T ) Table(., n) will contain the probability of the most likely sequence. To get the actual sequence, we need backpointers. 34 / 48

The Viterbi algorithm Let s now tag the newspaper headline: deal talks fail Note that each token here could be a noun (N) or a verb (V). We ll use a toy HMM given as follows: to N to V from start.8.2 from N.4.6 from V.8.2 Transitions deal fail talks N.2.05.2 V.3.3.3 Emissions 35 / 48

The Viterbi matrix N deal talks fail V to N to V from start.8.2 from N.4.6 from V.8.2 Transitions deal fail talks N.2.05.2 V.3.3.3 Emissions Table(T, i + 1) max T Table(T, i) p(t T ) p(w i+1 T ) 36 / 48

The Viterbi matrix deal talks fail N.8x.2 =.16.16x.4x.2 =.0128.0288x.8x.05 =.001152 (since.16x.4 >.06x.8) (since.0128x.4 < 0.0288x.8) V.2x.3 =.06.16x.6x.3 =.0288.0128x.6x.3 =.002304 (since.16x.6 >.06x.2) (since.0128x.6 > 0.0288x.2) Looking at the highest probability entry in the final column and chasing the backpointers, we see that the tagging N N V wins. 37 / 48

The Viterbi Algorithm: second example q 4 NN 0 q 3 TO 0 q 2 VB 0 q 1 PRP 0 q o start 1.0 <s> I want to race w 1 w 2 w 3 w 4 For each state q j at time i, compute v i (j) = max n v i 1(k)a kj b j (w i ) k=1 38 / 48

The Viterbi Algorithm q 4 NN 0 q 3 TO 0 q 2 VB 0 q 1 PRP 0 q o start 1.0 <s> I want to race w 1 w 2 w 3 w 4 1. Create probability matrix, with one column for each observation (i.e., word token), and one row for each non-start state (i.e., POS tag). 2. We proceed by filling cells, column by column. 3. The entry in column i, row j will be the probability of the most probable route to state q j that emits w 1... w i. 39 / 48

The Viterbi Algorithm q 4 NN 0 1.0.041 0 q 3 TO 0 1.0.0043 0 q 2 VB 0 1.0.19 0 q 1 PRP 0 1.0.67.37 q o start 1.0 <s> I want to race w 1 w 2 w 3 w 4 For each state q j at time i, compute v i (j) = max n v i 1(k)a kj b j (w i ) k=1 v i 1 (k) is previous Viterbi path probability, a kj is transition probability, and b j (w i ) is emission probability. There s also an (implicit) backpointer from cell (i, j) to the relevant (i 1, k), where k maximizes v i 1 (k)a kj. 40 / 48

The Viterbi Algorithm q 4 NN 0 0.025.0012 0.000054 q 3 TO 0 0.025.00079 0 q 2 VB 0 0.025.23.0093 q 1 PRP 0.025.025.00014 0 q 0 start 1.0 <s> I want to race w 1 w 2 w 3 w 4 For each state q j at time i, compute v i (j) = max n v i 1(k)a kj b j (w i ) k=1 v i 1 (k) is previous Viterbi path probability, a kj is transition probability, and b j (w i ) is emission probability. There s also an (implicit) backpointer from cell (i, j) to the relevant (i 1, k), where k maximizes v i 1 (k)a kj. 41 / 48

The Viterbi Algorithm q 4 NN 0 0.000000002.000053.047 0 q 3 TO 0 0 0.000053.035.99 q 2 VB 0 0.00053.000053.0038 0 q 1 PRP 0.025 0.000053.0070 0 q 0 start 1.0 <s> I want to race w 1 w 2 w 3 w 4 For each state q j at time i, compute v i (j) = max n v i 1(k)a kj b j (w i ) k=1 v i 1 (k) is previous Viterbi path probability, a kj is transition probability, and b j (w i ) is emission probability. There s also an (implicit) backpointer from cell (i, j) to the relevant (i 1, k), where k maximizes v i 1 (k)a kj. 42 / 48

The Viterbi Algorithm q 4 NN 0 0.0000000020.0000018.00047.00057 q 3 TO 0 0 0.0000018.0000018 0 0 q 2 VB 0 0.00053 0.0000018.83.00012 q 1 PRP0.025 0 0.0000018 0 0 q 0 start1.0 <s> I want to race w 1 w 2 w 3 w 4 For each state q j at time i, compute v i (j) = max n v i 1(k)a kj b j (w i ) k=1 v i 1 (k) is previous Viterbi path probability, a kj is transition probability, and b j (w i ) is emission probability. There s also an (implicit) backpointer from cell (i, j) to the relevant (i 1, k), where k maximizes v i 1 (k)a kj. 43 / 48

The Viterbi Algorithm q 4 NN 0 0.000000002 0 4.8222e-13 q 3 TO 0 0 0.0000018 0 q 2 VB 0 0.00053 0 1.7928e-10 q 1 PRP 0.025 0 0 0 q 0 start 1.0 <s> I want to race w 1 w 2 w 3 w 4 For each state q j at time i, compute v i (j) = max n v i 1(k)a kj b j (w i ) k=1 v i 1 (k) is previous Viterbi path probability, a kj is transition probability, and b j (w i ) is emission probability. There s also an (implicit) backpointer from cell (i, j) to the relevant (i 1, k), where k maximizes v i 1 (k)a kj. 44 / 48

Connection between HMMs and finite state machines Hidden Markov models are finite state machines with probabilities added to them. If we think of finite state automaton as generating a string when randomly going through states (instead of scanning a string), then hidden Markov models are such FSMs where there is a specific probability for generating each symbol at each state, and a specific probability for transitioning from one state to another. As such, the Viterbi algorithm can be used to find the most likely sequence of states in a probabilistic FSM, given a specific input string. Question: where do the probabilities come from? 45 / 48

Example Demo http://nlp.stanford.edu:8080/parser/ Relies both on distributional and morphological criteria Uses a model similar to hidden Markov models 46 / 48

Rule-based Tagging Basic idea: 1. Assign each token all its possible tags. 2. Apply rules that eliminate all tags for a token that are inconsistent with its context. Example the DT (determiner) can MD (modal) NN (sg noun) VB (base verb) the DT (determiner) can MD (modal) X NN (sg noun) VB (base verb) X Assign any unknown word tokens a tag that is consistent with its context (eg, the most frequent tag). 47 / 48

Rule-based tagging Rule-based tagging often used a large set of hand-crafted context-sensitive rules. Example (schematic): if (-1 DT) /* if previous word is a determiner */ elim MD, VB /* eliminate modals and base verbs */ Problem: Cannot eliminate all POS ambiguity. 48 / 48