Módulo 3, Fundamentos de NLP

Um assistente educacional vive de texto, as perguntas dos alunos chegam em linguagem natural, e é preciso entendê-las. Mas modelos trabalham com números, não com frases. Este módulo é sobre essa travessia, como transformar texto em algo que um computador consegue processar, usando as técnicas clássicas de Processamento de Linguagem Natural que ainda hoje formam a base do campo.

Para não ficar no abstrato, uma mesma coleção de perguntas de alunos atravessa as cinco aulas e vai sendo lapidada a cada etapa. Primeiro quebramos o texto em tokens, depois removemos as palavras vazias, em seguida aproximamos variações de uma mesma palavra, então viramos tudo em vetores de contagem e, por fim, damos pesos inteligentes a cada palavra. No final, esses passos se juntam em um classificador que descobre o tema de uma pergunta, que é o projeto que fecha o módulo.

As cinco aulas

Aula Tema O que você faz na prática
1 Tokenização Constrói um tokenizador que trata pontuação e maiúsculas
2 Stopwords Remove palavras vazias e vê a lei de Zipf nos dados
3 Stemming e lemmatização Implementa um stemmer simples para o português
4 Bag of Words Vira texto em vetores e mede similaridade do cosseno
5 TF-IDF Dá pesos às palavras e classifica perguntas por tema

As aulas se encadeiam, e o texto processado em uma vira a entrada da seguinte. As três primeiras tratam do pré-processamento, e as duas últimas, da representação vetorial, onde mora o projeto integrador.

O que você leva deste módulo

Ao terminar, você sabe pegar uma frase crua e prepará-la para qualquer tarefa de texto, entende por que algumas palavras valem mais que outras, e consegue construir um classificador de texto simples do zero. Também leva uma percepção importante, a de que essas representações clássicas ignoram a ordem e o significado das palavras, uma limitação que abre caminho para os embeddings do Módulo 4.

Projeto do módulo

O projeto integrador está na quinta aula, um classificador de perguntas de alunos por tema, construído de ponta a ponta com tudo o que o módulo ensinou, tokenização, remoção de stopwords, normalização, vetores TF-IDF e classificação por similaridade do cosseno. É um sistema pequeno, transparente e que de fato funciona, uma boa peça de portfólio.

Pré-requisitos

O Módulo 2 ajuda a entender a parte de classificação e avaliação. Os notebooks deste módulo são em Python puro, com as bibliotecas re, collections e math, então rodam sem instalar nada além do Python descrito em docs/setup.md. As bibliotecas dedicadas de NLP, como NLTK e spaCy, aparecem como sugestão de aprofundamento.

Material de apoio