Bonjour à tous !
📢 Bazal est fier de vous présenter son premier post de notre série sur les cas d'usage du Machine Learning. Dans cette série nous présenterons des outils de Machine Learning faciles à utiliser et à déployer, ainsi qu'un exemple d'utilisation desdits outils.
📖 Pour notre premier outil, nous nous intéressons à l'Extractive Summarization. Il s'agit d'un procédé de Naturel Language Processing (NLP) permettant de résumer des textes, en extrayant les phrases contenant le plus de sens.
✏️ Plusieurs méthodes permettent d'effectuer cette tâche. Pour notre démo nous utilisons un procédé simple qui s'exécute en moins de 8 secondes. (up de la machine compris, merci Google Cloud Run).
L'algorithme que nous utilisons dans notre démo s'apparente au PageRank appliqué à un texte. Les documents à résumer sont représentés sous forme de graphe ayant pour noeuds les phrases dudit document. Les arrêtes reliant ces noeuds sont ensuite pondérées en évaluant leur similarité. Cette similarité peut s'évaluer de plusieurs manières différentes, dont le principe reste de comptabiliser le nombre de mots communs relativement à la longueur des phrases. Nous employons ici une fonction populaire pour ce genre d'évaluation : Okapi-BM25+. Cette fonction utilise une approche probabiliste combinée à une évaluation de la fréquence d'apparitions de mots pour calculer la similarité entre phrases. Pour les plus curieux : Okapi_BM25. A noter que la fonction a été légèrement modifiée pour améliorer ses performances sur documents longs.
Pour déployer cet outil, nous avons d'abord créé une API avec Flask en local pour tester celle-ci et vérifier que son fonctionnement correspondait à nos attentes. Nous avons ensuite créé un container docker ayant comme commande au déploiement le lancement de l'API faite en local. Nous avons uploadé ce container sur le service de gestion de container de Google (Google Container Registry). Ainsi, Cloud Run déploie ce container dès qu'un appel est fait sur une adresse fournie par Google. Nous avons enfin connecté cette même adresse à l'entrée de texte de notre page de démo, qui reçoit également les résumés lorsqu'ils sont générés.
Pour tester notre démo, c'est ici. Elle restera disponible une semaine après cette publication.
À bientôt !