Sexist-speech Recognition

Ce repository a été créé dans le cadre d’une formation en Data Science dispensée par l’organisme de formation Le Wagon par Camille, Chen, Anatole et Liam .

Les objectifs de ce projet étaient :

  • Créer une base consolidée (à l’aide de bases de données labellisées par des chercheurs) pour entraîner le modèle de Deep Learning à la reconnaissance de messages sexistes. Pour éviter les doublons une fois les bases assemblées, nous avons effectué une étape de nettoyage et suppression des “duplicates”.

  • Créer une base d’analyse en vue de la démonstration des capacités du modèle “en conditions réelles”. Nous avons utilisé les API de Twitter et Reddit pour récupérer des posts, commentaires… Un fois le corpus créé, nous avons testé le modèle de Deep learning dessus.

  • Créer un modèle de deep learning capable de détecter un message sexiste sur les réseaux sociaux en utilisant le principe du transfert learning. Nous avons figé les poids d’un modèle de base roBERTa formé sur environ 58 millions de tweets et affiné pour l'analyse des sentiments. Puis, nous avons ajouté une couche de Dense que nous avons entraîné spécifiquement à la reconnaissance de messages sexistes en ligne à l’aide de la base consolidée.

  • Présenter les capacités et les limites de ce modèle à l’aide d’une démonstration ludique que nous avons créée sur Streamlit en vue du Démo day en live chez Le Wagon. Ce dernier n’est pas partagé sur ce repository.

Disclaimer : Ce projet est le résultat d’un exercice à visée pédagogique. Il a été réalisé en 10 jours et nécessite donc des améliorations.

Sources :

  • Pour la création de la base consolidée :

“The 'Call me sexist but' Dataset (CMSB)”, Samory Mattia, GESIS - Leibniz-Institut für Sozialwissenschaften.

“AI ML NIT Patna @ TRAC - 2: Deep Learning Approach for Multi-lingual Aggression Identification”, Kirti Kumari & Jyoti Prakash Singh, National Institute of Technology Patna.

“North American Chapter of the Association for Computaitional Linguistics(NAACL)”, Zeerak Talat.

  • Pour la création des datasets d’analyse : Reddit Social Media & Twitter.

  • Pour le modèle de base roBERTa.

Startup the project :

The initial setup.

Create virtualenv and install the project:

sudo apt-get install virtualenv python-pip python-dev
deactivate; virtualenv ~/venv ; source ~/venv/bin/activate ;\
    pip install pip -U; pip install -r requirements.txt

Unittest test:

make clean install test

Check for sexist_speech_recognition in gitlab.com/{group}. If your project is not set please add it:

  • Create a new project on gitlab.com/{group}/sexist_speech_recognition
  • Then populate it:
##   e.g. if group is "{group}" and project_name is "sexist_speech_recognition"
git remote add origin git@github.com:{group}/sexist_speech_recognition.git
git push -u origin master
git push -u origin --tags

Functionnal test with a script:

cd
mkdir tmp
cd tmp
sexist_speech_recognition-run

Install :

Go to https://github.com/{group}/sexist_speech_recognition to see the project, manage issues, setup you ssh public key, ...

Create a python3 virtualenv and activate it:

sudo apt-get install virtualenv python-pip python-dev
deactivate; virtualenv -ppython3 ~/venv ; source ~/venv/bin/activate

Clone the project and install it:

git clone git@github.com:{group}/sexist_speech_recognition.git
cd sexist_speech_recognition
pip install -r requirements.txt
make clean install test                # install and test

Functionnal test with a script:

cd
mkdir tmp
cd tmp
sexist_speech_recognition-run