Estatística e Processamento de Linguagem Natural (NLP)

Bruno Oliveira
Internet das Coisas
10 min readJun 17, 2017

Este artigo foi escrito como parte dos estudos sobre técnicas e tecnologias emergentes de data analytics em conjunto dos meus colegas Emerson Stigliani e Luiz Herbert.

Cada vez mais, as empresas, as agências governamentais e os indivíduos são confrontados com grandes quantidades de textos que são críticos para trabalhar e viver, mas não suficientemente bem entendidos para obter o enorme valor que eles potencialmente escondem. Ao mesmo tempo, a disponibilidade de grande quantidade de texto mudou a abordagem científica para a linguagem na linguística e nas ciências cognitivas. Fenômenos que não eram detectáveis ​​ou pareciam desinteressantes e frases individuais passaram para o campo central do que é importante explicar. Considerando que, no início da década de 1990, os métodos quantitativos foram vistos como tão inadequados para a linguística que um livro importante para a linguística matemática não os abrange de forma alguma, eles são cada vez mais vistos como cruciais para a teoria linguística. Conceitos-chave na teoria da probabilidade, nas estatísticas, na teoria da informação e na linguística são básicos para entender o campo e contribuir com ele.

Um dos tópicos de destaque em NLP é o reconhecimento de fala, que começou como um campo separado para a NLP, principalmente a partir dos departamentos de engenharia elétrica, com conferências e revistas separadas, e muitas das suas próprias preocupações. No entanto, nos últimos anos tem havido crescente convergência e sobreposição. Foi a pesquisa sobre o reconhecimento de fala que inspirou o renascimento dos métodos estatísticos na NLP, e há muitas técnicas desenvolvidas primeiro para a fala e que depois se espalharam pela NLP. Pode-se argumentar que o reconhecimento de fala é a área de processamento de idiomas que atualmente é o mais bem-sucedido e aquele que é mais utilizado nas aplicações. um livro de texto de reconhecimento de fala exige uma cobertura completa de problemas na análise de sinal e modelagem acústica que geralmente não seria de interesse ou acessível a alguém de ciência da computação ou NLP, enquanto que, na direção inversa, a maioria das pessoas que estudam o discurso não se interessaria em muitos dos tópicos de NLP nos quais nos concentramos.

Outras áreas relacionadas que têm um limite um tanto distorcido com NLP estatística são aprendizado de máquina, categorização de texto, recuperação de informações e ciência cognitiva. Para todas essas áreas, pode-se encontrar exemplos de trabalho que não está coberto. As decisões mais difíceis de fazer são as que dizem respeito à fronteira entre NLP estatística e não estatística. Acredita-se que havia uma clara linha divisória entre os dois, mas essa linha tornou-se muito mais difusa recentemente. Um número crescente de pesquisadores não estatísticos usa evidência de corpus e incorpora métodos quantitativos. E agora é geralmente aceito na NLP estatística que é necessário começar com todo o conhecimento científico que está disponível sobre um fenômeno ao construir um modelo probabilístico ou outro, em vez de fechar os olhos e tomar uma abordagem de ardósia limpa. A NLP estatística compreende todas as abordagens quantitativas para processamento de linguagem automatizado, incluindo modelos probabilísticos, teoria da informação e álgebra linear. Embora a teoria da probabilidade seja o fundamento do raciocínio estatístico formal, o significado básico do termo “estatísticas” abrange todas as abordagens quantitativas dos dados. Apesar de haver algum potencial de ambiguidade, a NLP estatística tem sido o termo mais utilizado para se referir ao trabalho não-simbólico e não-lógico na NLP na última década.

Um sistema NLP precisa determinar alguma coisa da estrutura do texto normalmente pelo menos o suficiente para responder “Quem fez o que?” Os sistemas convencionais de análise tentam responder a esta questão somente em termos de possíveis estruturas que poderiam ser consideradas gramaticais para alguma escolha de palavras de uma determinada categoria. Por exemplo, dada uma gramática razoável, um sistema NLP padrão dirá que a frase (1.10) possui 3 análises sintáticas, muitas vezes chamadas de análises:

(1.10) Nossa empresa é treinadora de trabalhadores.

As três análises diferentes podem ser representadas como em:

Há (a), o que os humanos percebem, onde é training é o grupo do verbo, e outros dois com is como o verbo principal: em (b) o resto é um gerúndio (cf. Nosso problema is training workers), enquanto em © training modifica workers (cf. aqueles are training wheels). As duas últimas análises são anormalias semânticas, mas na maioria dos sistemas atuais, a análise semântica é feita somente após a análise sintática (se for em tudo). Isso significa que, à medida que as frases se prolongam e as gramáticas se tornam mais abrangentes, tais ambiguidades levam a uma terrível multiplicação de analises. Por exemplo, Martin et al. (1987) relatam seu sistema dando 455 analises para a frase em (1.12):

(1.12) Liste as vendas dos produtos produzidos em 1973 com os produtos produzidos em 1972.

Portanto, um sistema NLP prático deve ser bom para tomar decisões de desambiguação de senso de palavras, categoria de palavras, estrutura sintática e escopo semântico. Mas o objetivo de maximizar a cobertura ao mesmo tempo em que minimiza a ambiguidade resultante é fundamentalmente inconsistente com os sistemas de NLP simbólicos, onde o aumento da cobertura da gramática para obscurecer as construções simplesmente aumenta o número de análises indesejadas para frases comuns e vice-versa. Além disso, a experiência com as abordagens AI para análise e desambiguação, que procuram modelos com profunda compreensão, mostrou que as restrições sintáticas codificadas à mão e as regras de preferência consomem tempo para construir, não se dimensionam bem e são frágeis diante do extenso uso da metáfora na linguagem (Lakoff, 1987). Por exemplo, uma abordagem tradicional é usar restrições de seleção e dizer, por exemplo, que um verbo como a andorinha requer um ser animado como sujeito e um objeto físico como seu objeto. Mas tal restrição proibiria as extensões metafóricas comuns e diretas do uso da andorinha, como estas:

a. I swallowed his story, hook, line, and sinker.

b. The supernova swallowed the planet.

As estratégias de desambiguação que dependem da criação de regra manual e ajuste manual produzem um gargalo de aquisição de conhecimento, e ainda não funcionam mal quando avaliadas em texto natural. Uma abordagem de NLP estatística procura resolver esses problemas aprendendo automaticamente preferências lexicais e estruturais dos corpos. Ao invés de analisar apenas usando categorias sintáticas, como parte das etiquetas de fala, reconhecemos que há muita informação nas relações entre palavras, ou seja, quais palavras tendem a agrupar umas com as outras. Este conhecimento colaborativo pode ser explorado como uma janela para relacionamentos semânticos mais profundos. Em particular, o uso de modelos estatísticos oferece uma boa solução para o problema de ambiguidade: os modelos estatísticos são robustos, generalizam bem e se comportam graciosamente na presença de erros e novos dados. Assim, os métodos de NLPs estatísticos têm liderado o caminho para proporcionar uma desambiguação bem sucedida em sistemas de grande escala usando texto natural. Além disso, os parâmetros dos modelos de NLP estatísticos podem ser estimados automaticamente a partir de corpos de texto, e essa possibilidade de aprendizado automático não só reduz o esforço humano na produção de sistemas de NLP, mas levanta questões científicas interessantes em relação à aquisição de linguagem humana.

Aos poucos, as técnicas de processamento de linguagem natural (NLP) entram em outras áreas de conhecimento que não possuem o histórico de utilização de mineração e análise de dados, como o setor de construção civil, ainda que poucas ferramentas de NLP sejam desenvolvidas pensando exclusivamente nessa área (Goh and Chua, apud [1]). Abordaremos um pouco de como a NLP estatística pode ser aplicada nessa área, especialmente nos processos de gestão de risco de projetos. Tal como afirma Zou et al [1] “aprender sobre o passado é um processo fundamental na gestão de risco de um projeto e auxilia indivíduos e organizações entenderem quando, o quê e por que incidentes acontecem, e como evitar repetir erros do passado”. A esse processo de resolver problemas baseados no passado, chamamos de Case-Based Reasoning (CBR). A estrutura de um sistema CBR pode ser visto na Figura 1, e engloba 4 processos principais: RETRIEVE (verificar/recuperar informações no passado que estejam relacionadas com o problema atual), REUSE (aplicar informação recuperada na tentativa de utilizar alguma solução já implementada), REVISE (revisar o caso e identificar as soluções utilizadas para resolver o problema) e RETAIN (alimentar a base de riscos). Nesse caso, iremos estudar o uso do NLP aplicável ao procedimento de RETRIEVE, especificamente com a técnica de Vector Space Model (VSM), conforme analisado por Zou et al [1]: “VSM é conhecida como um dos mais importantes modelos de Information Retrieval (IR) e pode ser usado para extração de informação, indexação e ranqueamento de relevância” e cita outros autores que fizeram uso da técnica em construção civil, como classificação de documentos de projetos e extração de informações em desenhos CAD, e por isso mostra-se como uma boa alternativa de ferramenta para CBR.

Esse modelo de espaço vetorial parte da premissa que todo documento (nesse caso, os lessons learned de todo problema resolvido no passado) é representado como um vetor de contagem com pesos TF-IDF (frequência do termo — inverso a frequência no documento). Os termos são representados como eixos (Termn) e os documentos são vetores nesse espaço (Docn), como visto na figura 2. Após vetorizar os termos contidos em todos os documentos, o próximo passo é definir um procedimento para calcular a similaridade desses documentos com a query de consulta inserida pelo usuário (que será um vetor de pesos TF-IDF). Zou et al [1] define uma fórmula para cálculo da similaridade — sim(dj, q) — entre um documento e a busca executada:

sim(dj, q)= dj . q = i=1twi,j × wi,q i=1twi,j2 × i=1twi,q2

Onde dj refere-se ao documento que está sendo analisado, q indica o texto da consulta (query) realizada, e wi,j e wi,q indica a frequência de vezes que um determinado termo aparece no documento “j” e numa query “q”. Adicionalmente ao modelo do espaço vetorial, o autor propõe o uso da técnica Semantic query expansion, para aumentar as possibilidades de busca através de uma base semântica (WordNet) para expansão de significados para cada uma das palavras (a palavra trabalhador poderia ser substituído na busca pelas palavras “ator”, “proletariado”, “operário”, …), como na figura 3.

Figura 3 — Processo computacional — RETRIEVE de “Worker fall from height” [1]

No estudo de caso do autor, a busca foi feita em diversas bases de dados de incidentes (ex: WorkSafeBC e NIOSH) e a query utilizada foi “Worker fall from height” em conjunto com a técnica de expansão semântica, e o sistema foi capaz de retornar os resultados mais relevantes de acordo com o cálculo de similaridade, como na Figura 4.

Figura 4 — Resultado da busca por “Worker fall from height” [1]

Portanto, o caso de Zou et al [1] ilustra como é possível usar técnicas de NLP com estatística (cálculo de frequência) em áreas ainda pouco exploradas, como a Construção Civil e outras que necessitam resolver problemas baseados em CBR. Ainda, um outro caso para o uso de RETRIEVE é o IBM Watson. Primeiramente projetado para participar do jogo Jeopardy contra os campeões humanos atuais no jogo. O Watson tem como preceito fundamental para responder a qualquer tipo de questões o objetivo primário de encontrar fontes de pesquisa relevantes e como muita da informação utilizada é provinda de textos é necessário utilizar uma forma de classificação: se um texto fornece evidência suficiente para ser usada na formação da resposta ou não.

O processo de RETRIEVE foca em pegar uma grande quantidade de dados e encontrar um pequeno subconjunto, o qual é relevante para uma pesquisa em particular. Uma técnica bastante utilizada para este tipo de procedimento de RETRIEVE é dada pela FT * IFD (Frequência do Termo * Inverso da Frequência do Documento) [3]. Esta técnica é baseada na observação de que a relevância do documento para a pesquisa tende a aumentar com o número de vezes que o termo pesquisado aparece no texto, mas diminui com o número de vezes que aqueles termos pesquisados aparecem no conjunto total de dados pesquisados, ou seja, se algum termo na pesquisa aparece com muita frequência em um único documento e raramente no total de documentos pesquisados, então há uma evidência considerável de que este documento é um dos mais úteis para a pesquisa. Em contraste, se o termo aparece em muitos documentos, então o termo não é útil para decidir se o documento é relevante para aquela pesquisa em particular.

Referências:

[1] Zou, Yang; Kiviniemi, Arto; Jones, Stephen. “Retrieving similar cases for construction project risk management using Natural Language Processing techniques”. Journal of Automation in Construction, vol. 80, p. 66–76. 2017.

[2] C. D. Manning and H. Schütze, Foundations of Statistical Natural Language Processing. Cambridge, MA, USA: MIT Press, 1999.

[3] J W Murdock, G Tesauro. Statistical Approaches to Question Answering in Watson. Mathematics Awareness Month theme essay, Joint Policy Board for Mathematics (JPBM), 2012

--

--

Bruno Oliveira
Internet das Coisas

Auditor, escritor, leitor e flanador. Mestrando em TI, tropecei na bolsa de valores. Acredito nas estrelas, não nos astros. Resenho pessoas e o tempo presente.