Domain Knowledge

Definit les expressions régulières et les dictionnaires utilisés pour l'extraction des données.

Actes

Traces de télétransmission de documents par @ctes.

is_accusedereception_page(page_txt)

Détecte si une page contient un accusé de réception.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient un tampon de transmission

is_stamped_page(page_txt)

Détecte si une page contient un tampon (encadré) de transmission @actes.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient un tampon de transmission

Adresses

Reconnaissance et traitement des adresses.

create_adresse_normalisee(adr_num, adr_ind, adr_voie, adr_compl, adr_cpostal, adr_ville)

Créer une adresse normalisée.

L'adresse normalisée rassemble les champs extraits de l'adresse brute, et ailleurs dans le document si nécessaire (eg. autorité prenant l'arrêté, template).

Le complément d'adresse est ignoré.

Parameters:
  • adr_num (str) –

    Numéro de l'adresse

  • adr_ind (str) –

    Indice de l'adresse

  • adr_voie (str) –

    Nom de la voie (incluant le type)

  • adr_compl (str) –

    Complément d'adresse

  • adr_cpostal (str) –

    Code postal

  • adr_ville (str) –

    Commune

Returns:
  • adr_norm( str ) –

    Adresse normalisée

normalize_adresse(adresse)

Normalise les champs d'adresse.

Les formes normales de chaque champ sont: - indice de répétition en minuscules, - voie en minuscules, - ville en forme canonique tirée du fichier des codes communes INSEE.

Les espaces superflues ont normalement été supprimées en amont.

Parameters:
  • adresse (Dict[str, str]) –

    Adresse dont les champs sont bruts.

Returns:
  • adresse_norm( Dict[str, str] ) –

    Adresse dont les champs sont normalisés.

process_adresse_brute(adr_ad_brute)

Extraire une ou plusieurs adresses d'une adresse brute.

Chaque adresse comporte différents champs: numéro, indicateur, voie, (éventuellement complement d'adresse,) code postal, commune.

Parameters:
  • adr_ad_brute (str) –

    Adresse brute

Returns:
  • adresses( list(dict) ) –

    Liste d'adresses

Agences immobilières

Reconnaissance des noms d'agences immobilières.

  • Certains noms de syndics incluent "syndic", les capturer explicitement avant le motif général permet d'éviter les conflits.
  • Lister les syndics connus peut accélérer et mieux focaliser la capture.

normalize_nom_cabinet(nom_cab)

Normalise un nom de cabinet.

La version actuelle requiert une déclaration explicite dans LISTE_NOMS_CABINETS, mais des traitements de normalisation standard pourraient être définis en complément.

Parameters:
  • nom_cab (str) –

    Nom du cabinet ou de l'agence.

Returns:
  • nom_nor( str ) –

    Nom normalisé.

Arrêtés

Structure d'un arrêté de collectivité territoriale.

contains_arrete(page_txt)

Détecte si une page contient ARRET(E|ONS).

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient ARRET(E|ONS)

contains_article(page_txt)

Détecte si une page contient un Article.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient un Article

contains_considerant(page_txt)

Détecte si une page contient un CONSIDERANT.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient un CONSIDERANT

contains_vu(page_txt)

Détecte si une page contient un VU.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient un VU

get_commune_maire(page_txt)

Extrait le nom de la commune précédé de la mention du maire.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • nom_commune( str | None ) –

    Nom de la commune si le texte contient une mention du maire, None sinon.

get_date(page_txt)

Récupère la date de l'arrêté.

Actuellement, correspond à la date de signature, en fin d'arrêté.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_date( str ) –

    Date du document si trouvée, None sinon.

get_nom(page_txt)

Récupère le nom de l'arrêté.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_nom( str ) –

    Nom de l'arrêté si trouvé, None sinon.

get_num(page_txt)

Récupère le numéro de l'arrêté.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_num( str ) –

    Numéro de l'arrêté si trouvé, None sinon.

Cadastre

Reconnaissance et analyse de références cadastrales.

generate_refcadastrale_norm(codeinsee, refcad, arr_pdf, adr_cpostal)

Génère une référence cadastrale normalisée à une entrée.

Parameters:
  • codeinsee (str) –

    Code INSEE de la commune.

  • refcad (str) –

    Référence cadastrale brute.

  • arr_pdf (str) –

    Nom du fichier PDF (pour exception)

  • adr_cpostal (str) –

    Code postal de la commune

Returns:
  • refcad( string ) –

    Référence cadastrale normalisée.

get_parcelles(page_txt)

Récupère la ou les références de parcelles cadastrales.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • id_parcelles( List[str] ) –

    Références d'une ou plusieurs parcelles cadastrales si détectées dans le texte, liste vide sinon.

Cadre réglementaire

Références au cadre réglementaire.

contains_cc(page_txt)

Détecte si une page contient une référence au Code Civil.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence au Code Civil.

contains_cc_art(page_txt)

Détecte si une page contient une référence à des articles du Code Civil.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence à des articles du Code Civil.

contains_cch(page_txt)

Détecte si une page contient une référence au Code de la Construction et de l'Habitation.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence au Code de la Construction et de l'Habitation.

contains_cch_L111(page_txt)

Détecte si une page contient une référence à l'article L111 du Code de la Construction et de l'Habitation.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence à l'article L111 du Code de la Construction et de l'Habitation.

contains_cch_L511(page_txt)

Détecte si une page contient une référence à l'article L511 du Code de la Construction et de l'Habitation.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence à l'article L511 du Code de la Construction et de l'Habitation.

contains_cch_L521(page_txt)

Détecte si une page contient une référence à l'article L521 du Code de la Construction et de l'Habitation.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence à l'article L521 du Code de la Construction et de l'Habitation.

contains_cch_L541(page_txt)

Détecte si une page contient une référence à l'article L541 du Code de la Construction et de l'Habitation.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence à l'article L541 du Code de la Construction et de l'Habitation.

contains_cch_R511(page_txt)

Détecte si une page contient une référence à l'article R511 du Code de la Construction et de l'Habitation.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence à l'article R511 du Code de la Construction et de l'Habitation.

contains_cgct(page_txt)

Détecte si une page contient une référence au Code Général des Collectivités Territoriales.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence au Code Général des Collectivités Territoriales.

contains_cgct_art(page_txt)

Détecte si une page contient une référence à des articles du Code Général des Collectivités Territoriales.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • has_stamp( bool ) –

    True si le texte contient une référence à des articles du Code Général des Collectivités Territoriales.

parse_refs_reglement(txt_body, span_beg, span_end)

Repère dans un texte des références au cadre réglementaire.

Parameters:
  • txt_body (str) –

    Corps de texte à analyser

  • main_beg

    Début de l'empan à analyser.

  • main_end

    Fin de l'empan à analyser.

Returns:
  • content( list ) –

    Liste d'empans de références

Codes géographiques

Accès aux codes géographiques (codes INSEE, codes postaux) des communes.

TODO créer des modules similaires pour les autres bases de connaissances: * les variantes de graphies des communes (TODO), * une liste de syndics (TODO).

get_codeinsee(nom_commune, cpostal)

Récupérer le code INSEE d'une commune.

Le code postal est utilisé pour les arrondissements de Marseille.

Parameters:
  • nom_commune (str) –

    Nom de la commune

  • cpostal (str) –

    Code postal, utile pour les arrondissements de Marseille

Returns:
  • codeinsee( string ) –

    Code INSEE de la commune.

get_codepostal(nom_commune, codeinsee)

Récupérer le code postal d'une commune à partir de son code INSEE.

Attention, risque d'erreurs car certaines communes étendues sont couvertes par plusieurs codes postaux: Marseille (1 par arrondissement, chaque arrondissement a aussi son COG) mais aussi Aix-en-Provence (1 COG mais 6 codes postaux: 13080, 13090, 13098, 13100, 13290, 13540), Martigues (codes postaux: 13117, 13500).

TODO Le nom de la commune est-il utile?

Parameters:
  • nom_commune (str) –

    Nom de la commune (inutile?)

  • codeinsee (str) –

    Code INSEE.

Returns:
  • cpostal( string ) –

    Code postal de la commune.

load_codes_insee_amp()

Charger les codes INSEE des communes

Actuellement restreint à la Métropole Aix-Marseille Provence.

Returns:
  • df_insee( DataFrame ) –

    Liste des communes avec leur code INSEE.

load_codes_postaux_amp()

Charger les codes postaux des communes, associés aux codes INSEE.

Actuellement restreint à la Métropole Aix-Marseille Provence. Attention, le fichier actuel (2023-03-18) utilise un séparateur ";".

Returns:
  • df_cpostal( DataFrame ) –

    Liste des codes postaux par (code INSEE de) commune.

normalize_ville(raw_ville)

Normalise un nom de ville.

Les formes reconnues par S_RE_COMMUNES_VARS sont réécrites dans la forme canonique tirée de DF_INSEE["commune"]. Pour les villes absentes de cette ressource externe, le nom est renvoyé tel quel.

Parameters:
  • raw_ville (str) –

    Nom brut de la ville, extrait du document.

Returns:
  • nor_ville( str ) –

    Forme normale, canonique, du nom de ville.

simplify_commune(com)

Simplifier le nom d'une commune pour faciliter le matching.

Parameters:
  • com (str) –

    Nom de la commune

Returns:
  • com_simple( str ) –

    Nom de la commune simplifié

Relations entre documents

Les référence à des documents précédents sont énoncées dans les "Vu".

Template de documents

Motifs de reconnaissance des en-têtes, pieds-de-page et annexes.

TODO - [ ] exploiter les éléments de template (discriminants) pour déterminer la ville (en complément des autres emplacements: autorité, signature)

Logements

Repérage et extraction de données propres aux arrêtés sur le logement.

Propriétaire, gestionnaire, syndic ou administrateur, adresse de l'immeuble concerné.

get_adr_doc(page_txt)

Extrait la ou les adresses visées par l'arrêté.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • adresses( List[dict] ) –

    La ou les adresses visées par l'arrêté, si trouvées dans la page de texte. Pour chaque zone d'adresse brute, la ou les adresses extraites.

get_gest(page_txt)

Détecte si une page contient un nom de gestionnaire immobilier.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • syndic( str ) –

    Nom de gestionnaire si détecté, None sinon.

get_proprio(page_txt)

Extrait le nom et l'adresse du propriétaire.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • syndic( str ) –

    Nom et adresse du propriétaire si détecté, None sinon.

get_syndic(page_txt)

Détecte si une page contient un nom de syndic.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • syndic( str ) –

    Nom de syndic si détecté, None sinon.

Typologie

Typologie des arrêtés de mise en sécurité.

get_classe(page_txt)

Récupère la classification de l'arrêté.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_class( str ) –

    Classification de l'arrêté si trouvé, None sinon.

get_demo(page_txt)

Détermine si l'arrêté porte une démolition ou déconstruction.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_demol_deconst( str ) –

    Démolition ou déconstruction si trouvé, None sinon.

get_equ_com(page_txt)

Détermine si l'arrêté porte sur la sécurité des équipements communs.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_equ_com( str ) –

    Sécurité des équipements communs si trouvé, None sinon.

get_int_hab(page_txt)

Détermine si l'arrêté porte interdiction d'habiter et d'occuper.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_int_hab( str ) –

    Interdiction d'habiter si trouvé, None sinon.

get_urgence(page_txt)

Récupère le caractère d'urgence de l'arrêté.

Parameters:
  • page_txt (str) –

    Texte d'une page de document

Returns:
  • doc_class( str ) –

    Caractère d'urgence de l'arrêté si trouvé, None sinon.