Alura > Cursos de Data Science > Cursos de Machine Learning > Conteúdos de Machine Learning > Primeiras aulas do curso Classificação multilabel de textos: múltiplos contextos em NLP

Classificação multilabel de textos: múltiplos contextos em NLP

Entendendo a classificação multilabel - Introdução

Sejam vocês a mais um curso de machine learning na Alura. Neste curso, vamos trabalhar com classificação multilabel. Para entender bem o conceito, vamos precisar relembrar outros tipos de classificação. Por exemplo, onde tenho dois títulos e preciso classificar como novela ou não novela. São duas possibilidades, então é uma classificação binária.

Mas não ficaremos relembrando apenas a classificação binária. Iremos trabalhar também com outros problemas, em que tenho mais de duas classes. Por exemplo, filmes, novela e série. Classifico cada um deles, tendo uma situação de classificação multiclasses, em que tenho mais de duas classes possíveis.

Vou querer analisar outra situação. No caso, será a classificação dos gêneros de filmes. Iremos usar o Star Wars. Ele pode ser fantasia, ação. Mas não é comédia. Ele tem duas labels. É uma classificação multilabel.

Vai ser importante deixar clara a diferença entre a classificação multilabel e a de múltiplas classes. Vamos fazer isso aqui neste curso. Mas não vamos ficar apenas na teoria. Para colocar em prática, vamos desenvolver um projeto que vai realizar a classificação automática de questões do stack over flow. Iremos reparar em como elas são tagueadas. Essas labels representam as características da pergunta e são mais do que duas, como o gênero do filme. Iremos criar um modelo de machine learning capaz de realizar a classificação automática das tags do stack over flow.

Iremos passar por todo o pip line de classificação multilabel, desde a captura da base de dados até como manipular os dados para que possam ser interpretados da melhor maneira possível para um modelo de machine learning, com a divisão entre os dados de treino e teste.

Depois de realizar a divisão dos dados, iremos criar o primeiro modelo, conhecido como relevância binária. Nele, vamos obter um resultado, que é a acurácia. Ela precisa ser interpretada de uma maneira bem específica na classificação multilabel. Iremos entender isso em detalhes. Depois, iremos conhecer outra métrica muito útil para classificação conhecida como hamming loss. Então, vamos perceber que as tags têm algum tipo de relação, iremos conhecer modelos de machine learning capazes de capturar essa correlação. No caso, uma classificação em cadeia. Esse modelo está implementado em uma biblioteca chamada scikit multilearn. É específica para classificação de dados multilabel.

Após conhecer a classificação em cadeia, vamos conhecer o MLKNN. Ele é um KNN para classificação multilabel. Ele faz a adaptação do algoritmo KNN para realizar a classificação multilabel. Vamos entender o passo a passo dele. Depois, como o MLKNN introduz esse conceito para o algoritmo KNN de maneira bem intuitiva.

Vamos entender tudo que está relacionado com a classificação multilabel, como trabalhar com o preparo dos dados, realizar a classificação quando tenho situações de classificação multilabel.

Entendendo a classificação multilabel - Explorando o problema

Bem-vindos a mais um curso de machine learning na Alura. Como vimos na introdução vamos criar um modelo de machine learning capaz de classificar as perguntas do stack over flow de acordo com seu conteúdo. Antes de colocarmos a mão na massa, vamos conhecer melhor o que é o stack over flow e o que são as labels. Podemos procurar no Google. Clique na primeira opção. Embaixo das principais perguntas, temos as questões, com dados números, quantidade de votos, respostas, visitas, e logo em seguida o título da questão e as tags.

Com as tags, sem precisar entrar na questão já sei qual o assunto, facilitando no momento da busca. Para colocar essas tags, coloco fazendo uma pergunta no campo escrito tags os temas da minha pergunta. O site poderia ter um algoritmo que sugerisse as tags para nós. Se eu concordar, eu aceito. Se não, tiro a tag. Facilitaria a vida. E ele ainda pode sugerir coisas que não escrevemos, fazendo recomendações.

Agora que entendemos melhor como nosso algoritmo pode ser útil no dia a dia, vamos iniciar o setup do que precisamos para iniciar o curso. A primeira coisa é que você acesse um link para ver as informações do curso. Iremos fazer o download dessa pasta, descompactar, extrair e abrir os dados. Dentro da pasta estão os dados que vamos utilizar para treinar nosso modelo.

Vamos criar um colab do Google no drive. Ele serve para usarmos as máquinas do Google sem precisar fazer um setup muito grande. É muito bom. Estamos trabalhando com a máquina do Google. Baixamos os dados no computador, então precisamos enviar os dados para a máquina, fazendo o upload e selecionando o arquivo.

Agora, preciso importar o meu dado para trabalhar. Iremos fazer isso através do Pandas. Minha variável vai ter o nome perguntas. Passo o nome do arquivo que quero ler. Temos nossa base de dados para trabalhar, com o id, as perguntas e as tags. Tenho as tags angular, JQuery, node, html. Repare que posso ter duas tags na mesma coluna. Na maioria das bases de dados até agora cada coluna só tinha uma informação. Isso me parece algo novo. Vamos entender nosso problema neste curso.

Entendendo a classificação multilabel - Classificadores

Agora, precisamos conhecer o tipo de problema com o qual estamos lidando. Antes, vamos relembrar alguns conceitos, outros classificadores que vão ajudar a construir nosso modelo. Tenho dois títulos, no caso Star Wars e Avenida Brasil. Tenho que informar se aquele título é novelo ou não. Quando tenho essa situação, posso usar a classificação binária, porque tenho só duas possibilidades. No caso, Star Wars não é, coloco 0, Avenida Brasil é, coloco 1.

E se eu tiver mais de duas classes? Vamos adicionar a categoria série, com Star Wars, Friends e Avenida Brasil. Nosso objetivo é classificar esses títulos. Star Wars é filme. Avenida Brasil novela e Friends série. Cada instância está presente em uma bolinha.

Com esse tipo de problema, temos uma classificação de múltiplas classes. Na nossa situação, tínhamos duas características diferentes. Vamos exemplificar com filme, com o gênero. Star Wars encaixa em ação e fantasia. Mas não é comédia. O IMDB classifica como ação, aventura e fantasia. Esse tipo de classificação é conhecida como multilabel. Isso é mais similar com o problema com o qual vamos lidar nas questões do stack over flow, em que uma instância tem mais de um tipo de classificação.

Na classificação multiclasses, cada ícone só vai estar presente em uma bolinha. Na multilabel, a instância pode estar presente em mais de uma label. Agora vamos precisar trabalhar com nossa base de dados para realizar esse tipo de classificação.

Sobre o curso Classificação multilabel de textos: múltiplos contextos em NLP

O curso Classificação multilabel de textos: múltiplos contextos em NLP possui 190 minutos de vídeos, em um total de 55 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Machine Learning acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas