CARO…

چطور کار می‌کند

پنج لایه، و یک قاعده که همه‌شان از آن پیروی می‌کنند

جهت وابستگی یک‌طرفه است: گردآوری ← رصد ← ارزش‌گذاری ← رتبه‌بندی ← عامل‌ها. هیچ لایه‌ای به لایه‌ی بالادست خود دست نمی‌زند، و به همین دلیل می‌شود یکی را عوض کرد بی‌آن‌که بقیه بی‌صدا معنایشان تغییر کند.

W4
گردآوری

آگهی‌ها از منبع خوانده می‌شوند و به فیلدهای ساخت‌یافته تبدیل می‌شوند: قیمت، کارکرد، سال شمسی، گیربکس، سوخت، وضعیت بدنه، مشکل سند.

نرمال‌سازی فارسی اینجاست — ارقام فارسی و عربی به لاتین، «ي» و «ك» عربی به فارسی، نیم‌فاصله به فاصله — چون «۱۲۰٬۰۰۰ کیلومتر» و «120000 کیلومتر» یک عدد‌اند. قیمت با دو مسیر مستقل خوانده می‌شود و اگر با هم نخوانند، آگهی مشکوک علامت می‌خورد.

W0
رصد

همان آگهی در طول زمان دنبال می‌شود: تغییر قیمت، حذف، و انتشار مجدد با شناسه‌ی تازه.

ناپدیدشدن یک آگهی به‌معنای فروش نیست — ممکن است صاحبش منصرف شده باشد یا آگهی منقضی شده باشد — و این تفاوت، سوگیری سانسور است. آگهی‌های تکراری در یک خوشه جمع می‌شوند تا یک ماشین، چند بار در آموزش شمرده نشود.

W1
ارزش‌گذاری

برآورد قیمت با ادغام جزئی (partial pooling): تیپ‌های کم‌داده به سمت میانه‌ی خانواده‌ی خود جمع می‌شوند به‌جای آن‌که از چند آگهی، یک قانون ساخته شود.

و مهم‌تر: یک دروازه‌ی پذیرش. اگر برآوردگر روی برش‌های نگه‌داشته‌شده قابل‌قضاوت نباشد، سرو نمی‌شود. خطای کلیِ خوب، اعتبار یک برآورد شرطی را ثابت نمی‌کند؛ این دقیقاً همان استنتاجی است که سامانه اجازه‌اش را نمی‌دهد.

W3
رتبه‌بندی

جمله‌ی فارسی به قصد تبدیل می‌شود، قصد به نامزدها، و نامزدها به یک فهرست کوتاه با نقش‌های متفاوت.

اگر هیچ آگهی‌ای با قیدها جور نشود، قیدها پله‌پله شل می‌شوند و گفته می‌شود کدام و چقدر. فهرست کوتاه عمداً متنوع است: «امن‌ترین گزینه» و «بیشترین صرفه» دو ادعای متفاوت‌اند و خریدار باید هر دو را ببیند.

W2
عامل‌ها و دفتر شواهد

هر ادعا در یک دفتر ثبت می‌شود با درجه‌ی شواهدش: مشاهده‌شده، استخراج‌شده، یا استنتاج‌شده.

یک داور جبری هم هست که با آن نمی‌شود بحث کرد: بازبینی که بشود قانعش کرد، بازبینی نیست.

حساب اصلی

value = estimate − asking_price − risk_discount

هر سه جمله به تومان‌اند. ریسک کم می‌شود، نه اینکه در امتیاز ضرب یا نرمال شود — چون یک ماشین تصادفی، ضریبی روی مطلوبیت نیست؛ یک هزینه‌ی انتظاری به تومان است، و وقتی به تومان نوشته شود می‌شود درباره‌اش بحث کرد. هزینه‌ی انتظاری خسارت با برآورد رشد می‌کند: همان درصد ریسک روی ماشین گران‌تر، تومان بیشتری می‌بلعد.

جایی که سامانه ساکت می‌شود

روی هیچ پیکره‌ی واقعی‌ای تا امروز برآوردگری از دروازه‌ی پذیرش عبور نکرده است. نتیجه این است که روی داده‌ی واقعی، CARO فهرست کوتاه نمی‌دهد — شواهد را نشان می‌دهد و می‌گوید چرا رتبه‌بندی نمی‌کند.

پیکره‌ی ساختگی که در دموی این سایت سرو می‌شود، کد واقعی و رتبه‌بندی واقعی را اجرا می‌کند و چون قیمت درستِ هر خودرو در آن معلوم است، دروازه عبور می‌کند. برچسب SYNTHETIC روی همه‌ی صفحه‌ها همین را می‌گوید: رفتار سامانه را می‌بینی، نه بازار ایران را.

حریم خصوصی و ادب اسکرپینگ

  • شماره‌ی تماس فروشنده هرگز ذخیره یا نمایش داده نمی‌شود. پیش از انتشار، شناسه‌های تماس حذف می‌شوند و بعد عدد کارکرد از باقی‌مانده خوانده می‌شود — ترتیب برعکس، راهی است برای آنکه رقم‌های یک شماره تلفن به‌عنوان کارکرد جا بزنند.
  • پیکره‌ی منتشرشده هیچ متن نوشته‌شده به‌دست فروشنده را حمل نمی‌کند. دو نگهبان این را تضمین می‌کنند: یکی روی نام کلیدها، دیگری روی خودِ بایت‌های فایل نهایی — چون نگهبانی که فقط شیء در حافظه را ببیند، با تغییر نام یک فیلد دور زده می‌شود.
  • هیچ دور زدن ضدربات، حل کپچا، چرخاندن حساب یا کار با کد پیامکی انجام نمی‌شود. اگر منبعی ببندد، ثبت می‌شود و کار متوقف می‌شود.