<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Sajad Vahabi</title>
        <link>https://virgool.io/feed/@sajadvahabi1995</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-07-06 06:49:23</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/230565/avatar/ZkVF6E.jpg?height=120&amp;width=120</url>
            <title>Sajad Vahabi</title>
            <link>https://virgool.io/@sajadvahabi1995</link>
        </image>

                    <item>
                <title>تهران کجا داغ‌تر شد؟ خوانش فضایی یک دهه گرمایش شهری با (GIS)</title>
                <link>https://virgool.io/@sajadvahabi1995/%D8%AA%D9%87%D8%B1%D8%A7%D9%86-%DA%A9%D8%AC%D8%A7-%D8%AF%D8%A7%D8%BA-%D8%AA%D8%B1-%D8%B4%D8%AF-%D8%AE%D9%88%D8%A7%D9%86%D8%B4-%D9%81%D8%B6%D8%A7%DB%8C%DB%8C-%DB%8C%DA%A9-%D8%AF%D9%87%D9%87-%DA%AF%D8%B1%D9%85%D8%A7%DB%8C%D8%B4-%D8%B4%D9%87%D8%B1%DB%8C-%D8%A8%D8%A7-gis-s9yfhek19esl</link>
                <description>تابستان‌های تهران همیشه گرم بوده‌اند؛ اما در سال‌های اخیر، گرما دیگر فقط یک تجربه فصلی نیست بلکه یه یک تجربه فضایی بدل شده است. این تفاوت را می‌شود با بدن نیز حس کرد: خیابانی که شب هم گرما را پس می‌زند، میدانی که هوایش سنگین‌تر است، و پارکی که چند درجه خنک‌تر نفس می‌کشد. به نظر شما این تفاوت‌ها تصادفی به نظر می‌رسند، اما آیا واقعاً همین‌طور است؟برای پاسخ به این سؤال، باید از فضای زیسته کمی فاصله گرفت و به داده ها نزدیک تر شد. تهران شهری که یکنواخت گرم نشدوقتی داده‌های دمای سطح زمین تهران را در دو مقطع زمانی ۲۰۱۴ و ۲۰۲۴ کنار هم قرار دادم، شهر ناگهان شکل دیگری پیدا کرد. تهران دیگر فقط مجموعه‌ای از خیابان‌ها و ساختمان‌ها نبود؛ شبیه بدنی شد که بخش‌هایی از آن تب کرده و بخش‌هایی هنوز دمای متعادل‌تری دارند. با استخراج  دمای سطح زمین از تصاویر ماهواره‌ای و محاسبه تغییرات ده‌ساله (ΔLST)، الگوی گرمایش شهر آشکار شد: گرمایش نه یکنواخت است و نه تصادفی؛ بلکه خوشه‌ای، متمرکز و وابسته به الگوی توسعه شهری است.در غرب تهران، لکه‌های فشرده افزایش دما دیده می‌شود؛ پهنه‌هایی که طی این دهه بیشترین فشار ساخت‌وساز و تغییر کاربری را تجربه کرده‌اند.در جنوب و جنوب‌غرب، نوارهای کشیده گرما ظاهر شده‌اند؛ هم‌راستا با کریدورهای زیرساختی و اراضی‌ای که به سطوح نفوذناپذیر تبدیل شده‌اند.در مقابل، بخش‌هایی از مرکز و شرق شهر حتی کاهش نسبی دما را نشان می‌دهند؛ لکه‌هایی خنک‌تر در دل یک شهر گرم‌تر. رجوع شود به تصویر شماره دو.این ناهمگنی حرارتی یک واقعیت مهم را آشکار می‌کند:  گرمایش شهری صرفاً نتیجه تغییر اقلیم نیست؛ بازتابی از نحوه رشد شهر استتصویر اول : شهر تهران از بالایک قدم نزدیک تر به شهر: وقتی GIS  شهر را برای ما خوانا می کندداده‌های ماهواره‌ای به‌تنهایی فقط تصویرند؛ این GIS است که آن‌ها را به تحلیل های ارزشمند تبدیل می‌کند. تحلیل چندزمانه در محیط‌هایی مانند  ArcGIS Pro امکان مقایسه دقیق دما در بازه‌های طولانی را فراهم می‌کند. اما کار به همین‌جا ختم نمی‌شود.  برای فهم چرایی این الگو، لایه حرارتی با داده‌های زیر همپوشانی شد:کاربری زمینتراکم ساختمانیپوشش گیاهی (NDVI)شبکه معابراز طریق محاسبه منطقه ای  میانگین دما در هر نوع کاربری محاسبه شد. نتیجه روشن بود: سطوح نفوذناپذیر و بافت‌های متراکم به‌طور معناداری دمای بالاتری دارند. اما رابطه دما با ساختار شهر فقط آماری نیست؛ فضایی است. با استفاده از شاخص   Moran’s I مشخص شد که گرمایش در تهران به‌شدت خوشه‌ای است — یعنی نقاط داغ در کنار هم متمرکز شده‌اند، نه پراکنده. تحلیل Hotspot (Getis-Ord Gi)*  نیز کانون‌های پایدار گرما را از نوسانات تصادفی تفکیک کرد. در این مرحله، نقشه از یک تصویر توصیفی به ابزار سیاست‌گذاری تبدیل می‌شود. اکنون می‌توان گفت:کدام مناطق اولویت کاشت درخت دارندکجا باید مصالح خنک‌تر به‌کار رودکدام پهنه‌ها نیازمند بازنگری ضوابط ساخت هستنداگر فقط به میانگین دمای شهر تکیه می‌کردیم، نهایتاً می‌گفتیم تهران گرم‌تر شده است، گزاره‌ای درست اما ناکارآمد. سیاست‌گذاری نیازمند دانستن «کجا» است، نه فقط «چقدر»تصویر دوم: وضعیت گرمایش سطحی شهر تهران در بازه ده سالهاز مشاهده تا پیش‌بینی؛ ورود یادگیری ماشینتحلیل فضایی گذشته و حال را با دقت نشان می‌دهد؛ اما پرسش اصلی آینده است:اگر روند فعلی توسعه ادامه یابد، کدام بخش‌های تهران در دهه بعدی داغ‌تر خواهند شد؟اینجاست که یادگیری ماشین وارد تحلیل شهری می‌شود.  وقتی داده‌های تاریخی LST با متغیرهای شهری ترکیب شوند ؛ مانند تراکم، ارتفاع ساختمان، NDVI، فاصله از شبکه‌های حمل‌ونقل و نوع کاربری،  می‌توان مدل‌های پیش‌بینی ساخت. مدل‌هایی مانند Random Forest یا Gradient Boosting قادرند الگوی تولید گرما را «یاد بگیرند» و سناریوهای آینده را شبیه‌سازی کنند. در این حالت، GIS بستر داده است و یادگیری ماشین، موتور این پیش‌بینی.   برای مثال، اگر توسعه ساختمانی در غرب تهران با همین الگو ادامه یابد، مدل می‌تواند شدت افزایش دما را در سال‌های آینده تخمین بزند. حتی می‌توان سناریو ساخت: اگر پوشش سبز ۱۵٪ افزایش یابد، چه میزان از شدت جزیره حرارتی کاهش پیدا می‌کند؟کاربردهای گسترده‌تر یادگیری ماشین  در مدیریت شهریگرمایش شهری تنها یکی از حوزه‌هایی است که در آن ترکیب GIS و یادگیری ماشین امکان تحلیل و پیش‌بینی را فراهم می‌کند. همین منطق تحلیلی می‌تواند در مسائل دیگر شهری نیز به‌کار رود؛ از جمله پیش‌بینی گسترش کالبدی شهر، تحلیل ریسک‌های سلامت‌محور، مدیریت هوشمند ترافیک و پایش تغییرات کاربری زمین. در هر یک از این حوزه‌ها، داده‌های مکانی و زمانی به مدل‌هایی سپرده می‌شوند که قادرند الگوهای پنهان را شناسایی کرده و سناریوهای آینده را شبیه‌سازی کنند.برای مثال، مدل‌های پیش‌بینی رشد شهری می‌توانند پهنه‌های مستعد توسعه را شناسایی کنند؛ تحلیل‌های سلامت‌محور قادرند محله‌های پرریسک در برابر موج‌های گرما یا آلودگی را مشخص سازند؛ الگوریتم‌های سری زمانی می‌توانند نقاط ازدحام ترافیکی آینده را پیش‌بینی کنند؛ و یادگیری عمیق بر تصاویر ماهواره‌ای امکان تشخیص ساخت‌وساز غیرمجاز یا کاهش فضای سبز را فراهم می‌کند. در این چارچوب، شهر دیگر صرفاً نقشه‌ای ایستا نیست، بلکه سامانه‌ای پویاست که می‌توان آن را فهمید، پایش کرد و برای آینده‌اش سناریو ساخت.شهر واکنشی یا شهر پیش‌نگر؟گرمایش تهران را می‌توان صرفاً یک مسئله آب‌وهوایی دید، یا آن را نشانه‌ای از نحوه حکمرانی فضایی شهر دانست، از اینکه چگونه می‌سازیم، کجا می‌سازیم، و چه چیزی را در این میان از دست می‌دهیم. اگر GIS زبان مشاهده شهر باشد، یادگیری ماشین زبان پیش‌بینی آن است. تحلیل‌های مکانی نشان می‌دهند گرما کجا متمرکز شده؛ اما مدل‌های پیش‌بینی نشان می‌دهند کجا متمرکز خواهد شد.  این گذار از خوانش گذشته به پیش‌بینی آینده، همان نقطه‌ای است که مدیریت شهری واکنشی را به حکمرانی داده‌محور تبدیل می‌کند. تهران فقط در نقشه‌ها گسترش نیافته؛ در دما هم گسترش یافته است. و اگر داده مبنای تصمیم‌گیری نباشد، گرمایش شهری نه‌تنها ادامه خواهد یافت، بلکه نابرابرتر هم خواهد شد،  داغ‌تر برای برخی محله‌ها، قابل‌تحمل‌تر برای برخی دیگر.سؤال نهایی این نیست که تهران گرم شده یا نه؛سؤال این است که آیا ما آماده‌ایم شهر را پیش از آنکه داغ‌تر شود، بفهمیم؟</description>
                <category>Sajad Vahabi</category>
                <author>Sajad Vahabi</author>
                <pubDate>Mon, 23 Feb 2026 10:02:06 +0330</pubDate>
            </item>
                    <item>
                <title>از اسکرول شبانه تا ساخت مدلی برای مهار توهین ها در شبکه اجتماعی X</title>
                <link>https://virgool.io/@sajadvahabi1995/%D8%A7%D8%B2-%D8%A7%D8%B3%DA%A9%D8%B1%D9%88%D9%84-%D8%B4%D8%A8%D8%A7%D9%86%D9%87-%D8%AA%D8%A7-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D8%AF%D9%84%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D9%87%D8%A7%D8%B1-%D8%AA%D9%88%D9%87%DB%8C%D9%86-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B4%D8%A8%DA%A9%D9%87-%D8%A7%D8%AC%D8%AA%D9%85%D8%A7%D8%B9%DB%8C-x-ij0qfenr9jvh</link>
                <description>پرده اول (به‌وقت اشتغال ذهنی)ساعت اندکی از ده شب گذشته بود و من طبق معمول توییتر (x) را به آرامی اسکرول می‌کردم. زیر یک پست نسبتا ترند شده که در مورد حوادث اخیر  روشنگری می‌کرد کامنت‌های زیادی ردوبدل شده بود. عده‌ای هم برای بیان نظرشون از ایموجی‌های لبخند، آتش و چیزهای دیگه استفاده کرده بودند. فضای جالبی بود و انبوهی از احساسات دیده می شد. در همین حین توهین های دسته از مردم که طبق روال عادت شروع کرده بودند به فحش‌دادن و تمسخرکردن توجهم رو جلب کرد.اندکی درنگ کردم، این فکر از ذهنم گذشت که ما با شرایطی پیچیده‌تر از مواجه صرف با چند تا کامنت منفی روبه‌رو هستیم و شاید نشت کاربران و ترک پلتفرم هم باید در این مسیر چیزی باشه که کمتر دیده شده است.  همان لحظه یک سؤال ساده توی ذهنم شکل گرفت:با تداوم این فحش ها و کدام نوعشون، دقیقاً چقدر به پلتفرم ضرر می‌زند؟پرده دوم (مواجه با کامنت‌ها)فردا صبح اول وقت بعد از اینکه کارهام کمی مرتب شد، شروع کردم به جستجوکردن در مورد نظریه ها در مورد تاثیر کامنت ها بر مردم و مدیریت  نظرات و کامنت‌ها در سوشال‌مدیا و بارها دیتابیس‌های مختلف رو زیرورو کردم. با کمی جستجو یک دیتاست هشت هزارتایی کامنت‌های فارسی در توییتر (x)  به سال 2025 رو فراهم کردم.  تو برآوردهای اولیه فهمیدم که حدود 61.8 درصد کامنت‌ها خنثی و 38.2 درصد توهین‌آمیز هستند و این یعنی از هر سه جمله یکی‌اش توهین‌آمیز بودند. کامنت‌ها رو با کمک فراوانی اصطلاح و فراوانی معکوس (TF‑IDF ) به عدد تبدیل کردم. حدود 500 هزار ویژگی تشخیص دادم از ایموجی تا فحش عریان و ترکیب‌هایی خلاقانه‌تر که به من کمک می‌کرد مدلی بسازم که بتونم توهین‌ها رو تشخیص بدم و اینکه هزینه عدم مدیریت این کامنت‌ها برای پلتفرم چقدر است؟.تا اینجا داده‌ها مهیا شد، و حالا می‌رسیم به بخش هیجان‌انگیز: مدل‌سازی!پرده سوم (مدل‌سازی)الان دیگه تقریبا ابزار کارم فراهم شده بود و کار با داده ها رو پی گرفتم. پس از لیبل‌گذاری سعی کردم از لجستیک رگرسیون، درخت تصمیم و ترکیبش با فراوانی اصطلاح بهره بردم.  نتایج شبیه یک مسابقةی دوی ۱۰۰ متر بود که رقیب های مختلف با سرعت سعی داشتند گوی سبقت رو بربایند. LR_Text  با دقت ۸۵.۸٪،  F1‑macro برابر ۰.۸۴۲ و  F1 کلاس توهین‌آمیز حدود ۰.۷۹۱ بهترین عملکرد را داشت.​  منحنی ROC‑AUC آن ۰.۹۱۷ شد؛ یعنی نزدیک به وضعیت ایدئال در تفکیک توهین/ غیر توهین. ​  Brier score  حدود ۰.۱۱۱۳ بود؛ یعنی احتمال‌هایی که مدل می‌دهد، نسبتاً با واقعیت منطبق است. ​ جالب‌تر این‌که این مدل برنده، فوق‌العاده سبک بود: یک مدل خطی که روی یک سرور معمولی با scikit‑learn اجرا می‌شود و می‌تواند در چند میلی‌ثانیه جواب بدهد. ​ برای این‌که مطمئن شوم مدل فقط روی عددها خوب نیست، چند جملة واقعی را تست کردم:این پست خیلی احمقانه است! → توهین‌آمیز با احتمال حدود ۶۴٪.ممنون از اطلاعات مفید → خنثی با احتمال پایین توهین، حدود ۱۴٪.تو واقعاً بی‌سواد هستی احمق → توهین‌آمیز؛ مدل تقریباً ۸۵٪ مطمئن بود.عالی بود، دستت درد نکند → خنثی، حدود ۱۲٪ احتمال توهین. ​تو این مرحله مدل، گوشش به توهین های فارسی عادت کرده بود.پرده چهارم: (خطای مدل)از اونجا که هیچ مدلی معصوم نیست و برای همین رفتم سراغ خطایابی مدل و ۴۷ کامنت بودند که مدل به‌اشتباه توهین‌آمیز درکشون کرده بود، مثل:•        «تو هم زیرورو می‌کشی»•        «یه بی‌نزاکت تمام»این‌ها مرزی‌اند: لحن تند، شوخی خشن، یا طعنه. اگر مدل روی این‌ها سخت‌گیر باشد، نهایتاً چند کامنت خاکستری می‌رود برای بررسی دستی.•           در مقابل، ۱۹۲ کامنت را داشتیم که واقعاً توهین‌آمیز بودند، ولی مدل نتوانسته بود تشخیص دهد مثل:•           «متنفرم ازت مطلق»•           «خیلی پرو ان والا خجالتم نمیکشن اشغال ها…»•           «به‌زودی لحظه افتخارکردن به خودت تموم میشه نجاست»برای یک پلتفرم، این دستة دوم خطرناک‌تر است. پس مسئله شد انتخاب یک آستانه‌ای که این دو نوع خطا را متعادل کند. بعد از بررسی، threshold =0.5  نقطه‌ای بود که به نظرم بهترین trade off را می‌داد: حساس نسبتاً بالا به توهین، بدون این‌که خطا ها کنترل‌ناپذیر شوند.پرده پنجم (هر فحش چقدر می ارزه؟)تصمیم گرفتیم چند فرض ساده ولی بی‌رحمانه داشته باشیم:هر کاربر فعال در ماه، به طور متوسط ۱۰۰,۰۰۰ تومان برای پلتفرم ارزش داره و خب از  هر ۱۰۰ کامنت توهین‌آمیز دیده‌شده، تقریباً ۲ کاربر خوب تصمیم می‌گیرند «بس است» و می‌روند.با این مفروضات، ناگهان هر پیام «بی‌ادبانه» تبدیل شد به یک ردیف در اکسل با ستون «تومان». دیگر بحث «اخلاق» تنها نبود؛ بحث «زیان ماهانه» هم وسط بود. حالا وقت آن بود که مدل را روی سناریوهای اقتصادی هزینه–فایده بنشانیم.  اگر اصلاً مدل نداشته باشیم: در نمونه ما، ۶۴۴ کامنت توهین‌آمیز در ماه دیده می‌شود. با مفروضات بالا، این برابر است با حدود ۱,۲۸۸,۰۰۰ تومان زیان ماهانه؛ صرفاً به‌خاطر کاربرانی که با دیدن این فضا تصمیم می‌گیرند که من دیگه به این فضا بر نمی گردم.پرداه ششم: (زوم اوت روی آدم‌ها)کنجکاو بودم که بدونم پشت این اعداد چه تیپ کاربرانی پنهان شده‌اند. برای همین، از دل داده‌ها ویژگی‌های رفتاری بیرون کشیدم (طول کامنت، احتمال توهین، الگوهای نوشتن) و روی آن‌ها خوشه‌بندی انجام دادم. نتیجه سه سگمنت جدی بود: ​سگمنت ۰ - «منتقدهای مؤدب» (حدود ۲۴.۸٪) میانگین طول کامنت‌ها ۱۱۰ کاراکتر، نرخ توهین ۲۹.۲٪. این‌ها همان‌هایی‌اند که اگر از محصول ناراضی باشند، چندین پاراگراف نقد می‌نویسند؛ نه این‌که فحش بدهند و بروند. این گروه شایسته‌ی امکانات VIP است: جواب گرفتن، دعوت به بنای امکانات جدید.سگمنت ۱ - «واکنشی‌ها» (حدود ۷۴.۱٪) کوتاه‌نویس، سریع و پرریسک؛ میانگین طول ۲۷ کاراکتر و نرخ توهین ۴۱.۵٪. این‌ها همان‌هایی‌اند که زیر هر خبر یا پست جنجالی، اولین فحش‌ها را می‌نویسند. سیستم moderation باید بیشترین انرژی‌اش را روی این گروه خرج کند؛ از فیلتر تا محدودیت موقت ارسال کامنت. ​سگمنت ۲ - «هستة آرام» (حدود ۱.۱٪) گروه کوچک، کامنت‌های متوسط‌طول (۵۴ کاراکتر)، نرخ توهین ۱۵.۱٪. شاید تعدادشان کم باشد، اما می‌توانند بهترین منبع بازخورد برای طراحی قوانین و تجربة کاربری سالم باشند. ​به‌این‌ترتیب، مدل توهین تنها یک ابزار فیلتر نبود؛ تبدیل شده بود به لنزی برای دیدن جامعة کوچک داخل پلتفرم.قسمت آخر: از الگوریتم تا حکمرانی گفتگونتیجة این پروژه برای من یک درس مهم داشت: اگر با «گفتگوهای آنلاین» مثل یک سیستم اجتماعی–اقتصادی رفتار کنیم، حتی یک لجستیک رگرسیون  ساده هم می‌تواند ابزار حکمرانی باشد و می تواند کمک کند تصمیم بگیریم کجا سخت گیر باشیم و کجا فرصت دهیم و اینکه سیاست های ما چه خروجی خواهد داشت و مدیریت توهین‌ها نه فقط ارزش اخلاقی دارد بلکه از لحاظ اقتصادی و اجتماعی نیز واجد اهمیت است.این مدل در حال حاضر بر روی گیت هاب بارگذاری شده و در پایین لینکش قرار داده شده است. اگر شما هم تجربه‌ای از مواجهه با کامنت‌های توهین‌آمیز دارید – چه به‌عنوان کاربر، چه به‌عنوان مدیر محصول – خوشحال می‌شوم در کامنت‌ها تعریف کنید. شاید همین داستان‌های کوچک، دیتاست پروژه بعدی باشد.نمودار پایپلاین پردازش طبیعی کامنت هالینک بررسی : https://github.com/sajadvahabi1996/persian-offense-detector</description>
                <category>Sajad Vahabi</category>
                <author>Sajad Vahabi</author>
                <pubDate>Fri, 20 Feb 2026 14:34:03 +0330</pubDate>
            </item>
            </channel>
</rss>