Recherche immobilière en langage naturel : comment ça fonctionne sous le capot
Taper sa recherche en français comme on l'expliquerait à un ami : c'est devenu la promesse de plusieurs assistants immobiliers IA. Ce qui se passe entre votre phrase et la liste de biens — décryptage.
Depuis 2023, l'arrivée des grands modèles de langage dans le grand public a changé l'ergonomie des moteurs de recherche. Sur Google, on cherche depuis longtemps en langage naturel. Sur les portails immobiliers, en revanche, on coche encore des cases en 2026. Les choses bougent enfin, et la promesse devient simple : décrire son projet en français, recevoir une short-list pertinente.
Voici, sans simplification commerciale, ce qui se passe sous le capot — et ce qu'il faut en attendre.
L'exemple type
Saisie utilisateur :
Maison ou appartement 4 pièces, calme, à moins de 30 min en transports de Saint-Lazare, budget max 580 000 €, DPE D minimum, balcon ou terrasse apprécié, idéalement proche d'une école primaire publique.
Cette phrase contient 9 critères distincts, dont 5 quantitatifs précis (4 pièces, 30 min, Saint-Lazare, 580 000 €, DPE D), 2 qualitatifs flous (calme, idéalement proche), 2 conditionnels (maison ou appartement, balcon ou terrasse).
Le pipeline IA en 4 niveaux
Une bonne implémentation découpe le travail. Maisonnez procède en 4 couches :
Niveau 1 — Parseur regex (instant, ~25 ms)
Extrait les éléments structurés simples avec des règles déclaratives (662 règles dans la pile française de Maisonnez) :
- « 4 pièces » →
{ rooms: 4 } - « 580 000 € » →
{ price_max: 580000 } - « 30 min » →
{ max_minutes: 30 } - « DPE D minimum » →
{ dpe_min: "D" }
Ce niveau ne se trompe quasiment jamais. Il a un coût ~nul et couvre l'essentiel du critère "chiffré".
Niveau 2 — Reconnaissance d'entités (instant)
Identifie les noms propres dans une base d'entités préchargée (915 entrées en français : villes, gares, métros, arrondissements, monuments, écoles, universités, écoles d'ingé, hôpitaux, gares TGV…) :
- « Saint-Lazare » → station_id, lat/lon, type=gare
Couplé au niveau 1, on a déjà une majorité de la requête traduite.
Niveau 3 — Recherche RAG (~1 s)
Pour les concepts flous ("calme", "charme", "proche école"), Maisonnez interroge une base de connaissances vectorielle de 1 150 chunks (lois immobilières, définitions, glossaires, méthodologies). Le modèle nomic-embed-text encode la requête, ChromaDB renvoie les passages les plus pertinents : par exemple, « proche école primaire » récupère une définition de zone scolaire et la médiane de distance acceptée.
Niveau 4 — LLM final (quelques secondes)
Un modèle de langage (sur Maisonnez : maisonnez-immobilier, fine-tuné sur 2 000 paires question-réponse immobilier) produit la sortie structurée finale, intégrant les nuances qualitatives. Sortie type :
{
type: ["maison", "appartement"],
rooms_min: 4,
price_max: 580000,
dpe_min: "D",
required_features: ["calme"],
preferred_features: ["balcon", "terrasse", "proche_ecole_primaire"],
geo_clues: [{
name: "Paris-Saint-Lazare", type: "gare",
role: "travail", weight: 1.0,
max_minutes: 30, transport: "transit", required: true
}]
}Exposer la compréhension à l'utilisateur
Étape critique souvent oubliée : montrer à l'utilisateur ce que l'IA a compris avant de lancer la recherche. Sans cela, on prend le risque d'une omission silencieuse : l'IA ignore "DPE D minimum" parce qu'elle l'a mal parsé, l'utilisateur reçoit des passoires et perd confiance.
Maisonnez affiche après chaque saisie une carte de critères extraits, modifiables d'un clic, avec un fallback explicite quand un critère a été interprété par défaut.
Limites actuelles
- Subjectivité variable. "Calme" peut signifier "loin du périphérique" ou "rue piétonne" ou "copropriété sans turn-over". Le LLM fait un choix par défaut (vol d'oiseau d'axes routiers principaux) qu'il faut pouvoir affiner.
- Multi-tours partiel. En 2026, la plupart des outils traitent chaque requête isolément. La conversation type "cherche T3 Paris" → "mais avec balcon" → "moins cher" commence à fonctionner mais reste fragile.
- Petites villes. Plus la zone est rurale, moins DVF, DPE et l'entité-base sont denses. L'IA peut interpréter correctement la requête mais ne pas avoir assez de données pour scorer les biens.
- Hallucinations. Un mauvais LLM peut inventer une ville (« Saint-Maixent-de-Loire » qui n'existe pas). Une bonne implémentation valide chaque entité contre la base INSEE/IGN avant exécution.
Conseils pour une saisie efficace
- Soyez précis sur les chiffres. "Budget vers 500 k€" sera interprété comme 500 000 € plafond ; mieux vaut écrire "budget 480 à 520 k€".
- Nommez les villes ou les gares. "Proche gare TGV" est ambigu ; "à 20 min de la gare TGV de Lyon Part-Dieu" ne l'est pas.
- Listez les essentiels et les bonus. "Avec balcon idéalement" vs "avec balcon obligatoirement" se traduit par
preferred_featuresvsrequired_features. - Donnez du contexte. "Pour un investissement locatif" oriente le scoring vers le rendement ; "pour y vivre avec deux enfants" oriente vers la qualité du quartier scolaire.
Questions fréquentes
- Qu'est-ce qu'une recherche en langage naturel ?
- C'est une recherche où l'utilisateur tape sa requête en français courant, sans formulaire ni cases à cocher. L'IA extrait elle-même les critères : type de bien, ville(s), budget, surface, équipements, contraintes (DPE, étage, ascenseur, charme, calme). Elle peut aussi comprendre des relations spatiales complexes (« entre Paris et Lyon », « à 30 min de Châtelet », « proche d'une école primaire »).
- Comment l'IA comprend la requête ?
- Trois étapes typiques : (1) un parseur regex extrait les éléments structurés faciles (chiffres, prix, surfaces, mots-clés type « balcon ») ; (2) un module d'entités nommées identifie les villes, gares, points d'intérêt ; (3) un grand modèle de langage (LLM) traite les nuances qualitatives (« calme », « charme », « proche école »). Maisonnez utilise une pile en 4 niveaux : regex (instant) + entités (instant) + RAG (~1 s) + LLM (quelques secondes en CPU local).
- Quels sont les risques d'une mauvaise interprétation ?
- Le principal risque, c'est l'omission silencieuse — l'IA ignore une contrainte qu'elle n'a pas su parser, et l'utilisateur reçoit des résultats partiellement hors-cible. Maisonnez expose toujours les critères extraits sous forme structurée (type, ville, budget, isochrones) avant de lancer la recherche, pour que l'utilisateur puisse vérifier et corriger. Si une contrainte est ambigüe (« proche école » sans préciser l'école ni le rayon), l'IA propose une interprétation par défaut documentée.
- Le langage naturel remplace-t-il les filtres classiques ?
- Non, c'est complémentaire. Le langage naturel excelle pour décrire un projet en quelques phrases (« on cherche un T4 dans le Sud-Ouest, lumineux, avec jardin, à moins de 30 min en transports d'une bonne école primaire »). Les filtres classiques restent utiles pour ajuster un détail après la recherche initiale (« même requête mais en excluant le RDC »). La meilleure UX combine les deux : phrase libre en entrée, ajustements par filtres en sortie.