Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

👪 CLUSTERING: toujours ajouter parents existants des acteurs types #1268

Merged
merged 9 commits into from
Jan 30, 2025

Conversation

maxcorbeau
Copy link
Contributor

@maxcorbeau maxcorbeau commented Jan 27, 2025

👪 CLUSTERING: toujours ajouter parents existants des acteurs types

Carte Notion : CLUSTERING: toujours ajouter parents existants des acteurs types

  • 💡 quoi: toujours ajouter les parents des acteurs types sélectionnés pour le clustering (paramètre include_acteur_type_codes), indépendemment de tous les autres critères de sélection des acteurs, les parents en question étant combiné aux acteurs sélectionnés
    image
  • 🎯 pourquoi: toujours tenter de clusteriser au mieux par rapport aux parents existants même si le métier ne définit pas la pipeline explicitement pour cela
  • 🤔 comment:
    • cluster_acteurs_selection_acteur_type_parents: nouvelle fonction qui vient chercher les parents qui correspondent à include_acteur_type_codes (mais sur la base des IDs déjà validés par la config)
      • ajout du paramètre de DAG include_parents_only_if_regex_matches_nom à la fonction ci-dessus qui permet d'appliquer une regex, identique OU différente (en fonction besoins métiers) à la sélection parent
    • Tâche de sélection airflow: on va venir enrichir les acteurs candidats au clustering avec les parents issus de la fonction ci-dessus

ℹ️ Exemple

Le métier essaye de clusteriser 1 nouvelle source (include_source_codes=["mysource"]) sur le type commerce (include_acteur_type_codes=["commerce"]) avec potentiellement tout un tas de critère de sélections (filtre sur le nom, champs siret non-vides etc...):

  • on sélectionne tous les parents de type "commerce"
    • tous les autres critères de sélection (inclusion/exclusion) sont ignorés pour ces parents
  • on ajoute ces parents aux acteurs candidats de la source "mysource" de type "commerce"
  • au moment du clustering, l'algo essayera donc de rattacher les acteurs "mysource" aux parents existant

🙏 Be honest with yourself

On peut tout à fait considérer cette PR comme un bugfix d'une idiotie de ma part: par définition un parent n’ayant pas de source, donc on ne pouvait jamais en l'état clusteriser avec les parents existants...

🆕 Pourquoi une nouvelle fonction?

Pour cluster_acteurs_selection_acteur_type_parents on serait tenté de réutiliser la fonction existante de sélection des acteurs. Mais en réfléchissant on se dit que:

  • par essence les acteurs ont des données incomplètes car les sources sont incomplètes
  • notre volonté est de rendre les parents les plus complets possible avec le clustering, enrichissement manuel etc...

Donc on voit bien que acteurs & parents sont par nature divergents et de chercher à les sélectionner avec la même fonction va rendre la fonction trop conditionnelle/complexe à maintenir, d'où 1 fonction pour acteurs, 1 autre fonction pour parents

Exemple: on souhaite clusteriser les acteurs sans SIRET, on ne veut surtout pas exclure les parents sans SIRET

@maxcorbeau maxcorbeau changed the title cluster acteurs: ajout parents acteur types 👪 CLUSTERING: toujours ajouter parents existants des acteurs types Jan 27, 2025
@maxcorbeau
Copy link
Contributor Author

maxcorbeau commented Jan 29, 2025

Exemple sur regex pour acteurs & parents

Avec la regex dechett?erie appliqué sur la donnée normalisée (à la volé au moment de la sélection) qui gère les cas de figure déchèterie (1 T) et dechetterie (2 T) et autres variations d'accents

image

@maxcorbeau maxcorbeau marked this pull request as ready for review January 29, 2025 09:38
@maxcorbeau maxcorbeau requested a review from a team as a code owner January 29, 2025 09:38
@maxcorbeau maxcorbeau requested review from kolok and fabienheureux and removed request for a team January 29, 2025 09:38
@kolok
Copy link
Contributor

kolok commented Jan 30, 2025

1 remarque suite à la lecture de la PR et avant relecture du code :

par définition un parent n’ayant pas de source, donc on ne pouvait jamais en l'état clusteriser avec les parents existants...

On peut considérer que les parents sont liés à toutes les sources des leur enfants -> cela est certainement à prendre en compte lors de la création de cluster pour éviter le cas de cluster avec plusieurs enfants de la même source

Copy link
Contributor

@kolok kolok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quelques remarques mais rien de bloquant

@maxcorbeau maxcorbeau merged commit 41579f7 into main Jan 30, 2025
11 checks passed
@maxcorbeau maxcorbeau deleted the cluster_acteurs_selection_acteur_type_parents branch January 30, 2025 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants