Tech Talk: Classification et prévision des documents à l'aide d'une application intégrée (Partie 1)

Tech Talk: Classification et prévision des documents à l'aide d'une application intégrée (Partie 1)

La classification de textes et de documents est une tâche importante dans le traitement du langage naturel (NLP). Découvrez comment la nouvelle application d'Agilytic nous permet de classer de nombreux types de documents en utilisant des modèles NLP basés sur l'apprentissage profond et l'apprentissage automatique.

La classification de textes et de documents est une tâche importante dans le traitement du langage naturel (NLP). Découvrez comment la nouvelle application d'Agilytic nous permet de classer de nombreux types de documents en utilisant des modèles NLP basés sur l'apprentissage profond et l'apprentissage automatique.

La classification de textes et de documents est une tâche importante dans le traitement du langage naturel (NLP). Découvrez comment la nouvelle application d'Agilytic nous permet de classer de nombreux types de documents en utilisant des modèles NLP basés sur l'apprentissage profond et l'apprentissage automatique.

La classification des textes est l'une des tâches importantes en Traitement Automatique du Langage Naturel. Il s'agit du processus de classification des chaînes de texte ou des documents en différentes catégories, en fonction du contenu des chaînes. La classification de texte ou de document a diverses applications, telles que la détection des domaines de recherche des articles scientifiques, la classification d'un email, la classification des articles de blog en différentes catégories, le marquage automatique des demandes des clients, etc.

Le projet que nous allons illustrer ici est un système d'application qui nous permet de classer de nombreux types de documents basés sur des modèles de Traitement Automatique du Langage Naturel (NLP) d'apprentissage profond/apprentissage automatique. Dans une deuxième étape, l'application prédira la classe des nouveaux documents non étiquetés. Pour optimiser le flux de travail, le traitement et l'utilisation, nous avons conçu le projet actuel comme deux APIs RESTful Flask séparées couplées à une interface utilisateur (utilisant CSS/HTML et JavaScript):

  • Application de classification et prédiction de documents : cette application contient l'ensemble du flux de travail du projet, y compris l'entraînement des modèles de classification basé sur un ensemble de données de documents étiquetés et, dans la deuxième phase, la prédiction - basée sur le modèle préalablement entraîné - de nouveaux documents non étiquetés. L'application peut fonctionner sur une machine locale et une machine virtuelle avec des capacités GPU (nécessaires pour entraîner les modèles).

  • Application de prédiction de documents : la deuxième application contient le flux de travail de prédiction de documents et nous l'avons créée comme une application web multi-étiquettes capable de fonctionner partout. Pour que l'application fonctionne, les spécifications du modèle déjà formé (par exemple, poids et biais du modèle) doivent être téléchargées.

Note : L'ensemble de données que nous présentons au système doit être un répertoire contenant tous les documents avec des sous-répertoires comme noms d'étiquettes. Dans le cas d'une classification multi-étiquettes de documents (c'est-à-dire, lorsqu'un document peut appartenir à plus d'une catégorie), vous devez dupliquer les documents multi-étiquettes dans tous les sous-répertoires auxquels ils appartiennent.

Caractéristiques du projet

Nous allons décrire les cinq principales caractéristiques du projet de classification de documents :

  1. Accommoder une grande variété de documents : y compris les formats de documents natifs ainsi que les documents/images scannés (utilisation de l'OCR) ;

  2. Accommoder une grande variété d'ensembles de données : des modèles du type 'taille unique pour tous' capables de gérer la classification binaire, multiclasses et multiétiquettes ;

  3. Tant les utilisateurs novices qu'experts peuvent l'utiliser : facilité d'utilisation (interface conviviale) tout en fournissant des informations techniques pour l'amélioration (par exemple, métriques de performance, matrice de confusion, courbe ROC, ...);

  4. Bonne performance : recherche de bonnes/états des pratiques les plus avancées (par exemple, modèle de transformateurs d'apprentissage profond BERT) ;

  5. Capable de fonctionner partout : partiellement déployée dans le cloud (deuxième application avec le flux de prédiction).

Choisir les bons modèles pour la classification des documents

L'un des plus grands défis du projet actuel était de construire des modèles de classification capables d'accommoder une grande variété de types de jeux de données (pour les classifications binaires, multiclasses et multi-étiquettes). Ils devaient fournir de bonnes performances même dans des circonstances réalistes limitées en ressources. En effet, tous les clients potentiels n'auront pas forcément de gros ensembles de données de haute qualité pour entraîner les modèles et fournir de bonnes prédictions.

En même temps, nous avons fait un effort pour soumettre des données de haute qualité aux modèles et utiliser les méthodes de nettoyage/pre-traitement de texte les plus appropriées pour la tâche spécifique de classification des documents. L'NLP couvre en effet une grande variété de fonctions (p. ex. traduction, achèvement de texte, modélisation de sujets, résumé, reconnaissance d'entités nommées, etc.), et toutes les méthodes de nettoyage/pre-traitement de texte ne sont pas appropriées pour toutes les tâches NLP. Par exemple, dans le contexte du projet actuel, le balisage Part-Of-Speech n'était pas pertinent puisque la classification des documents ne repose pas sur l'ordre des mots ou la structure des phrases. De plus, dans certains cas, nous devons adapter les méthodes de nettoyage/pre-traitement de texte au type de tâche et au modèle spécifique utilisé.

Options de modèles de classification de documents

Certains modèles de texte récents pré-entraînés (tels que BERT, Roberta ou XLNet) ont leur propre tokenizer/vectorisateur, et l'utilisation d'un vectorisateur standard (tel que TF-IDF) n'est pas pertinente. Dans le même ordre d'idées, la lemmatisation des mots n'est pas applicable lors de l'utilisation de BERT (BertForSequenceClassification). Le vocabulaire de BERT est composé de mots réels (et de sous-mots) qui ne correspondront pas à une partie substantielle des mots lemmatisés.

Nous avons parcouru la littérature à la recherche des meilleures pratiques et des méthodes les plus avancées de classification et de nettoyage de texte pour tous ces objectifs. Dans la phase préliminaire du projet et en gardant cela à l'esprit, nous avons pré-testé plusieurs modèles de candidats potentiels issus à la fois des frameworks de machine learning (à savoir, naïf bayésien gaussien, machine à vecteurs de support, XGBoost) et des frameworks d'apprentissage profond (à savoir, BERT, RoBERTa, XLNet). Après cette phase de pré-test, nous avons retenu deux modèles pour les raisons suivantes :

  • Modèle d'apprentissage profond BERT (BertForSequenceClassification) fournit la meilleure performance parmi tous les modèles testés et ne tend pas à surajuster même avec un nombre croissant d'époques (contrairement à RoBERTa et XLNet) ;

  • Modèle de machine learning XGBoost (XGBClassifier) offre d'excellentes performances et est beaucoup moins exigeant que BERT en capacités de calcul (fonctionne donc beaucoup plus rapidement).

Confirmation du choix du modèle

Pour confirmer notre choix, nous avons testé ces deux modèles avec divers ensembles de données. Par exemple, lorsque nous avons entraîné sur le dataset DBPedia (un ensemble de données composé de 342,782 articles Wikipédia avec des catégories hiérarchiques), BERT a fourni un score f1 de 99% sur le premier niveau de classe (9 catégories) et de 96% sur le deuxième niveau de classe (70 catégories).

En gardant à l'esprit la nécessité de traiter un contexte commercial réaliste, nous avons également testé le modèle sur deux ensembles de données pdf de taille réduite (un multiclasses et l'autre multiétiquettes) spécialement conçus pour le projet et extraits du think tank du Parlement Européen. Les documents concernent la législation de l'UE et sont triés en divers domaines (p. ex., culture, environnement, questions économiques et monétaires, etc.).

Nous avons choisi intentionnellement de constituer des ensembles de données de tailles réduites pour mettre au défi les performances du modèle. L'ensemble de données multiclasses était composé de 261 pdfs, et l'ensemble de données multiétiquettes comptait 313 pdfs avec 33 documents multi-étiquetés (avec 6 catégories et moins de 60 documents par catégorie). Le modèle BERT fournit un score f1 de 97%, tandis que le modèle XGBoost donne un score f1 de 92% lorsqu'il est entraîné sur l'ensemble de données multiclasses.

Prochainement...

Dans la deuxième partie de cet article sur la classification des documents, nous couvrons la conception du flux de travail, la programmation Python, la navigation à travers l'interface utilisateur de l'application web conçue, ainsi que les applications potentielles.

La classification des textes est l'une des tâches importantes en Traitement Automatique du Langage Naturel. Il s'agit du processus de classification des chaînes de texte ou des documents en différentes catégories, en fonction du contenu des chaînes. La classification de texte ou de document a diverses applications, telles que la détection des domaines de recherche des articles scientifiques, la classification d'un email, la classification des articles de blog en différentes catégories, le marquage automatique des demandes des clients, etc.

Le projet que nous allons illustrer ici est un système d'application qui nous permet de classer de nombreux types de documents basés sur des modèles de Traitement Automatique du Langage Naturel (NLP) d'apprentissage profond/apprentissage automatique. Dans une deuxième étape, l'application prédira la classe des nouveaux documents non étiquetés. Pour optimiser le flux de travail, le traitement et l'utilisation, nous avons conçu le projet actuel comme deux APIs RESTful Flask séparées couplées à une interface utilisateur (utilisant CSS/HTML et JavaScript):

  • Application de classification et prédiction de documents : cette application contient l'ensemble du flux de travail du projet, y compris l'entraînement des modèles de classification basé sur un ensemble de données de documents étiquetés et, dans la deuxième phase, la prédiction - basée sur le modèle préalablement entraîné - de nouveaux documents non étiquetés. L'application peut fonctionner sur une machine locale et une machine virtuelle avec des capacités GPU (nécessaires pour entraîner les modèles).

  • Application de prédiction de documents : la deuxième application contient le flux de travail de prédiction de documents et nous l'avons créée comme une application web multi-étiquettes capable de fonctionner partout. Pour que l'application fonctionne, les spécifications du modèle déjà formé (par exemple, poids et biais du modèle) doivent être téléchargées.

Note : L'ensemble de données que nous présentons au système doit être un répertoire contenant tous les documents avec des sous-répertoires comme noms d'étiquettes. Dans le cas d'une classification multi-étiquettes de documents (c'est-à-dire, lorsqu'un document peut appartenir à plus d'une catégorie), vous devez dupliquer les documents multi-étiquettes dans tous les sous-répertoires auxquels ils appartiennent.

Caractéristiques du projet

Nous allons décrire les cinq principales caractéristiques du projet de classification de documents :

  1. Accommoder une grande variété de documents : y compris les formats de documents natifs ainsi que les documents/images scannés (utilisation de l'OCR) ;

  2. Accommoder une grande variété d'ensembles de données : des modèles du type 'taille unique pour tous' capables de gérer la classification binaire, multiclasses et multiétiquettes ;

  3. Tant les utilisateurs novices qu'experts peuvent l'utiliser : facilité d'utilisation (interface conviviale) tout en fournissant des informations techniques pour l'amélioration (par exemple, métriques de performance, matrice de confusion, courbe ROC, ...);

  4. Bonne performance : recherche de bonnes/états des pratiques les plus avancées (par exemple, modèle de transformateurs d'apprentissage profond BERT) ;

  5. Capable de fonctionner partout : partiellement déployée dans le cloud (deuxième application avec le flux de prédiction).

Choisir les bons modèles pour la classification des documents

L'un des plus grands défis du projet actuel était de construire des modèles de classification capables d'accommoder une grande variété de types de jeux de données (pour les classifications binaires, multiclasses et multi-étiquettes). Ils devaient fournir de bonnes performances même dans des circonstances réalistes limitées en ressources. En effet, tous les clients potentiels n'auront pas forcément de gros ensembles de données de haute qualité pour entraîner les modèles et fournir de bonnes prédictions.

En même temps, nous avons fait un effort pour soumettre des données de haute qualité aux modèles et utiliser les méthodes de nettoyage/pre-traitement de texte les plus appropriées pour la tâche spécifique de classification des documents. L'NLP couvre en effet une grande variété de fonctions (p. ex. traduction, achèvement de texte, modélisation de sujets, résumé, reconnaissance d'entités nommées, etc.), et toutes les méthodes de nettoyage/pre-traitement de texte ne sont pas appropriées pour toutes les tâches NLP. Par exemple, dans le contexte du projet actuel, le balisage Part-Of-Speech n'était pas pertinent puisque la classification des documents ne repose pas sur l'ordre des mots ou la structure des phrases. De plus, dans certains cas, nous devons adapter les méthodes de nettoyage/pre-traitement de texte au type de tâche et au modèle spécifique utilisé.

Options de modèles de classification de documents

Certains modèles de texte récents pré-entraînés (tels que BERT, Roberta ou XLNet) ont leur propre tokenizer/vectorisateur, et l'utilisation d'un vectorisateur standard (tel que TF-IDF) n'est pas pertinente. Dans le même ordre d'idées, la lemmatisation des mots n'est pas applicable lors de l'utilisation de BERT (BertForSequenceClassification). Le vocabulaire de BERT est composé de mots réels (et de sous-mots) qui ne correspondront pas à une partie substantielle des mots lemmatisés.

Nous avons parcouru la littérature à la recherche des meilleures pratiques et des méthodes les plus avancées de classification et de nettoyage de texte pour tous ces objectifs. Dans la phase préliminaire du projet et en gardant cela à l'esprit, nous avons pré-testé plusieurs modèles de candidats potentiels issus à la fois des frameworks de machine learning (à savoir, naïf bayésien gaussien, machine à vecteurs de support, XGBoost) et des frameworks d'apprentissage profond (à savoir, BERT, RoBERTa, XLNet). Après cette phase de pré-test, nous avons retenu deux modèles pour les raisons suivantes :

  • Modèle d'apprentissage profond BERT (BertForSequenceClassification) fournit la meilleure performance parmi tous les modèles testés et ne tend pas à surajuster même avec un nombre croissant d'époques (contrairement à RoBERTa et XLNet) ;

  • Modèle de machine learning XGBoost (XGBClassifier) offre d'excellentes performances et est beaucoup moins exigeant que BERT en capacités de calcul (fonctionne donc beaucoup plus rapidement).

Confirmation du choix du modèle

Pour confirmer notre choix, nous avons testé ces deux modèles avec divers ensembles de données. Par exemple, lorsque nous avons entraîné sur le dataset DBPedia (un ensemble de données composé de 342,782 articles Wikipédia avec des catégories hiérarchiques), BERT a fourni un score f1 de 99% sur le premier niveau de classe (9 catégories) et de 96% sur le deuxième niveau de classe (70 catégories).

En gardant à l'esprit la nécessité de traiter un contexte commercial réaliste, nous avons également testé le modèle sur deux ensembles de données pdf de taille réduite (un multiclasses et l'autre multiétiquettes) spécialement conçus pour le projet et extraits du think tank du Parlement Européen. Les documents concernent la législation de l'UE et sont triés en divers domaines (p. ex., culture, environnement, questions économiques et monétaires, etc.).

Nous avons choisi intentionnellement de constituer des ensembles de données de tailles réduites pour mettre au défi les performances du modèle. L'ensemble de données multiclasses était composé de 261 pdfs, et l'ensemble de données multiétiquettes comptait 313 pdfs avec 33 documents multi-étiquetés (avec 6 catégories et moins de 60 documents par catégorie). Le modèle BERT fournit un score f1 de 97%, tandis que le modèle XGBoost donne un score f1 de 92% lorsqu'il est entraîné sur l'ensemble de données multiclasses.

Prochainement...

Dans la deuxième partie de cet article sur la classification des documents, nous couvrons la conception du flux de travail, la programmation Python, la navigation à travers l'interface utilisateur de l'application web conçue, ainsi que les applications potentielles.

La classification des textes est l'une des tâches importantes en Traitement Automatique du Langage Naturel. Il s'agit du processus de classification des chaînes de texte ou des documents en différentes catégories, en fonction du contenu des chaînes. La classification de texte ou de document a diverses applications, telles que la détection des domaines de recherche des articles scientifiques, la classification d'un email, la classification des articles de blog en différentes catégories, le marquage automatique des demandes des clients, etc.

Le projet que nous allons illustrer ici est un système d'application qui nous permet de classer de nombreux types de documents basés sur des modèles de Traitement Automatique du Langage Naturel (NLP) d'apprentissage profond/apprentissage automatique. Dans une deuxième étape, l'application prédira la classe des nouveaux documents non étiquetés. Pour optimiser le flux de travail, le traitement et l'utilisation, nous avons conçu le projet actuel comme deux APIs RESTful Flask séparées couplées à une interface utilisateur (utilisant CSS/HTML et JavaScript):

  • Application de classification et prédiction de documents : cette application contient l'ensemble du flux de travail du projet, y compris l'entraînement des modèles de classification basé sur un ensemble de données de documents étiquetés et, dans la deuxième phase, la prédiction - basée sur le modèle préalablement entraîné - de nouveaux documents non étiquetés. L'application peut fonctionner sur une machine locale et une machine virtuelle avec des capacités GPU (nécessaires pour entraîner les modèles).

  • Application de prédiction de documents : la deuxième application contient le flux de travail de prédiction de documents et nous l'avons créée comme une application web multi-étiquettes capable de fonctionner partout. Pour que l'application fonctionne, les spécifications du modèle déjà formé (par exemple, poids et biais du modèle) doivent être téléchargées.

Note : L'ensemble de données que nous présentons au système doit être un répertoire contenant tous les documents avec des sous-répertoires comme noms d'étiquettes. Dans le cas d'une classification multi-étiquettes de documents (c'est-à-dire, lorsqu'un document peut appartenir à plus d'une catégorie), vous devez dupliquer les documents multi-étiquettes dans tous les sous-répertoires auxquels ils appartiennent.

Caractéristiques du projet

Nous allons décrire les cinq principales caractéristiques du projet de classification de documents :

  1. Accommoder une grande variété de documents : y compris les formats de documents natifs ainsi que les documents/images scannés (utilisation de l'OCR) ;

  2. Accommoder une grande variété d'ensembles de données : des modèles du type 'taille unique pour tous' capables de gérer la classification binaire, multiclasses et multiétiquettes ;

  3. Tant les utilisateurs novices qu'experts peuvent l'utiliser : facilité d'utilisation (interface conviviale) tout en fournissant des informations techniques pour l'amélioration (par exemple, métriques de performance, matrice de confusion, courbe ROC, ...);

  4. Bonne performance : recherche de bonnes/états des pratiques les plus avancées (par exemple, modèle de transformateurs d'apprentissage profond BERT) ;

  5. Capable de fonctionner partout : partiellement déployée dans le cloud (deuxième application avec le flux de prédiction).

Choisir les bons modèles pour la classification des documents

L'un des plus grands défis du projet actuel était de construire des modèles de classification capables d'accommoder une grande variété de types de jeux de données (pour les classifications binaires, multiclasses et multi-étiquettes). Ils devaient fournir de bonnes performances même dans des circonstances réalistes limitées en ressources. En effet, tous les clients potentiels n'auront pas forcément de gros ensembles de données de haute qualité pour entraîner les modèles et fournir de bonnes prédictions.

En même temps, nous avons fait un effort pour soumettre des données de haute qualité aux modèles et utiliser les méthodes de nettoyage/pre-traitement de texte les plus appropriées pour la tâche spécifique de classification des documents. L'NLP couvre en effet une grande variété de fonctions (p. ex. traduction, achèvement de texte, modélisation de sujets, résumé, reconnaissance d'entités nommées, etc.), et toutes les méthodes de nettoyage/pre-traitement de texte ne sont pas appropriées pour toutes les tâches NLP. Par exemple, dans le contexte du projet actuel, le balisage Part-Of-Speech n'était pas pertinent puisque la classification des documents ne repose pas sur l'ordre des mots ou la structure des phrases. De plus, dans certains cas, nous devons adapter les méthodes de nettoyage/pre-traitement de texte au type de tâche et au modèle spécifique utilisé.

Options de modèles de classification de documents

Certains modèles de texte récents pré-entraînés (tels que BERT, Roberta ou XLNet) ont leur propre tokenizer/vectorisateur, et l'utilisation d'un vectorisateur standard (tel que TF-IDF) n'est pas pertinente. Dans le même ordre d'idées, la lemmatisation des mots n'est pas applicable lors de l'utilisation de BERT (BertForSequenceClassification). Le vocabulaire de BERT est composé de mots réels (et de sous-mots) qui ne correspondront pas à une partie substantielle des mots lemmatisés.

Nous avons parcouru la littérature à la recherche des meilleures pratiques et des méthodes les plus avancées de classification et de nettoyage de texte pour tous ces objectifs. Dans la phase préliminaire du projet et en gardant cela à l'esprit, nous avons pré-testé plusieurs modèles de candidats potentiels issus à la fois des frameworks de machine learning (à savoir, naïf bayésien gaussien, machine à vecteurs de support, XGBoost) et des frameworks d'apprentissage profond (à savoir, BERT, RoBERTa, XLNet). Après cette phase de pré-test, nous avons retenu deux modèles pour les raisons suivantes :

  • Modèle d'apprentissage profond BERT (BertForSequenceClassification) fournit la meilleure performance parmi tous les modèles testés et ne tend pas à surajuster même avec un nombre croissant d'époques (contrairement à RoBERTa et XLNet) ;

  • Modèle de machine learning XGBoost (XGBClassifier) offre d'excellentes performances et est beaucoup moins exigeant que BERT en capacités de calcul (fonctionne donc beaucoup plus rapidement).

Confirmation du choix du modèle

Pour confirmer notre choix, nous avons testé ces deux modèles avec divers ensembles de données. Par exemple, lorsque nous avons entraîné sur le dataset DBPedia (un ensemble de données composé de 342,782 articles Wikipédia avec des catégories hiérarchiques), BERT a fourni un score f1 de 99% sur le premier niveau de classe (9 catégories) et de 96% sur le deuxième niveau de classe (70 catégories).

En gardant à l'esprit la nécessité de traiter un contexte commercial réaliste, nous avons également testé le modèle sur deux ensembles de données pdf de taille réduite (un multiclasses et l'autre multiétiquettes) spécialement conçus pour le projet et extraits du think tank du Parlement Européen. Les documents concernent la législation de l'UE et sont triés en divers domaines (p. ex., culture, environnement, questions économiques et monétaires, etc.).

Nous avons choisi intentionnellement de constituer des ensembles de données de tailles réduites pour mettre au défi les performances du modèle. L'ensemble de données multiclasses était composé de 261 pdfs, et l'ensemble de données multiétiquettes comptait 313 pdfs avec 33 documents multi-étiquetés (avec 6 catégories et moins de 60 documents par catégorie). Le modèle BERT fournit un score f1 de 97%, tandis que le modèle XGBoost donne un score f1 de 92% lorsqu'il est entraîné sur l'ensemble de données multiclasses.

Prochainement...

Dans la deuxième partie de cet article sur la classification des documents, nous couvrons la conception du flux de travail, la programmation Python, la navigation à travers l'interface utilisateur de l'application web conçue, ainsi que les applications potentielles.

Prêt à atteindre vos objectifs avec les données ?

Si vous souhaitez atteindre vos objectifs grâce à une utilisation plus intelligente des données et de l'IA, vous êtes au bon endroit.

Prêt à atteindre vos objectifs avec les données ?

Si vous souhaitez atteindre vos objectifs grâce à une utilisation plus intelligente des données et de l'IA, vous êtes au bon endroit.

Prêt à atteindre vos objectifs avec les données ?

Si vous souhaitez atteindre vos objectifs grâce à une utilisation plus intelligente des données et de l'IA, vous êtes au bon endroit.

Prêt à atteindre vos objectifs avec les données ?

Si vous souhaitez atteindre vos objectifs grâce à une utilisation plus intelligente des données et de l'IA, vous êtes au bon endroit.

© 2025 Agilytic

© 2025 Agilytic

© 2025 Agilytic