Conheça o vencedor regional de Call for Code 2020 para a América Latina Blog post

Natural Language Processing. Um pouco de história.

Natural Language Processing. Um pouco de história.

Pode ser que você nunca tenha ouvido falar em NLP (Natural Language Processing), mas, tenha certeza, você já utiliza essa tecnologia talvez sem saber. E faz algum tempo.

Quando você conversa com seu celular através de comandos de voz, quando você dá instruções faladas para a assistente virtual que tem em casa ou quando você pergunta algo para o manual cognitivo do seu carro, você está utilizando processamento de linguagem natural para cada uma dessas coisas. E esses são apenas alguns exemplos de aplicação.

Ao ouvir falar sobre isso, podemos pensar que é um conceito novo, mas não é e tem suas primeiras patentes datadas de 1930.

Obviamente, as primeiras tentativas não eram tão sofisticadas como as atuais. A tecnologia disponível na época não permitia, mas já era o início do que se tornaria uma das grandes revoluções da era digital: a capacidade de uma máquina entender a linguagem que os humanos falam de forma natural e fazer processamentos e extração de insights para tomada de decisões extremamente importantes.

Claro que não estamos falando de robôs que vão ser melhores que humanos ou dominar o mundo, estamos falando de uma tecnologia que já está sendo aplicada com resultados positivos comprovados e com potencial para crescer muito mais e fazer parte do nosso dia a dia definitivamente, inclusive criando novas oportunidades de trabalho e salvando vidas, sim, salvando vidas, pois já existem aplicações utilizando NLP para sugerir melhores opções de tratamento para doenças graves e até mesmo auxiliando médicos em diagnósticos mais rápidos e precisos.

Desde os primórdios do NLP até hoje, muito foi desenvolvido e vamos aprender um pouco sobre isso nesse artigo, guiando seus primeiros passos através de uma tecnologia tão diversa e com tanto potencial.

Onde tudo começou

As primeiras tentativas de NLP foram feitas com o intuito de relacionar palavras entre idiomas, o que hoje é feito o tempo todo pelos tradutores automáticos disponíveis na web, por exemplo, que aprendem e melhoram seus resultados diariamente com o uso de Aprendizado de Máquina e Inteligência Artificial.

Essas primeiras tentativas evoluíram para softwares. O primeiro documentado é de 1954, Georgetown Experimente, que foi conduzido pela Universidade de Georgetown (USA) e a IBM, que consistiu em um experimento para traduzir automaticamente mais de 60 expressões de Russo para Inglês.

A tecnologia continuou evoluindo até que chegamos nos famosos e atuais Chatbots. O primeiro foi desenvolvido em 1972. Todos sabemos hoje como eles funcionam. A maioria das interfaces web possuem um assistente virtual baseado neles, que substituem humanos em várias tarefas repetitivas. Também aprendem conforme são utilizados novamente, graças ao aprendizado de máquina.

A NLP foi amplamente desenvolvida desde então e após grande evolução na área de software, que possibilitou que as aplicações pudessem entender sentimentos e conversar com humanos com uma grande gama de expressões e eficiência, chegamos a uma das maiores revoluções na área, o IBM Watson. O super computador baseado em Inteligência Artifical e que é capaz de processar linguagem natural, venceu o Jeopardy!, famoso programa de perguntas e respostas americano. Em 2013, o mesmo Watson, começou a auxiliar médicos no hospital do câncer Memorial Sloan Kettering Cancer Center em NY, na gestão de decisões de tratamento de câncer de pulmão.

A evolução não parou aí. A cada momento uma nova aplicação é desenvolvida utilizando NLP, desde sistemas para veículos automotores, sistemas para hospitais, dispositivos móveis, gestão de grandes volumes de documentos e informações, entre outras aplicações que vêm se beneficiando de poder lidar com a forma não estruturada dos humanos se comunicarem.

Conceito. Tecnicamente falando

Trabalhar com NLP não é fácil. Pensando apenas no Português do Brasil como exemplo, imagine lidar com as diversas expressões utilizadas num país com dimensões continentais? Palavras que são usadas em uma região, não são utilizadas em outras, existem até mesmo expressões que são compreendidas em um local e em outro são ofensas graves.

A Inteligência Artificial, apesar de toda a evolução dos últimos anos, ainda não processa esse tipo de coisa com 100% de acerto. Esse é um dos desafios enfrentados pela tecnologia em constante desenvolvimento.

Para entendermos melhor como isso tudo funciona, vamos falar um pouquinho de teoria, de como a NLP funciona, olhando por dentro da tecnologia.

Usando um texto não estruturado como exemplo, as ferramentas de NLP disponíveis no mercado são capazes de identificar alguns grupos de informações, como categorias, conceitos, emoções, entidades, palavras chaves, entre outros dados que em conjunto são interpretados e os insights são gerados e utilizados para inúmeros fins, como por exemplo, responder a uma pergunta do usuário da mesma forma ou de forma mais completa que um humano.

Em resumo, o computador analisa as informações importantes e relevantes do texto e consegue fazer associações e retornar para o usuário dados pertinentes baseados apenas na informação não estruturada que os humanos geram por padrão.

Computadores são péssimos em analisar dados não estruturados, os mesmos foram criados para processar informações estruturadas com muita velocidade, o que justifica sua relevância, mas quando falamos de dados não estruturados, como ironia, entrelinhas, duplo sentido ou regionalismos, as máquinas não compreendem: elas são literais, os humanos não.

Computadores não são capazes de sentir, o que faz do Machine Learning um poderoso aliado para se utilizar NLP, temos que pensar nas soluções baseadas em processamento de linguagem natural como bebês, que com o tempo e instrução necessários aprenderá cada vez mais e será capaz de interpretar mais e melhor. A grande sacada da NLP é o poder de evoluir, de se adaptar ao seu propósito e de se aproximar do mundo real se utilizada de forma correta.

Nessa sopa de letrinhas de siglas, se você quiser se aprofundar ainda mais no assunto, processamento de linguagem natural está relacionado também ao estudo de Redes Neurais (RNNs) e Long-Short Term Memory (LSTMs), isso sem falar também em Deep Learning, além do Machine Learning que citamos acima.

Onde Natural Language Processing já está sendo usada com sucesso

Uma das áreas mais legais de pesquisar e estar atualizado em relação as novidades que a transformação digital tem trazido é a saúde. É simplesmente incrível ver como o potencial para chegar à cura de doenças graves e de melhores tratamentos para as crônicas vêm evoluindo. Atualmente NLP é um poderoso aliado nessas descobertas.

Um exemplo muito bom é o Watson for Drug Discovery. Uma tecnologia capaz de analisar grandes quantidades de dados não estruturados disponíveis em diversas fontes e cruzar todo tipo de informação realmente importante e dar aos médicos e pesquisadores novas alternativas de tratamentos para seus pacientes. Imagine a quantidade de texto, livros, teses e estudos relacionados a medicamentos e tratamentos para todas as doenças conhecidas pela humanidade? Agora imagina ter uma tecnologia que consiga processar a informação correta nesses documentos e devolver em forma de insights úteis? Para alguém com uma doença grave, que passa por tratamento com medicação é a diferença entre viver ou morrer, entre viver bem e com qualidade ou sofrer com efeitos colaterais de tratamentos que não foram feitos sobre medida para o seu organismo e doença.

O Watson for Drug Discovery assim como todas as tecnologias baseadas em NLP é capaz de identificar entidades, palavras-chaves e fazer o relacionamento entre elas. Cada doente tem sua particularidade, pessoas diferentes com a mesma doença podem ter diferentes reações às mesmas medicações ou podem ter alterações diferentes em seu organismo e a velocidade com que a equipe médica consegue intervir nesses obstáculos do caminho, pode aumentar a expectativa e qualidade de vida dos pacientes.

https://www.youtube.com/watch?v=K_QgY05HXDo

Agora pense nisso tudo… e uma pessoa com câncer? Uma das doenças mais cruéis e com maior taxa de mortalidade que a humanidade conhece.

Natural Language Processing está ajudando a melhorar o tratamento, diminuir tempo de diagnóstico dos tipos mais raros, entre outros benefícios para equipes que lidam com esse ecossistema.

Há muito estudo realizado no assunto. Há muitos medicamentos, muitas equipes ao redor do mundo lidando com todo tipo de variação da doença. Como reunir tudo isso e facilitar o acesso para as equipes e assim, otimizar o processo todo?

Essa é uma das funções do Watson for Oncology.

Além de ser capaz de processar o que há de novo em muitos estudos espalhados pelo mundo, utilizando NLP o Watson for Oncology consegue reunir informações relevantes e extremamente personalizadas para cada paciente, assim como o Drug Discovery, identificando entidades e fazendo relações entre o caso de cada pessoa, seu histórico familiar e informações de outros pacientes prévios que desenvolveram a mesma condição. E isso só é possível utilizando processamento de linguagem natural, já que os seres humanos não produzem informação estruturada como as máquinas fazem, portanto, a forma de interligar todo esse tipo de informação não é tão simples assim, mas já é possível, já funciona e já é real.

https://www.youtube.com/watch?v=8_bi-S0XNPI

Ainda há inclusive a possibilidade de o médico conversar com a ferramenta, assim como já fazemos com as assistentes virtuais dos nossos smartphones, o Watson entende, processa e devolve a resposta que melhor se encaixa na dúvida do profissional de saúde. Já imaginou o quanto isso pode agilizar um tratamento? E em se tratando de uma doença tão agressiva quanto o câncer, essa rapidez pode salvar a vida do doente.

Agora, saindo um pouco do campo da medicina e indo para a indústria automobilística, nós também temos uma série de evoluções envolvendo NLP e a forma como o motorista interage com o seu veículo. Recentemente, em parceria com a Volkswagen, a IBM desenvolveu o manual cognitivo para o Virtus. O manual permite que o usuário converse com uma assistente virtual, que interpreta linguagem natural e responde dúvidas que antes só poderiam ser sanadas lendo as várias páginas do manual impresso do carro.

Também temos evoluções significativas no campo legal, utilizando todas as possibilidades que poder interpretar linguagem não estruturada pode trazer. Você deve saber que processos legais, documentos e tudo que envolve o direito e a lei está descrito em pilhas intermináveis de papel, não é mesmo? E isso é no mundo todo, não é uma característica exclusiva do Brasil. Em qualquer país, legislar significa muito papel.

Agora imagine a dificuldade de processar toda essa informação? Isso se traduz na morosidade da justiça em julgar processos e tomar decisões baseadas em informações perdidas nesse monte de documentos. NLP pode e já está ajudando nisso. O IBM LegalMation da IBM faz exatamente isso, facilita a vida de quem precisa trabalhar com processos judiciais.

Poderíamos falar horas seguidas aqui sobre as diversas soluções que estão disponíveis no mercado e que usam processamento de linguagem natural, mas a intenção era falar um pouco sobre o que é essa tecnologia e como ela já está sendo utilizada e transformando a forma como diversas áreas trabalham, acelerando processos, poupando dinheiro e salvando vidas.

Na prática.

É fácil fazer uma simulação e entender melhor como NLP funciona. Vamos dar uma olhada no Watson Knowledge Studio e uma demo simples que nos mostra o funcionamento da ferramenta e qual tipo de resultado podemos obter utilizando-a.

Primeiro precisamos acessar o site da demonstração:

http://knowledge-studio-demo.ng.bluemix.net/?cm_mc_uid=58861975702015529299109
&cm_mc_sid_50200000=83580331553188484033&cm_mc_sid_52640000=15537751553188484052

print da página Watson Knoledge Studio

Dentre as três opções, escolhi Medicine, clicando em cima do quadradinho do meio:

A ferramenta dá a opção de fazer uma análise simples do texto, sem aplicação de Machine Learning em Inteligência Artificial, somente análise gramatical. O resultado é esse:

print model to be used

Você também tem a opção de visualizar como fica a saída dessa informação em Json, para quem vai usar essas informações em algum tipo de aplicação própria:

print do código json

Agora, usando o Knowledge Studio, temos uma saída muito mais completa, com muito mais informações relevantes e conseguimos entender como é possível fazer a diferença utilizando NLP:

print do analist result

O Json também fica muito mais completo:

print do analist result

Não deixe de acessar a ferramenta para fazer seus próprios testes, analisar o código e aprender sobre esse poderoso aliado em diversos tipos de análise e expanda as possibilidades no desenvolvimento de suas aplicações.

Espero que essa breve explicação tenha sido útil e te ajudado a conhecer um pouquinho de como NLP, processamento de linguagem natural funciona e está revolucionando o mundo. Que essa leitura tenha estimulado sua curiosidade em pesquisar e aprender mais sobre o assunto.

Bibliografia

https://en.wikipedia.org/wiki/History_of_natural_language_processing

https://pt.wikipedia.org/wiki/Processamento_de_linguagem_natural

https://towardsdatascience.com/an-easy-introduction-to-natural-language-processing-b1e2801291c1