Uma introdução à marcação de parte da fala e ao modelo de Markov oculto

por Sachin Malhotra e Divya Godayal

Fonte: https://english.stackexchange.com/questions/218058/parts-of-speech-and-functions-bob-made-a-book-collector-happy-the-other-day

Vamos voltar aos tempos em que não tínhamos linguagem para nos comunicarmos. A única maneira que tivemos foi a linguagem de sinais. É assim que costumamos nos comunicar com nosso cachorro em casa, certo? Quando dizemos a ele: "Nós amamos você, Jimmy", ele responde abanando o rabo. Isso não significa que ele saiba o que estamos realmente dizendo. Em vez disso, sua resposta é simplesmente porque ele entende a linguagem das emoções e gesticula mais do que palavras.

Nós, como seres humanos, desenvolvemos uma compreensão de muitas nuances da linguagem natural mais do que qualquer animal neste planeta. É por isso que quando dizemos "eu te amo, querida" vs quando dizemos "Vamos fazer amor, querida" queremos dizer coisas diferentes. Desde que entendemos a diferença básica entre as duas frases, nossas respostas são muito diferentes. São essas complexidades na compreensão da linguagem natural que queremos ensinar a uma máquina.

O que isso pode significar é quando o seu futuro cão robô ouvir "eu te amo, Jimmy", ele saberá que o amor é um verbo. Ele também perceberia que é uma emoção que estamos expressando à qual ele responderia de uma determinada maneira. E talvez quando você está dizendo ao seu parceiro "Vamos fazer o amor", o cão iria apenas ficar fora do seu negócio.

Este é apenas um exemplo de como ensinar um robô a se comunicar em uma linguagem que conhecemos pode facilitar as coisas.

O caso de uso principal destacado neste exemplo é o quanto é importante entender a diferença no uso da palavra LOVE, em diferentes contextos.

Marcação de parte da fala

Desde uma idade muito pequena, nos acostumamos a identificar parte das tags de fala. Por exemplo, ler uma frase e ser capaz de identificar quais palavras atuam como substantivos, pronomes, verbos, advérbios e assim por diante. Todos estes são referidos como a parte de tags de fala.

Vamos ver a definição da Wikipedia para eles:

Em linguística de corpus, parte-de-discurso tagging (marcação de POS ou POS colocação de etiquetas ou POST), também chamada de marcação gramatical ou palavra-categoria clarificação, é o processo de marcação de uma palavra em texto (corpus) como correspondendo a uma parte específica do discurso, com base em sua definição e seu contexto – ou seja, sua relação com palavras adjacentes e relacionadas em uma frase, frase ou parágrafo. Uma forma simplificada é comumente ensinada a crianças em idade escolar, na identificação de palavras como substantivos, verbos, adjetivos, advérbios, etc.

Identificar parte das tags de fala é muito mais complicado do que simplesmente mapear palavras para suas partes de tags de fala. Isso ocorre porque a marcação POS não é algo genérico. É bem possível que uma única palavra tenha uma parte diferente da tag de fala em frases diferentes baseadas em contextos diferentes. É por isso que é impossível ter um mapeamento genérico para tags POS.

Como você pode ver, não é possível descobrir manualmente diferentes tags de parte da fala para um determinado corpus. Novos tipos de contextos e novas palavras continuam aparecendo em dicionários em vários idiomas, e a marcação manual de PDV não é dimensionável por si só. É por isso que confiamos na etiquetagem de POS baseada em máquinas.

Antes de prosseguir e observar como a marcação de parte da fala é feita, devemos observar por que a marcação POS é necessária e onde ela pode ser usada.

Por que marcação de parte da fala?

A marcação de parte da fala em si não pode ser a solução para qualquer problema específico da PNL. No entanto, é algo que é feito como um pré-requisito para simplificar muitos problemas diferentes. Vamos considerar algumas aplicações da marcação POS em várias tarefas da PNL.

Conversão de texto em fala

Vamos ver a seguinte frase:

 Eles se recusam a nos permitir obter a permissão de recusar. 

A palavra refuse está sendo usada duas vezes nesta frase e tem dois significados diferentes aqui. refuse (/ r??fyo?oz /) é um verbo que significa “negar”, enquanto que REFuse (/ ?ref?yo?os /) é um substantivo que significa “lixo” (isto é, não são homófonos). Assim, precisamos saber qual palavra está sendo usada para pronunciar o texto corretamente. (Por esse motivo, os sistemas de conversão de texto em fala costumam executar a marcação de POS.)

Dê uma olhada nas tags de parte da fala geradas para essa frase pelo pacote NLTK .

 >>> text = word_tokenize ("Eles se recusam a nos permitir obter a permissão de recusar") 
>>> nltk.pos_tag (texto)
[('They', 'PRP'), ( 'recusar', 'VBP' ), ('to', 'TO'), ('permitir', 'VB'), ('nós', 'PRP') ,
('to', 'TO'), ('get', 'VB'), ('the', 'DT'), ( 'recusar', 'NN' ), ('permissão', 'NN')]

Como podemos ver pelos resultados fornecidos pelo pacote NLTK, as tags POS para o refuse e o REFuse são diferentes. Usando esses dois tags POS diferentes para o nosso conversor de texto em fala pode chegar a um conjunto diferente de sons.

Da mesma forma, vamos olhar para mais uma aplicação clássica da marcação POS: a desambiguação do sentido das palavras.

Desambiguação do Word Sense

Vamos falar sobre esse garoto chamado Peter. Desde que sua mãe é uma cientista neurológica, ela não o mandou para a escola. Sua vida era desprovida de ciência e matemática.

Um dia ela conduziu uma experiência e fez com que ele se sentasse para uma aula de matemática. Mesmo que ele não tenha nenhum conhecimento anterior sobre o assunto, Peter achou que ele havia feito seu primeiro teste. Sua mãe então tomou um exemplo do teste e publicou-o como abaixo. (Kudos para ela!)

Exemplo de Desambiguação com o sentido da palavra – O primeiro problema de matemática do meu filho Peter.

As palavras geralmente ocorrem em diferentes sentidos, como diferentes partes do discurso. Por exemplo:

  • Ela viu um urso.
  • Seus esforços vão dar frutos.

A palavra suportar nas frases acima tem sentidos completamente diferentes, mas mais importante é um substantivo e outro é um verbo. A desambiguação rudimentar do sentido da palavra é possível se você pode marcar palavras com suas tags POS.

Desambiguação de sentido de palavra (WSD) está identificando qual sentido de uma palavra (isto é, qual significado) é usado em uma frase, quando a palavra tem vários significados.

Tente pensar nos múltiplos significados para esta frase:

O tempo voa como uma flecha

Aqui estão as várias interpretações da sentença dada. O significado e, portanto, a parte da fala pode variar para cada palavra.

Tags de parte da fala definem o significado de uma sentença com base no contexto

Como podemos ver claramente, existem várias interpretações possíveis para a sentença dada. Diferentes interpretações produzem diferentes tipos de parte das etiquetas de fala para as palavras. Esta informação, se disponível para nós, pode nos ajudar a descobrir a versão / interpretação exata da sentença e, em seguida, podemos prosseguir a partir daí.

O exemplo acima nos mostra que uma única sentença pode ter três sequências de tags POS diferentes que são igualmente prováveis. Isso significa que é muito importante saber que significado específico está sendo transmitido pela sentença dada quando ela está aparecendo. Essa é a desambiguação do sentido da palavra, pois estamos tentando descobrir a sequência.

Estas são apenas duas das inúmeras aplicações em que exigiríamos a marcação POS. Existem também outras aplicações que exigem a marcação de PDVs, como resposta a perguntas, reconhecimento de voz, tradução automática e assim por diante.

Agora que temos um conhecimento básico de diferentes aplicações de marcação de PDV, vamos ver como podemos realmente atribuir tags POS a todas as palavras do nosso corpus.

Tipos de taggers POS

Os algoritmos de etiquetagem de POS são classificados em dois grupos distintos:

  • Taggers de PDV baseados em regras
  • Taggers de POS estocásticos

O tagger de E. Brill , um dos primeiros e mais usados ??marcadores de POS em inglês, emprega algoritmos baseados em regras. Primeiramente, vamos dar uma olhada em uma breve visão geral do que é a tagging baseada em regras.

Marcação Baseada em Regras

A parte automática da marcação de fala é uma área do processamento de linguagem natural em que as técnicas estatísticas têm tido mais êxito do que os métodos baseados em regras.

Abordagens típicas baseadas em regras usam informações contextuais para atribuir tags a palavras desconhecidas ou ambíguas. A desambiguação é feita pela análise das características lingüísticas da palavra, sua palavra anterior, sua palavra seguinte e outros aspectos.

Por exemplo, se a palavra anterior é um artigo, a palavra em questão deve ser um substantivo. Esta informação é codificada na forma de regras.

Exemplo de uma regra:

Se uma palavra ambígua / desconhecida X for precedida por um determinador e seguida por um substantivo, marque-a como um adjetivo.

Definir um conjunto de regras manualmente é um processo extremamente complicado e não é escalável. Então, precisamos de alguma maneira automática de fazer isso.

O tagger do Brill é um tagger baseado em regras que percorre os dados de treinamento e descobre o conjunto de regras de marcação que melhor definem os dados e minimizam os erros de marcação de PDV. O ponto mais importante a ser observado aqui sobre o tagger de Brill é que as regras não são feitas à mão, mas são encontradas usando o corpus fornecido. A única engenharia de recursos necessária é um conjunto de modelos de regras que o modelo pode usar para criar novos recursos.

Vamos seguir em frente agora e observar a marcação do POS estocástico.

Marcação de parte do discurso estocástica

O termo 'tagger estocástico' pode se referir a qualquer número de abordagens diferentes para o problema de marcação de POS. Qualquer modelo que de alguma forma incorpore frequência ou probabilidade pode ser apropriadamente rotulado como estocástico.

Os taggers estocásticos mais simples desambigam palavras baseadas apenas na probabilidade de que uma palavra ocorra com uma tag específica. Em outras palavras, a tag encontrada com mais freqüência no conjunto de treinamento com a palavra é aquela atribuída a uma instância ambígua dessa palavra. O problema com essa abordagem é que, embora possa gerar uma tag válida para uma determinada palavra, ela também pode gerar sequências de tags inadmissíveis.

Uma alternativa à abordagem de frequência de palavras é calcular a probabilidade de uma determinada sequência de tags ocorrer. Isso às vezes é chamado de abordagem n-gram , referindo-se ao fato de que a melhor tag para uma determinada palavra é determinada pela probabilidade de que ela ocorra com as tags n anteriores. Essa abordagem faz muito mais sentido do que a definida anteriormente, porque considera as tags de palavras individuais com base no contexto.

O próximo nível de complexidade que pode ser introduzido em um tagger estocástico combina as duas abordagens anteriores, usando probabilidades de seqüência de tags e medições de frequência de palavras. Isso é conhecido como o Modelo de Markov Oculta (HMM) .

Antes de prosseguir com o que é um oculto Modelo de Markov, vamos primeiro olhar para o que é um modelo de Markov. Isso ajudará a entender melhor o significado do termo Oculto em HMMs.

Modelo de Markov

Diga que existem apenas três tipos de condições meteorológicas,

  • Chuvoso
  • Ensolarado
  • Nublado

Agora, desde que nosso jovem amigo que apresentamos acima, Peter, é um garoto pequeno, ele adora brincar lá fora. Ele adora quando o tempo está ensolarado, porque todos os seus amigos saem para brincar nas condições de sol.

Ele odeia o clima chuvoso por razões óbvias.

Todos os dias, sua mãe observa o clima de manhã (geralmente quando ele sai para brincar) e, como sempre, Peter vem até ela logo depois de se levantar e pede que ela lhe diga como vai ser o clima. Como ela é uma mãe responsável, ela quer responder a essa pergunta com a maior precisão possível. Mas a única coisa que ela tem é um conjunto de observações feitas ao longo de vários dias sobre como o tempo tem estado.

Como ela faz uma previsão do tempo para hoje com base no que o tempo tem sido nos últimos N dias?

Digamos que você tenha uma sequência. Algo assim:

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

Assim, o tempo para qualquer dia de entrega pode ser em qualquer um dos três estados.

Digamos que decidimos usar um modelo de cadeia de Markov para resolver esse problema. Agora, usando os dados que temos, podemos construir o seguinte diagrama de estados com as probabilidades rotuladas.

Para calcular a probabilidade do tempo de hoje, dadas as observações anteriores, usaremos a Propriedade Markoviana.

Cadeia de Markov é essencialmente o mais simples modelo Markov conhecido, ou seja, obedece à propriedade Markov.

A propriedade Markov sugere que a distribuição de uma variável aleatória no futuro depende apenas de sua distribuição no estado atual, e nenhum dos estados anteriores tem qualquer impacto sobre os estados futuros.

Para uma explicação muito mais detalhada do funcionamento das cadeias de Markov, consulte este link.

Além disso, dê uma olhada no exemplo a seguir apenas para ver como a probabilidade do estado atual pode ser calculada usando a fórmula acima, levando em conta a Propriedade Markoviana.

Aplique a propriedade Markov no exemplo a seguir.

Podemos ver claramente que, de acordo com a propriedade de Markov, a probabilidade de tomorrow's tempo de tomorrow's ser ensolarado depende unicamente today's clima today's e não de yesterday's .

Vamos agora prosseguir e ver o que está escondido nos Modelos Ocultos de Markov.

Modelo oculto de Markov

É o pequeno garoto Peter novamente, e desta vez ele vai incomodar seu novo zelador – que é você. (Ooopsy !!)

Como zelador, uma das tarefas mais importantes para você é colocar Peter na cama e ter certeza de que ele está dormindo. Uma vez que você o tenha metido, você quer ter certeza de que ele está realmente dormindo e não com alguma travessura.

Você não pode, no entanto, entrar na sala novamente, pois isso certamente acordaria Peter. Então tudo que você tem que decidir são os barulhos que podem vir da sala. O quarto é tranquilo ou há barulho vindo do quarto. Estes são seus estados.

A mãe de Peter, antes de deixar você nesse pesadelo, disse:

Que o som esteja com você 🙂

Sim, é isso que ela quis dizer!

Sua mãe lhe deu o seguinte diagrama de estados. O diagrama tem alguns estados, observações e probabilidades.

Olá zelador, isso pode ajudar. ~ Peters mãe. Diverta-se !

Observe que não há correlação direta entre o som da sala e o fato de Peter estar dormindo.

Existem dois tipos de probabilidades que podemos ver no diagrama de estados.

  • Uma é a emissão probabilidades, que representam as probabilidades de fazer certas observações dadas a um estado particular. Por exemplo, temos P(noise | awake) = 0.5 . Esta é uma probabilidade de emissão.
  • Os outros são transição probabilidades, que representam a probabilidade de transição para outro estado dado um estado particular. Por exemplo, temos P(asleep | awake) = 0.4 . Esta é uma probabilidade de transição.

A propriedade Markoviana aplica-se também a este modelo. Então não complique as coisas demais. Markov, seu salvador disse:

Não vá muito na história …

A propriedade Markov, como seria aplicável ao exemplo que consideramos aqui, seria que a probabilidade de Peter estar em um estado depende SOMENTE do estado anterior.

Mas há uma falha clara na propriedade Markov. Se Peter ficou acordado por uma hora, então a probabilidade dele cair no sono é maior do que se estivesse acordado por apenas 5 minutos. Então, a história é importante. Portanto, o modelo baseado em máquina de estado de Markov não está completamente correto. É apenas uma simplificação.

A propriedade Markov, embora esteja errada, torna este problema muito tratável.

Geralmente observamos longos períodos em que a criança está acordada e dormindo. Se Peter está acordado agora, a probabilidade de ele ficar acordado é maior do que ele dormir. Por isso, os 0,6 e 0,4 no diagrama acima. P(awake | awake) = 0.6 and P(asleep | awake) = 0.4

A matriz de probabilidades de transição. A matriz de probabilidades de emissão.

Antes de realmente tentar resolver o problema em questão usando HMMs, vamos relacionar este modelo à tarefa de Part of Speech Tagging.

HMMs para parte da marcação de fala

Sabemos que, para modelar qualquer problema usando um Modelo de Markov Oculta, precisamos de um conjunto de observações e um conjunto de estados possíveis. Os estados em um HMM estão ocultos.

Na parte do problema de marcação de fala, as observações são as próprias palavras na sequência dada.

Quanto aos estados , que estão escondidos, estes seriam os tags POS para as palavras.

As probabilidades de transição seriam um pouco como P(NP | VP) ou seja, qual é a probabilidade da palavra atual ter uma tag de Verb Phrase, dado que a tag anterior era uma Frase Substantiva.

As probabilidades de emissão seriam P(john | NP) or P(will | VP) ou seja, qual é a probabilidade de que a palavra seja, digamos, John, dado que a tag é uma Frase Substantiva.

Observe que isso é apenas uma modelagem informal do problema para fornecer uma compreensão básica de como o problema da marcação da parte da fala pode ser modelado usando um HMM.

Como resolvemos isso?

Voltando ao nosso problema de cuidar de Peter.

Irritados somos nós? ?.

Nosso problema aqui é que temos um estado inicial: Peter estava acordado quando você o colocou na cama. Depois disso, você registrou uma seqüência de observações, ou seja, ruído ou silêncio, em diferentes etapas de tempo. Usando este conjunto de observações e o estado inicial, você quer descobrir se Peter estaria acordado ou dormindo depois de dizer N passos de tempo.

Nós desenhamos todas as transições possíveis a partir do estado inicial. Há um número exponencial de ramificações que saem à medida que avançamos. Assim, o modelo cresce exponencialmente após alguns passos de tempo. Mesmo sem considerar nenhuma observação. Dê uma olhada no modelo em expansão exponencial abaixo.

S0 está acordado e S1 está adormecido. Crescimento exponencial através do modelo por causa das transições.

Se tivéssemos um conjunto de estados, poderíamos calcular a probabilidade da sequência. Mas nós não temos os estados. Tudo o que temos é uma seqüência de observações. É por isso que esse modelo é conhecido como o Modelo de Markov Oculta – porque os estados reais ao longo do tempo estão ocultos.

Então, cuidador, se você chegou até aqui, significa que você tem pelo menos um bom entendimento de como o problema deve ser estruturado. Tudo o que resta agora é usar algum algoritmo / técnica para realmente resolver o problema. Por enquanto, parabéns pelo nivelamento!

No próximo artigo desta série de duas partes, veremos como podemos usar um algoritmo bem definido, conhecido como o algoritmo de Viterbi, para decodificar a seqüência de observações fornecida, dado o modelo. Vejo você lá!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *