Détection de hubs mal classés

R_entrance_corridor_hub — Entrée → Corridor+

Condition : entrance_hall, conf ≤ 0.95, ≥ 4 portes, tous voisins ∈ {bedroom, bathroom, toilet}

corridor (conf 0.85)

Logique : si un « hall d'entrée » ne donne que sur des chambres et sanitaires, c'est un couloir distributif, pas l'entrée de l'appartement.

Version : v8.1

R_toilet_hub — WC → Corridor+

Condition : toilet, conf < 1.0, connected ≥ 2

corridor (conf 0.75)

Logique : un WC n'a jamais 2+ connexions. S'il en a, c'est un petit espace de circulation mal classé.

Version : v8.1

R_storage_hub — Placard → Corridor+

Condition : storage, conf < 1.0, portes ≥ 4

corridor (conf 0.70)

Logique : un placard a 1 porte. 4+ portes = espace de distribution.

Version : v8.1

Empreintes topologiques locales

Au lieu de comparer l'appartement entier (Passe 0.5), on compare le voisinage immédiat d'une pièce.

R_wl_local_corridor — Entrée → Corridor (32 hashes)+

Condition : entrance_hall, conf ≤ 0.95, WL local hash ∈ 32 hashes corridor purs (features W, A, depth=2)

corridor (conf 0.82)

Principe : les 32 hashes ont été extraits de P1+P2 et correspondent à des patterns de voisinage qui sont toujours des corridors (0% ambiguïté).

Version : v8.1 · Axe C

R_wl_local_bed_liv — Swap bedroom ↔ living_room (103 hashes)+

Condition : bedroom ou living_room, conf < 1.0, WL local hash discrimine (70 bedroom, 33 living)

swap vers le type du hash (conf 0.78)

Principe : certains patterns de voisinage sont fortement corrélés au type réel. Ex : un « séjour » qui a le hash d'une chambre est reclassé.

Version : v8.1 · Axe C

Reclassements contextuels

R_toilet_to_laundry — WC leaf → Buanderie+

Condition : toilet leaf → entrance_hall, l'appartement a déjà un toilet ET pas de laundry

laundry (conf 0.70)

Version : v8.1

R_storage_to_toilet — Placard → WC+

Condition : storage ≤ 3.5m² + fenêtre, appartement sans toilet, ≥ 3 pièces

toilet (conf 0.65)

Version : v8.1

R_corridor_high_diversity — Corridor → Entrée+

Condition : corridor, conf < 1.0, sans fenêtre, area < 15, ≥ 5 types voisins distincts

entrance_hall (conf 0.78)

Logique : un corridor qui voit 5+ types différents de pièces est probablement l'entrée — le point de distribution principal.

Version : v8.1

Règles de fallback

R_corridor_deadend — Corridor cul-de-sac+

Condition : corridor, conf < 1.0, total_conn < 2

bedroom / storage / entrance (par taille) (conf 0.55)

Logique : un corridor avec < 2 connexions n'est pas un couloir — il ne relie rien.

Version : v5.x

R_ext — Extérieur manqué+

Condition : side=ext, pas déjà classé balcony/terrace/garden

balcony/terrace/garden (conf 0.70)

Version : v6.1

R_ext_implicit — Jardin implicite+

Condition : side ≠ int, 0 portes, N00, area ≥ 15, sep_ratio ≥ 0.50

garden (conf 0.65)

Logique : grand espace au RDC sans porte et avec beaucoup de séparateurs = jardin non détecté par R1.

Version : v6.1