Como começar a aprender profundo para processamento de linguagem natural

Como começar a aprender profundo para processamento de linguagem natural

Deep Learning for NLP Crash Course.

Traga métodos de aprendizado profundo para seu projeto de dados de texto em 7 dias.

Estamos inundados com textos de livros, jornais, blogs, tweets, notícias e, cada vez mais, textos de declarações faladas.

Trabalhar com texto é difícil, pois requer conhecimento de diversos domínios, como linguística, aprendizado de máquina, métodos estatísticos e, atualmente, aprendizado profundo.

Os métodos de aprendizado profundo estão começando a superar os métodos clássicos e estatísticos em alguns problemas desafiadores de processamento de linguagem natural com modelos singulares e mais simples.

Neste curso intensivo, você descobrirá como começar e desenvolver com segurança o aprendizado profundo para problemas de processamento de linguagem natural usando Python em 7 dias.

Esta é uma postagem grande e importante. Você pode querer marcá-lo.

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.

  • Atualização janeiro / 2020: API atualizada para Keras 2.3 e TensorFlow 2.0.
  • Atualização agosto / 2020: Link atualizado para o conjunto de dados de resenhas de filmes.
Como começar a aprender profundo para processamento de linguagem natural

Como começar a aprender profundo para processamento de linguagem natural
Foto de Daniel R. Blume, alguns direitos reservados.

Para quem é este curso intensivo?

Antes de começar, vamos verificar se você está no lugar certo.

A lista abaixo fornece algumas diretrizes gerais sobre para quem este curso foi desenvolvido.

Não entre em pânico se você não corresponder exatamente a esses pontos, talvez seja necessário retocar em uma área ou outra para acompanhar.

Você precisa saber:

  • Você precisa conhecer o básico Python, NumPy e Keras para um aprendizado profundo.

Você não precisa saber:

  • Você não precisa ser um gênio da matemática!
  • Você não precisa ser um especialista em aprendizado profundo!
  • Você não precisa ser um linguista!

Este curso intensivo levará você de um desenvolvedor que conhece um pouco de aprendizado de máquina para um desenvolvedor que pode trazer métodos de aprendizado profundo para seu próprio projeto de processamento de linguagem natural.

Observação: este curso intensivo pressupõe que você tenha um ambiente funcional Python 2 ou 3 SciPy com pelo menos NumPy, Pandas, scikit-learn e Keras 2 instalados. Se precisar de ajuda com seu ambiente, você pode seguir o tutorial passo a passo aqui:

Visão geral do Crash-Course

Este curso intensivo é dividido em 7 lições.

Você pode completar uma aula por dia (recomendado) ou completar todas as aulas em um dia (hardcore). Realmente depende do tempo que você tem disponível e do seu nível de entusiasmo.

Abaixo estão 7 lições que irão ajudá-lo a começar e a ser produtivo com aprendizado profundo para processamento de linguagem natural em Python:

  1. Lição 01: Aprendizado profundo e linguagem natural
  2. Lição 02: Limpeza de dados de texto
  3. Lição 03: Modelo Bag-of-Words
  4. Lição 04: Representação de incorporação de palavras
  5. Lição 05: Incorporação Aprendida
  6. Lição 06: Texto de classificação
  7. Lição 07: Projeto de análise de sentimento de crítica de filme

Cada lição pode levar 60 segundos ou até 30 minutos. Leve o seu tempo e conclua as lições em seu próprio ritmo. Tire suas dúvidas e até poste resultados nos comentários abaixo.

As aulas esperam que você saia e descubra como fazer as coisas. Vou dar dicas, mas parte do objetivo de cada lição é forçá-lo a aprender onde procurar ajuda sobre e sobre o aprendizado profundo, processamento de linguagem natural e as melhores ferramentas em Python (dica, Tenho todas as respostas diretamente neste blog, use a caixa de pesquisa).

Eu forneço mais ajuda na forma de links para postagens relacionadas porque quero que você crie um pouco de confiança e inércia.

Poste seus resultados nos comentários, vou torcer para vocês!

Aguente firme, não desista.

Observação: Este é apenas um curso intensivo. Para obter mais detalhes e 30 tutoriais detalhados, consulte meu livro sobre o tema “Aprendizado profundo para processamento de linguagem natural “.

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

Lição 01: Aprendizado profundo e linguagem natural

Nesta lição, você descobrirá uma definição concisa para linguagem natural, aprendizado profundo e a promessa de aprendizado profundo para trabalhar com dados de texto.

Processamento de linguagem natural

Processamento de linguagem natural, ou PNL para breve, é amplamente definido como a manipulação automática da linguagem natural, como fala e texto, por software.

O estudo do processamento de linguagem natural existe há mais de 50 anos e cresceu fora do campo da linguística com o surgimento dos computadores.

O problema de compreender o texto não está resolvido, e talvez nunca seja, principalmente porque a linguagem é confusa. Existem algumas regras. Mesmo assim, podemos nos entender facilmente na maior parte do tempo.

Aprendizado Profundo

O Deep Learning é um subcampo do aprendizado de máquina relacionado a algoritmos inspirados na estrutura e função do cérebro, chamados de redes neurais artificiais.

Uma propriedade do aprendizado profundo é que o desempenho desse tipo de modelo melhora, treinando-os com mais exemplos, aumentando sua profundidade ou capacidade de representação.

Além da escalabilidade, outro benefício frequentemente citado dos modelos de aprendizado profundo é a capacidade de realizar a extração automática de recursos de dados brutos, também chamado de aprendizado de recursos.

Promessa de Deep Learning para PNL

Os métodos de aprendizado profundo são populares para a linguagem natural, principalmente porque estão cumprindo o que prometem.

Algumas das primeiras grandes demonstrações do poder do aprendizado profundo foram no processamento de linguagem natural, especificamente no reconhecimento de fala. Mais recentemente, na tradução automática.

As três principais promessas de aprendizado profundo para processamento de linguagem natural são as seguintes:

  • A promessa de aprendizado de recursos. Ou seja, os métodos de aprendizado profundo podem aprender os recursos da linguagem natural exigidos pelo modelo, em vez de exigir que os recursos sejam especificados e extraídos por um especialista.
  • A promessa de melhoria contínua. Ou seja, que o desempenho do aprendizado profundo no processamento de linguagem natural é baseado em resultados reais e que as melhorias parecem estar continuando e talvez se acelerando.
  • A promessa de modelos de ponta a ponta. Ou seja, grandes modelos de aprendizado profundo de ponta a ponta podem ser adequados para problemas de linguagem natural, oferecendo uma abordagem mais geral e de melhor desempenho.

O processamento de linguagem natural não é “resolvido”, mas o aprendizado profundo é necessário para levá-lo ao estado da arte em muitos problemas desafiadores no campo.

Sua tarefa

Para esta lição, você deve pesquisar e listar 10 aplicações impressionantes de métodos de aprendizado profundo no campo do processamento de linguagem natural. Pontos de bônus se você puder vincular a um artigo de pesquisa que demonstra o exemplo.

Poste sua resposta nos comentários abaixo. Eu adoraria ver o que você descobrirá.

Mais Informações

Na próxima lição, você descobrirá como limpar dados de texto para que estejam prontos para modelagem.

Lição 02: Limpando Dados de Texto

Nesta lição, você descobrirá como pode carregar e limpar dados de texto para que estejam prontos para modelagem usando manualmente e com a biblioteca NLTK Python.

Texto bagunçado

Você não pode ir direto do texto bruto para se ajustar a um modelo de aprendizado de máquina ou aprendizado profundo.

Você deve limpar seu texto primeiro, o que significa dividi-lo em palavras e normalizar problemas como:

  • Caracteres maiúsculos e minúsculos.
  • Pontuação dentro e ao redor das palavras.
  • Números como valores e datas.
  • Erros ortográficos e variações regionais.
  • Caracteres Unicode
  • e muito mais…

Tokenização manual

Geralmente, nos referimos ao processo de transformar texto bruto em algo que podemos modelar como “tokenização”, onde ficamos com uma lista de palavras ou “tokens”.

Podemos desenvolver manualmente o código Python para limpar o texto e, muitas vezes, essa é uma boa abordagem, visto que cada conjunto de dados de texto deve ser tokenizado de uma maneira única.

Por exemplo, o fragmento de código abaixo carregará um arquivo de texto, dividirá os tokens por espaço em branco e converterá cada token em minúsculas.

Você pode imaginar como esse snippet poderia ser estendido para manipular e normalizar caracteres Unicode, remover pontuação e assim por diante.

Tokenização NLTK

Muitas das melhores práticas para tokenizar texto bruto foram capturadas e disponibilizadas em uma biblioteca Python chamada Natural Language Toolkit ou NLTK.

Você pode instalar esta biblioteca usando pip digitando o seguinte na linha de comando:

Depois de instalado, você também deve instalar os conjuntos de dados usados ​​pela biblioteca, por meio de um script Python:

ou via linha de comando:

Depois de instalado, você pode usar a API para tokenizar o texto. Por exemplo, o snippet abaixo carregará e criará um token para um arquivo de texto ASCII.

Há muitas ferramentas disponíveis nesta biblioteca e você pode refinar ainda mais os tokens limpos usando seus próprios métodos manuais, como remover pontuação, remover palavras de interrupção, lematização e muito mais.

Sua tarefa

Sua tarefa é localizar um livro clássico gratuito no site do Project Gutenberg, baixar a versão ASCII do livro e tokenizar o texto e salvar o resultado em um novo arquivo. Pontos de bônus por explorar as abordagens manual e NLTK.

Poste seu código nos comentários abaixo. Eu adoraria ver qual livro você escolheria e como faria para torná-lo um token.

Mais Informações

Na próxima lição, você descobrirá o modelo de saco de palavras.

Lição 03: Modelo Bag-of-Words

Nesta lição, você descobrirá o modelo de saco de palavras e como codificar texto usando esse modelo para que possa treinar um modelo usando as bibliotecas scikit-learn e Keras Python.

Saco de Palavras

O modelo de saco de palavras é uma maneira de representar dados de texto ao modelar texto com algoritmos de aprendizado de máquina.

A abordagem é muito simples e flexível e pode ser usada de várias maneiras para extrair recursos de documentos.

Um saco de palavras é uma representação de texto que descreve a ocorrência de palavras em um documento.

Um vocabulário é escolhido, onde talvez algumas palavras usadas com pouca frequência sejam descartadas. Um determinado documento de texto é então representado por meio de um vetor com uma posição para cada palavra do vocabulário e uma pontuação para cada palavra conhecida que aparece (ou não) no documento.

É chamado de “saco” de palavras, pois qualquer informação sobre a ordem ou estrutura das palavras no documento é descartada. O modelo se preocupa apenas com a ocorrência de palavras conhecidas no documento, e não onde no documento.

Saco de palavras com scikit-learn

A biblioteca Python scikit-learn para aprendizado de máquina fornece ferramentas para codificar documentos para um modelo de saco de palavras.

Uma instância do codificador pode ser criada, treinada em um corpus de documentos de texto ...

Você também pode estar interessado em