Use o Alexa – Desenvolva assistentes virtuais

Tipos de alexa que podem ser comprados no Brasil

A Amazon permite empresas desenvolver assistentes virtuais customizados a partir da Alexa.

O uso de assistentes de voz cresce a cada ano. A tendência é que eles não fiquem limitados às caixas de som inteligentes e aos smartphones, migrando para outros dispositivos.

Como criar um dispositivo de voz, a partir do zero, é muito difícil, adaptar uma versão a partir do que já existe faz sentido.

A montadora Fiat Chrysler já está planejando integrar o sistema Alexa da Amazon a seus carros.

A Amazon vem se destacando pela venda de tecnologias como serviço. Recentemente, ela passou a licenciar o sistema Amazon Go, de gerenciamento de lojas, sem contato físico.

A empresa também é dona da divisão de computação em nuvem AWS, uma das maiores do mundo, aberta para clientes externos.

Ambas as tecnologias foram criadas incialmente para atender à Amazon e, só depois, foram disponibilizadas a outras empresas.

Essa característica de inovação constante deve levar a Amazon a criar, em breve, novas tecnologias que possam ser comercializadas.

A idéia é que esta tecnologia entre de vez nas empresas, veja este artigo.

O que é o Processamento de Linguagem Natural e como podemos usar a Alexa?

O Processamento de Linguagem Natural (PLN) é a subárea da Inteligência Artificial (IA) que estuda a capacidade e as limitações de uma máquina em entender a linguagem dos seres humanos, precisamente o que assistentes como a Alexa faz. O objetivo do PLN é fornecer aos computadores a capacidade de entender e compor textos. “Entender” um texto significa reconhecer o contexto, fazer análise sintática, semântica, léxica e morfológica, criar resumos, extrair informação, interpretar os sentidos, analisar sentimentos e até aprender conceitos com os textos processados.

Mesmo com o avanço no relacionamento homem-máquina, a comunicação via linguagem natural continua sendo um desafio: como criar programas capazes de interpretar mensagens codificadas em linguagem natural e decifrá-las para a linguagem de máquina? Com o passar dos anos, houveram muitas pesquisas e desenvolvimentos nos mais diversos ramos do processamento de linguagem natural, destacando-se a tradução automática, considerada pela maioria como o marco inicial na utilização dos computadores para o estudo das línguas naturais.

De modo geral, no PLN, buscam-se soluções para questões computacionais que requerem o tratamento computacional de uma ou mais línguas naturais, quer sejam escritas ou faladas. Mais precisamente, o PLN dedica-se a propor e desenvolver sistemas computacionais que têm a língua natural escrita como objeto primário. Para tanto, linguistas e cientistas da computação, buscam fundamentos em várias disciplinas: Filosofia da Linguagem, Psicologia, Lógica, Inteligência Artificial, Matemática, Ciência da Computação, Linguística Computacional e Linguística.

Para modelar a língua e possibilitar que a máquina a entenda, são necessários pré-processamentos que abstraem e estruturam a língua, deixando apenas o que é informação relevante. Esse pré-processamento reduz o vocabulário e torna os dados menos esparsos, característica conveniente para o processamento computacional.

A seguir, são mostradas 5 tarefas muito utilizadas no pré-processamento textual, tudo isso fica empacotado nas APIs da Alexa:

Normalização

A normalização abrange tratativas como a tokenização, transformação de letras maiúsculas para minúsculas, remoção de caracteres especiais, remoção de tags HTML/Javascript/CSS, dentre outras. O processo de tokenização tem como objetivo separar palavras ou sentenças em unidades. A tokenização lexical marca cada palavra como um token no texto, identificando-a mesmo se tiver encostada em alguma pontuação. Um exemplo de texto tokenizado lexicalmente seria:

Image for post

A tokenização sentencial identifica e marca sentenças. Um exemplo seria:

Image for post

A normalização é importante por começar a estruturar o texto, já que os processamentos seguintes atuam em cima de unidades sentenciais e lexicais.

Remoção de Stopwords

Uma das tarefas muito utilizadas no pré-processamento de textos é a remoção de stopwords. Esse método consiste em remover palavras muito frequentes, tais como “a”, “de”, “o”, “da”, “que”, “e”, “do” entre outras, pois na maioria das vezes não são informações relevantes para a construção do modelo. Remova stopwords somente quando não forem relevantes para a tarefa. No caso da Análise de Sentimentos, não poderíamos remover a stopword “não”, pois traz uma conotação de negatividade para a sentença, indicando justamente o sentimento transmitido. Uma lista de stopwords pode facilmente ser encontrada disponível na internet.

Remoção de numerais

Outra remoção necessária é dos numerais presentes no texto. Eles não agregam informação relevante por não trazerem carga semântica. Remova também os símbolos que os acompanham, como “R$”, “$”, “US$”, “kg”, “km”, “milhões”, “bilhões” dentre outros.

Correção Ortográfica

Os corretores ortográficos (Spell Checkers) são muito usuais para tratar um dataset que contém erros de digitação, abreviações e vocabulário informal. Esses erros são prejudiciais por gerarem novos tokens, aumentando a esparsidade dos dados. Uma boa introdução à verificação ortográfica pode ser encontrada na página da Peter Norvig (http://norvig.com/spell-correct.html). O artigo apresenta uma simples implementação de um corretor ortográfico de 21 linhas em Python, combinando modelos simples de linguagem e erro para prever a palavra que um usuário pretende digitar. É necessário ter um grande córpus no idioma para o qual o corretor ortográfico será projetado, que precisa ser contemporâneo e de linguagem formal. Uma sugestão são córpus de gênero jornalístico e literário. Estima-se a probabilidade de uma determinada palavra ‘C’ estar no córpus, que pode ser escrita como ‘P(C)’. O modelo de erro estima a probabilidade ‘P(W|C)’ do usuário digitar a versão incorreta ‘W’ condicionalmente à intenção de digitar a palavra correta ‘C’. O corretor ortográfico retorna a palavra ‘C’ correspondente ao valor mais alto de ‘P(W|C) P(C)’ entre todas as palavras presentes no córpus.

Stemização e Lematização

O processo de stemização (do inglês, stemming) consiste em reduzir uma palavra ao seu radical. A palavra “meninas” se reduziria a “menin”, assim como “meninos” e “menininhos”. As palavras “gato”, “gata”, “gatos” e “gatas” reduziriam-se para “gat”. A lematização reduz a palavra ao seu lema, que é a forma no masculino e singular. No caso de verbos, o lema é o infinitivo. Por exemplo, as palavras “gato”, “gata”, “gatos” e “gatas” são todas formas do mesmo lema: “gato”. Igualmente, as palavras “tiver”, “tenho”, “tinha”, “tem” são formas do mesmo lema “ter”. A vantagem de aplicar a stemização ou lematização é clara: redução de vocabulário e abstração de significado.

Esses pré-processamentos são de cunho morfossintático, que atuam em cima de itens lexicais, ou seja, palavras. Em postagens futuras traremos processamentos de nível sintático e semântico.

Fontes:

Alexa (Amazon) https://www.amazon.com.br/dp/B07PDHSJ1H/ref=as_sl_pc_tf_til?tag=abracd-20&linkCode=w00&linkId=e2d4c18b38a994e1bbfd405fc657cdba&creativeASIN=B07PDHSJ1H

(MIT Technology Review Brasil) mittechreview.com.br

Bots Brasil – https://medium.com/botsbrasil/

Be the first to comment

Leave a Reply