Simon-Pierre Boucher
All research

UQO Working Paper No. 2· 53 pages

Decoding Real Estate Descriptions: Semantic Embeddings and Hedonic Pricing of Residential Properties in Quebec

Listing narratives carry named, priceable information

Do agent-written property descriptions contain price-relevant information beyond structural attributes? Yes — 20 interpretable semantic scores lift adjusted R² from 0.452 to 0.511.

Simon-Pierre Boucher — contact@spboucher.ai

0.452 → 0.511

adjusted R² gain from adding 20 semantic dimensions

17,087

Quebec single-family house listings analyzed

F = 99.53

joint significance of the 21 text variables (p < 0.001)

+16.4%

Modern/Contemporary implicit price per +1 SD

+14.2%

Luxury premium per +1 SD (9.7% → 17.3% across price quantiles)

9.3%

share of Model D's explained variance attributable to semantics

Abstract

Hedonic pricing models decompose a property's price into the implicit prices of structured characteristics — bedrooms, bathrooms, lot size — but the narrative of a listing carries quality information that no structured field captures. This paper embeds the free-text descriptions of 17,087 Quebec single-family house listings with a sentence transformer and projects each embedding onto 20 researcher-defined semantic reference descriptions (Luxury, Needs Renovation, Waterfront, Motivated Seller, and others) via cosine similarity.

Adding the 20 named similarity scores to a log-price hedonic OLS model raises adjusted R² from 0.452 to 0.511, with the text block jointly significant (F = 99.53, p < 0.001). Each dimension carries a signed, economically meaningful implicit price: sounding Modern/Contemporary is worth +16.4% per standard deviation, Luxury +14.2%, while Motivated Seller and Needs Renovation carry discounts of 8.5% and 7.9%.

The approach resolves the depth-versus-interpretability trade-off in text-based hedonics: unlike raw 384-dimensional embeddings or unstable LDA topics, every coefficient reads directly as the implicit price of a human-named concept. Quantile regressions show the Luxury premium rising monotonically from 9.7% at the 25th price percentile to 17.3% at the 75th, and a PCA benchmark explicitly quantifies the fit sacrificed for interpretability.

Key Results

  1. Reference-based cosine projection method

    Instead of 384 anonymous embedding dimensions, listings are projected onto 20 researcher-defined reference descriptions, yielding named, interpretable regressors — deep semantics with full economic readability.

  2. Named implicit prices for narrative content

    Each semantic dimension carries a signed, economically meaningful coefficient: Modern/Contemporary +16.4%, Luxury +14.2%, Land & Nature +13.0%, Motivated Seller −8.5%, Needs Renovation −7.9% per standard deviation.

  3. Interpretability-versus-fit trade-off quantified

    A PCA benchmark on raw embeddings fits better (ΔR² +0.070 vs +0.044) but is economically unreadable; the paper measures exactly what interpretability costs.

  4. Heterogeneity across the price distribution

    Quantile regressions show the Luxury premium rising monotonically from 9.7% at the 25th percentile to 17.3% at the 75th, while urgency and condition discounts attenuate at the top.

  5. Full robustness battery with disclosed limits

    Bootstrap (1,000 replications), outlier trimming, Lasso/Elastic-Net selection, and VIF analysis; multicollinearity among similarity dimensions (mean VIF 17.2) is disclosed and its inferential consequences stated.

  6. Fully machine-generated results

    Every number in the paper's statistical tables is written by the pipeline from results CSVs — hand-transcription errors in the original project were caught and corrected.

Data

Quebec residential listings database (louka.db)

268 MB SQLite database of 46,479 Realtor.ca/Centris listings across five categories, each with structured fields plus the agent-written free-text description.

Single-family house analysis sample

17,087 houses with positive price and description of at least 20 characters; median listing price $589,900, descriptions averaging 510 characters.

20 semantic reference descriptions

Synthetic French paragraphs (146–257 characters each) spanning six domains — quality, condition, physical features, location, style, and market signals — reproduced verbatim in the paper's appendix.

Methodology

Sentence-transformer embeddings

All 17,087 descriptions encoded with all-MiniLM-L6-v2 (22.7M parameters, 384 dimensions, L2-normalized); the whole corpus embeds in seconds on Apple Silicon.

Cosine-similarity projection

A single matrix product against the 20 embedded reference descriptions yields a 17,087 × 20 similarity matrix of named, interpretable semantic scores.

Nested hedonic OLS (Models A–E)

Log-price regressions from structural-only to the full specification, all covariates standardized, HC3 robust errors, joint F-tests, and a parsimonious 16-dimension variant.

Quantile regression

Estimates at the 25th, 50th, and 75th price percentiles reveal how semantic premia and discounts vary across the market's price distribution.

Robustness suite

Bootstrap standard errors (1,000 replications, seeded), winsorization at the 1st/99th percentiles, VIF diagnostics, Breusch–Pagan tests, and Lasso/Elastic-Net variable selection.

PCA benchmark

20 principal components of the raw embeddings serve as an upper-bound fit comparison, quantifying the cost of interpretability against anonymous dimensions.

Reproducibility

  • End-to-end Python pipeline: six numbered scripts take the raw SQLite database to figures, results CSVs, and machine-generated LaTeX tables.
  • All stochastic steps seeded (seed 42); embeddings are deterministic and cached; validated bit-identical against the original project's similarity matrix and model coefficients.
  • All 11 figures regenerated from the pipeline as vector PDF and 300-dpi PNG; the 53-page LaTeX paper compiles with zero errors and zero undefined references.
  • 86 bibliography entries, every one verified against OpenAlex and DOI records.
  • AUDIT.md and CHANGES.md document a forensic audit of the original project, including every numeric correction with old and new values.