# Geração de linguagem natural

A geração de linguagem natural (GLN) é o subcampo da inteligência artificial e linguística computacional que se concentra em sistemas de computador que podem produzir textos compreensíveis em línguas humanas. Normalmente partindo de alguma representação não linguística da informação como entrada, os sistemas GLN usam o conhecimento sobre a linguagem e o domínio da aplicação para produzir, automaticamente, documentos, relatórios, explicações, mensagens de ajuda e outros tipos de textos. GLN também pode ser usada para gerar pequenas notas de texto em conversas interativas (um chatbot) que podem até ser lidas por um sintetizador de voz.

## Introdução

GLN pode ser comparado ao processo que os humanos usam quando transformam ideias em texto ou fala. Os psicolinguistas preferem o termo produção da linguagem para esse processo, que também pode ser descrito em termos matemáticos ou modelado em um computador para pesquisas psicológicas. Os sistemas GLN também podem ser comparados a descompiladores, que também produzem código legível por humanos gerado a partir de uma representação intermediária. As linguagens humanas tendem a ser consideravelmente mais complexas e permitem muito mais ambiguidade e variedade de expressões do que as linguagens de programação, o que torna a GLN mais desafiadora.
A GLN está intimamente relacionada ao Entendimento da Linguagem Natural (ELN), que é o estudo dos sistemas de computador que entendem a linguagem humana. Tanto o ELN quanto o GLN estão interessados nos modelos computacionais de linguagem e seu uso, eles compartilham muitos dos mesmos fundamentos teóricos e são frequentemente usados em conjunto em programas de computador. Juntos, o ELN e a GLN formam o campo do processamento de linguagem natural (PLN).

## Etapas

O processo de geração de texto pode ser tão simples quanto manter uma lista de texto que é copiado e colado. Os resultados podem ser satisfatórios em domínios simples, como geradores de cartas comerciais personalizadas. No entanto, um sistema GLN sofisticado precisa incluir etapas de planejamento e combinação de informações para permitir a geração de um texto que pareça natural e não se torne repetitivo. As etapas típicas de geração de linguagem natural, conforme proposto por Dale e Reiter, são:

### Determinação do conteúdo

Decidir quais informações mencionar no texto. Talvez a questão mais fundamental seja o objetivo do texto, ou seja, o que o texto quer comunicar. O tamanho e o nível de detalhe do texto gerado é outro aspecto a se considerar. A determinação do conteúdo é muito importante para os usuários, na verdade, em muitos casos, a qualidade da determinação do conteúdo é o fator mais importante (da perspectiva do usuário) para determinar a qualidade geral do texto gerado.

### Estruturação de Documentos

Organização e estrutura geral das informações a se transmitir. Existem três abordagens básicas para a estruturação de documentos: esquemas, baseados em corpus e heurística.
Os esquemas são modelos que especificam explicitamente a ordem e o agrupamento das frases para um documento (assim como a determinação do conteúdo). Normalmente, eles são construídos analisando manualmente um corpus de textos escritos por humanos no gênero desejado e extraindo um modelo de documento desses textos. Os esquemas funcionam bem na prática para textos curtos (5 frases ou menos) e/ou com uma estrutura padronizada, mas apresentam problemas para gerar textos mais longos e sem estrutura fixa.
As técnicas de estruturação baseadas em corpus usam técnicas de análise estatística de corpus para construir automaticamente modelos de ordenação e/ou agrupamento. Essas técnicas são comuns na geração de resumos automáticos, em que um programa de computador gera automaticamente um resumo de um documento textual. Em princípio, eles poderiam ser aplicados a textos gerados a partir de dados não linguísticos, mas este trabalho ainda está incipiente. Geralmente se espera que os textos gerados por GLN sejam de qualidade razoavelmente alta, o que nem sempre é o caso para textos gerados por sistemas de geração de resumos automáticos.
A estruturação baseada em heurística se baseiam em regras heurísticas, que podem vir de teorias da retórica, modelos psicolinguísticos e/ou uma combinação de intuição e resultados de experimentos com usuários em potencial. A estruturação baseada em heurística é chamativa, mas pode ser difícil fazer com que funcione bem na prática, em parte porque as heurísticas frequentemente dependem de informações semânticas (como as sentenças se relacionam) que nem sempre estão disponíveis. Por outro lado, as regras heurísticas podem focar no que é melhor para leitores de texto, enquanto as outras abordagens focam na imitação de autores (e muitos textos de autoria humana não são bem estruturados).

### Agregação

Fusão de frases semelhantes para melhorar a legibilidade e a naturalidade. Por exemplo, mesclando as duas frases seguintes:
* João foi ao supermercado.
* João comprou um detergente.
em uma única frase:
* João foi ao supermercado e comprou um detergente.

### Escolha Léxica

É a subtarefa da GLN que envolve a escolha da classificação das palavras (substantivos, verbos, adjetivos e advérbios) em um texto gerado. Os modos de escolha léxica devem ser informados pelo conhecimento linguístico de como os dados de entrada do sistema são mapeados nas palavras. Esta é uma questão de semântica, mas também é influenciada pela sintaxe (como efeitos de colocação) e fatores pragmáticos (como contexto).

### Geração de Expressão de Referência

A geração de expressão de referência é a subtarefa da GLN que se concentra apenas na criação de expressões referenciais que identificam entidades específicas chamadas alvos. Esta tarefa pode ser dividida em duas partes. A parte de seleção de conteúdo determina qual conjunto de propriedades distingue o alvo pretendido e a parte de realização linguística define como essas propriedades são traduzidas em linguagem natural.

### Realização

Criação do texto propriamente dito, que deve ser correto de acordo com as regras de sintaxe, morfologia e ortografia. Por exemplo, usando será para o tempo futuro do verbo ser.
Uma abordagem alternativa ao GLN é usar o aprendizado de máquina de ponta a ponta para construir um sistema, sem ter estágios separados, como acima. Em outras palavras, construirmos um sistema GLN treinando um algoritmo de aprendizado de máquina (geralmente um LSTM) em um grande conjunto de dados de entrada e textos de saída correspondentes (escritos por humanos). A abordagem de ponta a ponta talvez tenha tido mais sucesso na geração de legendas de imagens.

## Aplicações

Do ponto de vista comercial, as aplicações GLN mais bem-sucedidos têm sido os sistemas que geram resumos textuais de bancos de dados e conjuntos de dados, esses sistemas geralmente realizam análise de dados, bem como geração de texto. A pesquisa mostrou que resumos textuais podem ser mais eficazes do que gráficos e outros recursos visuais para apoio à decisão, e que os textos gerados por computador podem ser superiores (da perspectiva do leitor) aos textos escritos por humanos.
Os primeiros sistemas comerciais de GLN produziram previsões meteorológicas a partir de dados meteorológicos. O mais antigo sistema a ser implantado foi o FoG, que foi usado pela Environment Canada para gerar previsões do tempo em francês e inglês no início dos anos 90. O sucesso do FoG desencadeou outros trabalhos, tanto de pesquisa quanto comercial.
Atualmente, há um interesse comercial considerável em usar GLN para resumir dados financeiros e de negócios. De fato, o Gartner disse que o GLN se tornará um recurso padrão de 90% das plataformas analíticas e de BI modernas. GLN também está sendo usado comercialmente em jornalismo automatizado, chatbots, gerando descrições de produtos para sites de comércio eletrônico, resumindo registros médicos, e melhorando a acessibilidade (por exemplo, descrevendo gráficos e conjuntos de dados para pessoas cegas).
Os sistemas de geração de conteúdo auxiliam as pessoas e tornam o processo de escrita mais eficiente e eficaz. Uma ferramenta de geração de conteúdo baseada em mineração web usando APIs de motores de busca foi construída. A ferramenta imita o processo de recortar e colar, em que um escritor forma seu conteúdo a partir de vários resultados de pesquisa. A verificação de relevância é essencial para filtrar resultados de pesquisa irrelevantes, é baseado na técnica árvore de decisão através de uma consulta das respostas candidatas nessa árvore. Em uma abordagem alternativa, uma estrutura de textos de alto nível (de autoria humana) é usada para construir automaticamente um modelo de conteúdo específico (ou modelo de documento específico) para um novo artigo da Wikipedia escrito automaticamente.

## Avaliação

Como em outros campos científicos, os pesquisadores de GLN precisam testar o quão bem seus sistemas, módulos e algoritmos funcionam. Isso é chamado de avaliação. Existem três técnicas básicas para avaliar sistemas de GLN:
* Avaliação baseada em tarefas (extrínsecas): dê o texto gerado a uma pessoa e avalie o quão bem isso a ajuda a executar uma tarefa (ou de outra forma a ajuda a atingir seu objetivo de comunicar algo). Por exemplo, um sistema que gera resumos de dados médicos pode ser avaliado fornecendo esses resumos aos médicos e avaliando se os resumos ajudam os médicos a tomarem melhores decisões.
* Avaliações humanas: dê o texto gerado a uma pessoa e peça que ela avalie a qualidade e a utilidade do texto.
* Métricas: compare os textos gerados com os escritos por pessoas, a partir dos mesmos dados de entrada, usando uma métrica automática como BLEU, METEOR ou ROUGE.
O objetivo principal é saber o quão úteis os sistemas de GLN são em ajudar as pessoas, o que é a primeira das técnicas acima. No entanto, as avaliações baseadas em tarefas são demoradas e caras, e podem ser difíceis de realizar (especialmente se exigirem sujeitos com conhecimentos especializados, como médicos). Consequentemente (como em outras áreas do PLN), as avaliações baseadas em tarefas são a exceção, não a norma.
Pesquisadores estão avaliando o quão bem as técnicas de avaliação e as métricas humanas se correlacionam (conseguem prever) com as avaliações baseadas em tarefas. O trabalho está sendo conduzido no contexto do Generation Challenges em um evento de tarefas compartilhadas.