Toxicité dans les tweets utilisant un modèle BERT

DEV - 11/04
L'objectif L'objectif de ce projet est de créer un modèle capable de classer avec précision certains...

Le but

Le but de ce projet est de créer un modèle capable de classer avec précision un morceau de texte comme toxique ou non. En gros, si toxicité = 1 ou 0.

C'est un problème très simple à résoudre, tout ce dont vous avez besoin est une base de données de textes toxiques et non, et vous pouvez ensuite entraîner votre modèle dessus.

L'ensemble de données

Le concours précise que le modèle doit être capable de prédire les textes écrits en portugais brésilien, donc l'ensemble de données est également en portugais.

L'ensemble de données est basé sur ToLD-Br, qui est un énorme ensemble de données de tweets (ou est-ce Xeets maintenant ?) qui contient des informations supplémentaires telles qu'une classification si le texte contient de l'homophobie, des obscénités, des insultes, du racisme, de la misogynie et de la xénophobie. L’ensemble de données du concours est cependant une simple colonne de toxicité.

A gauche, la colonne 'Texte' contient le tweet en question, et la colonne 'Toxicité' si le texte est toxique ou non (1 ou 0)

Problème de classement

Chaque fois que vous pensez à la classification, votre première hypothèse est que vous avez besoin d’une sorte de réseau neuronal.

Comme vous pouvez le deviner d'après le titre de l'article, BERT a été choisi car il est plus récent, il est construit dans une architecture de réseau neuronal qui utilise des transformateurs, ce qui est parfait pour le traitement du langage naturel (NLP).

Comment fonctionne le BERT ?

Les réseaux de neurones récurrents et convolutifs utilisent le calcul séquentiel pour générer des prédictions. Ils peuvent prédire quel mot suivra une séquence de mots donnés une fois formés sur d’énormes ensembles de données – ce comportement est surnommé algorithme unidirectionnel.

BERT, cependant, dispose d'un mécanisme appelé auto-attention, qui peut faire cette prédiction sur la base des mots qui précèdent mais aussi qui suivent, ou en d'autres termes, un algorithme bidirectionnel.

Source : Javier Canales Luna @ DataCamp

La formation

Tout d'abord, les données d'entraînement doivent être nettoyées afin que moins de caractères doivent être traités par notre modèle. Il existe une certaine théorie sur les personnages qui comptent et ceux qui ne le sont pas, mais j'ai choisi cette fonction finale pourformat_texte:

def format_text(text): # Convertir le texte en texte minuscule = text.lower() # Su...
[Courte citation de 8% de l'article original]
Loading...