Outil d’aide à l’identification des codes d’activités pour les souscripteurs

Présentation du stage chez Co-operators

Francis Duval, Chercheur Scientifique | Recherche et Innovation Analytique

20 janvier 2025

Co-operators

Une coopérative d’assurance de dommage

  • Fondée en 1945 par un groupe de fermiers.
  • Coopérative de deuxième niveau (donc détenue par des coopératives).
  • But: « Assurer la sécurité financière des Canadiennes et Canadiens et de nos collectivités. Parce que nous sommes une coopérative, nos décisions d’affaires sont guidées par nos valeurs d’inclusion et de développement durable et responsable. »

Lignes personnelles Lignes commerciales

L’équipe de recherche

  • Équipe qui supporte plusieurs équipes pour des projets d’analytique avancée.
  • S’occupe également des partenariats académiques (p. ex. la Chaire Co-operators en analyse des risques actuariels de l’UQAM, stage Cégep de Ste-Foy).

Outil de sélection des codes d’entreprise (IBC Codes)

Problème

Lorsqu’on assure une entreprise, on doit lui assigner un code parmi 1260 codes. Étant donnée une description d’entreprise, on doit assigner le bon code.

Données

IBC Codes

Index IBC Code IBC Code Description
1 0735a10 Architects - Landscaping Only
2 8916a10 Engineers
3 8075a10 Sanitariums
4 5813a10 Coffee shops (warming of food only, no roasting of beans)
1260 3496a10 Electronic games

Entreprises

Index Company Description IBC Code
1 Takeout meals-see policy, coding only 5814a10 – Take out meals
2 Construction of church building extension 1830a20 – Building construction - general contr.
3 Construction and renovation of gas stations including installation and removal of underground tanks and related pumps, carwash facilities. Snow clearing. 1782a40 – Underground storage tank - remediation contractors
136 000 Licensed Restaurant 5812a10 – Restaurants - licensed (Not liquor revenue)

Outil de sélection des codes d’entreprise (IBC Codes)

Solution: encoder les descriptions de codes et d’entreprises avec un modèle de language

Embedding : vecteur de nombres réels qui représente une chaine de caractères (mot, phrase, document, etc.)1

  • Un bon modèle va placer les concepts similaires proches dans l’espace d’embedding.

Outil de sélection des codes d’entreprise (IBC Codes)

Par exemple, quel code doit-on assigner à l’entreprise:
Small business manufacturing and selling equipment for hockey referees?

Comment procède-t-on pour assigner le bon code IBC?

  1. On obtient un vecteur d’embedding représentant la description d’entreprise.
  2. On obtient également un vecteur d’embedding pour chaque code IBC.
  3. On calcule la distance entre l’entreprise et chaque code IBC.
  4. Finalement, on choisit le code IBC qui est le plus proche de l’entreprise.
  • Les embeddings sont obtenus avec un modèle de langage appelé Sentence-BERT.
  • On a finetuné Sentence-BERT sur nos données d’entreprises et de codes IBC afin de l’entrainer à rapprocher les descriptions de leur code correspondant.

Outil de sélection des codes d’entreprise (IBC Codes)

Application Shiny

Mandat du stage

Ajout d’une extension à l’outil de sélection des codes

  • Cette extension permettra à l’utilisateur d’entrer une URL au lieu d’une description.
  • En résumé, création d’une fonction qui prend en entrée une URL et qui donne en sortie la description de l’entreprise (en anglais).
    • Moissonage web (web scraping) pour extraire le texte de la page HTML.
    • Modèle de sommarisation pour extraire une courte description à partir du texte de la page?
    • Modèle de traduction pour les pages en français?
    • IA générative + prompt engineering pour obtenir directement une description?
    • Etc.

Avantages

  • Permettra à l’utilisateur d’arriver plus rapidement à une description d’entreprise, et donc à un code IBC.
  • Permettra d’améliorer la qualité des descriptions et de gérer les comportements inattendus (p. ex., des utilisateurs qui entrent autre chose qu’une description de l’entreprise).

Moissonage Web (Web Scraping)

Voici une fonction en Python qui extrait le code HTML complet d’une page web:

Moissonage Web (Web Scraping)

Résultats de l’application de la fonction à 4 sites web

Nom Site Web Extraction
Co-operators https://www.cooperators.ca/en/ cooperators_html_content.txt
Théâtre Ialto https://www.theatrerialto.ca/halls rialtotheatre_html_content.txt
Restaurant La Banquise https://labanquise.com/en/ labanquise_html_content.txt
Cégep de Ste-Foy https://www.csfoy.ca/accueil cegep_ste_foy_html_content.txt

Télécharger un modèle à partir de Huggingface.co

Huggingface

Site Internet dédié à l’intelligence artificielle. Entre autres, contient des milliers de modèles open-source qu’on peut télécharger et utiliser gratuitement.


  1. Aller sur Huggingface.co
  2. Cliquer sur l’onglet « Models »
  3. Choisir le type de modèle (p. ex., « Summarization »)
  4. Choisir le modèle (p. ex., « facebook/bart-large-cnn »)
  5. Cliquer sur « Use this model »

Inference API: outil pour essayer le modèle directement sur le site d’HuggingFace (requiert un compte HuggingFace gratuit).