🏳️🌈♿️👩🎨🌱 En février, je remets 3% de mes ventes à des organismes qui favorisent la diversité, les arts et l'environnement 🏳️🌈♿️👩🎨🌱
Le grimoire informatique
Données d'Amnesty international et traitement du langage naturel
Introduction
À l'hiver 2021, j'ai eu l'occasion de travailler pour le département des sciences de la décision de HEC Montréal. La directrice du programme d'analytique d'affaires était à la recherche d'un spécialiste de R et du traitement automatique du langage naturel (natural language processing ou NLP) pour développer du matériel de formation.
Dans le cadre de ce mandat, je devais développer un cas d'usage pour effectuer une classification non supervisée avec des données réelles. Étant donné que l'on devait utiliser des données publiques, alors je me suis tourné vers une source de texte volumineuse que je savais de grande qualité et en français, et disponible pour la recherche académique. Cette source, c'est le site web d'Amnesty International. Voici donc un projet qui relie deux de mes intérêts: les droits humains et les modèles de données.
Extraction des données
J'ai donc effectué une collecte d'une bonne partie des pages web du site afin de constituer un corpus à analyser. Puis, J'ai exécuté l'ensemble de l'extraction sur plusieurs heures afin de ne pas surcharger les serveurs de l'organisme. J'ai utilisé la librairie rvest du langage R pour faire l'ensemble de cette tâche.
Un exemple de page étudiée est celle-ci: https://www.amnesty.org/fr/latest/campaigns/2017/06/one-nigerian-widow-vs-shell/
Capture d'écran de la page en exemple
Puis, pour représenter l'information, j'ai recherché les principales structures de données qui composent les articles. J'en ai identifié 7 qui étaient pertinentes pour faire l'analyse souhaitée.
- La page d'origine
- Les paragraphes
- Les citations
- Les sujets
- Les titres
- Les hyperliens
- Les dates de publication
Passer des articles aux modèles de données !
Afin de sauvegarder ces données dans un format facile à utiliser et à transporter, j'ai représenté celles-ci dans un modèle relationnel. J'ai enregistré toutes les tables dans une base de données SQLite, qui se transporte facilement et est ainsi accessible pour les étudiants.
La première table contenant l'URL, j'ai calculé la signature MD5 de celle-ci et je l'ai utilisée comme identifiant unique et clé primaire pour la table pages
. Toutes les autres tables ont cet identifiant comme clé étrangère, ce qui en fait un modèle en étoile. De plus, en faisant ça, j'ouvrais la possibilité de faire un graphe d'adjacence avec la table des liens
.
Les différentes tables de la base de données fournie aux étudiants, visualisé avec DB Browser for SQLite
Pour reprendre la page en exemple, on remarque qu'elle contient une citation
Dans la base de données, on peut facilement la retrouver en recherchant la signature dans la table citations
.
Citation dans la base de données
La qualité des données en traitement du langage naturel
En consultant la table des paragraphes, on remarque que seulement quatre d'entre eux ont été extraits. La page en question étant complexe et composée de nombreuses sections, elle ne correspondait pas au modèle de base que j'ai utilisé pour faire l'extraction.
Paragraphes dans la base de données, visualisé avec DB Browser for SQLite
Néanmoins, nous avons extrait suffisamment d'information pour comprendre le sujet et le contexte de l'article. L’hétérogénéité des contenus, c'est un des enjeux souvent rencontrés avec l'extraction de texte sur des sites web. Lorsqu'on effectue des extractions massives dans des délais restreints, c'est quelque chose qu'on doit accepter !
Conclusion
J'ai eu beaucoup de plaisir à monter ce cas d'usage en traitement du langage naturel pour les étudiants du HEC Montréal et j'espère que l'exploration de ces données permettra d'améliorer la compréhension des enjeux des droits humains de par le monde.
S'inscrire au cours
Tous les détails pour s'inscrire au certificat en analytique d’affaires du HEC et avoir l'occasion de suivre ce cours sont ici: https://www.hec.ca/programmes/certificats/certificat-analytique-affaires/index.html