Como preparar artigos de notícias para resumo de texto

Como preparar artigos de notícias para resumo de texto

O resumo de texto é a tarefa de criar um resumo curto, preciso e fluente de um artigo.

Um conjunto de dados popular e gratuito para uso em experimentos de resumo de texto com métodos de aprendizagem profunda é o conjunto de dados de histórias da CNN News.

Neste tutorial, você descobrirá como preparar o conjunto de dados CNN News para o resumo de texto.

Depois de concluir este tutorial, você saberá:

  • Sobre o conjunto de dados CNN News e como baixar os dados da história para sua estação de trabalho.
  • Como carregar o conjunto de dados e dividir cada artigo em texto de história e destaques.
  • Como limpar o conjunto de dados pronto para modelagem e salvar os dados limpos em um arquivo para uso posterior.

Comece seu projeto com meu novo livro Deep Learning for Natural Language Processing, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos começar.

Como preparar artigos de notícias para resumo de texto

Como preparar artigos de notícias para resumo de texto
Foto de DieselDemon, alguns direitos reservados.

Visão geral do tutorial

Este tutorial é dividido em 5 partes; eles estão:

  1. Conjunto de dados de notícias da CNN
  2. Inspecione o conjunto de dados
  3. Carregar dados
  4. Limpeza de Dados
  5. Salvar dados limpos

Precisa de ajuda com Deep Learning for Text Data?

Faça meu curso intensivo de e-mail gratuito de 7 dias agora (com código).

Clique para se inscrever e também obter uma versão gratuita do Ebook em PDF do curso.

Comece Seu Crash-Course GRÁTIS Agora

Conjunto de dados de notícias da CNN

O DeepMind Q&A Dataset é uma grande coleção de artigos de notícias da CNN e do Daily Mail com perguntas associadas.

O conjunto de dados foi desenvolvido como uma tarefa de perguntas e respostas para o aprendizado profundo e foi apresentado no artigo de 2015 "Teaching Machines to Read and Comprehend".

Este conjunto de dados foi usado na sumarização de textos, em que frases de artigos de notícias são resumidas. Exemplos notáveis ​​são os jornais:

Kyunghyun Cho é um acadêmico da Universidade de Nova York e disponibilizou o conjunto de dados para download:

Neste tutorial, trabalharemos com o conjunto de dados da CNN, especificamente o download do texto ASCII das notícias disponíveis aqui:

Este conjunto de dados contém mais de 93.000 artigos de notícias, onde cada artigo é armazenado em um único “.história" Arquivo.

Baixe este conjunto de dados para sua estação de trabalho e descompacte-o. Depois de baixado, você pode descompactar o arquivo em sua linha de comando da seguinte maneira:

Isso criará um cnn / stories / diretório preenchido com .história arquivos.

Por exemplo, podemos contar o número de arquivos de história na linha de comando da seguinte maneira:

O que nos mostra que temos um total de 92.580 lojas.

Inspecione o conjunto de dados

Usando um editor de texto, revise algumas das histórias e anote algumas idéias para preparar esses dados.

Por exemplo, abaixo está um exemplo de uma história, com o corpo truncado para abreviar.

Observo que a estrutura geral do conjunto de dados é ter o texto da história seguido por uma série de “realçar" pontos.

Revendo artigos no site da CNN, posso ver que esse padrão ainda é comum.

Exemplo de um artigo de notícias da CNN com destaques de cnn.com

Exemplo de um artigo de notícias da CNN com destaques de cnn.com

O texto ASCII não inclui os títulos dos artigos, mas podemos usar esses “luzes”Como múltiplos resumos de referência para cada artigo de notícias.

Também posso ver que muitos artigos começam com informações da fonte, provavelmente o escritório da CNN que produziu a história; por exemplo:

Eles podem ser removidos completamente.

A limpeza de dados é um problema desafiador e deve ser adaptada para a aplicação específica do sistema.

Se estivermos geralmente interessados ​​em desenvolver um sistema de resumo de artigos de notícias, podemos limpar o texto para simplificar o problema de aprendizagem, reduzindo o tamanho do vocabulário.

Algumas idéias de limpeza de dados para esses dados incluem.

  • Normalize maiúsculas e minúsculas (por exemplo, “Um italiano”).
  • Remova a pontuação (por exemplo, “dentro do prazo”).

Também poderíamos reduzir ainda mais o vocabulário para acelerar os modelos de teste, como:

  • Remova os números (por exemplo, “93,4%”).
  • Remova palavras de baixa frequência, como nomes (por exemplo, “Tom Watkins”).
  • Truncando histórias nas primeiras 5 ou 10 frases.

Carregar dados

A primeira etapa é carregar os dados.

Podemos começar escrevendo uma função para carregar um único documento dado um nome de arquivo. Os dados têm alguns caracteres Unicode, portanto, carregaremos o conjunto de dados forçando a codificação a ser UTF-8.

A função abaixo nomeada load_doc () irá carregar um único documento como texto com um nome de arquivo.

Em seguida, precisamos passar por cima de cada nome de arquivo no diretório de histórias e carregá-los.

Podemos usar o listdir () para carregar todos os nomes de arquivos no diretório e, em seguida, carregue um por vez. A função abaixo nomeada load_stories () implementa esse comportamento e fornece um ponto de partida para preparar os documentos carregados.

Cada documento pode ser separado no texto da notícia e nos destaques ou texto de resumo.

A divisão para esses dois pontos é a primeira ocorrência do '@realçar' símbolo. Depois de divididos, podemos organizar os destaques em uma lista.

A função abaixo nomeada split_story () implementa esse comportamento e divide um determinado texto de documento carregado em uma história e uma lista de destaques.

Agora podemos atualizar o load_stories () função para chamar o split_story () para cada documento carregado e, em seguida, armazene os resultados em uma lista.

Combinando tudo isso, o exemplo completo de carregamento de todo o conjunto de dados está listado abaixo.

Você também pode estar interessado em