بررسی فنی فهرست کلمات حساس و ناسزا در سیستمعامل macOS — I dumped Apple’s word list
خلاصه
این مقاله به بررسی پایگاهداده داخلی macOS میپردازد که نحوه یادگیری کلمات ناسزا و حساس توسط قابلیت تصحیح خودکار را ردیابی میکند. نویسنده با استفاده از توابع خصوصی فریمورک Lexicon، لیست واژگان سیستم را استخراج کرده و دستهبندیهای جالب و گاهی عجیب اپل را آشکار میکند.
مقدمه و زمینه
سیستمعاملهای مدرن از مکانیزمهای پیچیدهای برای پیشبینی و تصحیح خودکار کلمات (Autocorrect) استفاده میکنند. در اپل، سیستم کیبورد تلاش میکند تا لحن کاربر را درک کرده و مثلاً از تبدیل کلمات عامیانه به گزینههای اصلاحشده ناخواسته جلوگیری کند. جنجال از جایی شروع شد که مشخص شد مکاوکس پایگاهدادهای به نام ~/Library/Keyboard/VulgarWordUsage.db دارد که بررسی میکند کاربر در چه برنامهای و به چه کسی کلمات ناسزا میگوید تا کیبورد به مرور یاد بگیرد.
جزئیات فنی و بررسی دیتابیس
بررسی ساختار SQLite این پایگاهداده نشان میدهد جدول vword_usage دارای ستونهایی برای اپلیکیشن، گیرنده پیام، کلمه ناسزا، تعداد دفعات استفاده و زمان آخرین استفاده است. این دقت بالا به کیبورد اجازه میدهد بداند آیا کاربر مجاز است در یک اپلیکیشن خاص از کلماتی مثل fuck استفاده کند یا خیر.
نکته جالب اینجاست که خود این دیتابیس تنها کلماتی را شمارش میکند که از قبل برای سیستم شناخته شده باشند. اپل این واژگان را در دیکشنریهای سیستمی خود در مسیر /System/Library/LinguisticData/ ذخیره میکند. هیچ API عمومی رسمی برای دسترسی به این سطح از بررسی واژگان وجود ندارد، اما با استفاده از توابع خصوصی فریمورک Lexicon.framework میتوان به آنها دست پیدا کرد.
استخراج واژگان با کدهای اختصاصی C و Swift
نویسنده مقاله با نوشتن اسکریپتهای کوچک به زبانهای C و Swift (با استفاده از dlopen و dlsym برای بارگذاری پویا توابع خصوصی)، توانسته است دیکشنریهای زبانی اپل را مانیتور کرده و پرچمهای (Flags) مربوط به هر کلمه را استخراج کند.
هر کلمه در این دیکشنریها دارای دو فیلد ۳۲بیتی است:
- متا فلگها (Meta Flags): سطحبندی کلمات را تعیین میکنند که شامل سه سطح اصلی است: ناسزا (Vulgar)، توهینآمیز (Offensive) و حساس (Sensitive).
- پرچمهای موضوعی (Category Flags): شامل موضوعاتی مثل جنسیت، مواد مخدر، سیاست، دین، خشونت و غیره.
یافتههای جالب در لیست سیاه اپل
بررسی خروجی این اسکریپتها نشان میدهد که فیلترهای اپل گاهی بسیار عجیب عمل میکنند:
- کلماتی مثل
Oedipus(اشاره به اسطورههای یونانی) در دسته ناسزا قرار گرفتهاند. - اسامی خاصی مانند
TomوMickبه عنوان توهینآمیز پرچمگذاری شدهاند. - واژگانی مثل
niggle(دغدغه کوچک) وunderling(زیردست) به عنوان حساس علامتخوره اند، در حالی که مترادفهای آنها پاک هستند. - در بخش سیاست، نام
Trumpتنها سیاستمدار زنده انگلیسیزبان است که در رده حساس در کنار نامهایی چون هیتلر و اسامه بن لادن قرار گرفته است؛ در حالی که نامهایی مثل بایدن، اوباما و پوتین پاک هستند.
دیدگاه برنامهنویسان در هکرنیوز
بحثهای شکلگرفته در هکرنیوز ابعاد دیگری را روشن کرد. برخی کاربران با اجرای اسکریپتهای مشابه روی نسخههای جدیدتر macOS تفاوتهای آماری در تعداد کلمات پرچمگذاریشده مشاهده کردند. عدهای دیگر از رویکرد بیش از حد محتاطانه و کنترلگرانه اپل انتقاد کردند و آن را نمونهای از تلاشهای سیستم برای ممیزی نامحسوس محتوا دانستند.
چرا این موضوع برای مهندسان نرمافزار مهم است؟
این بررسی نشان میدهد چگونه سیستمعاملهای مدرن از الگوریتمهای پردازش زبان طبیعی (NLP) و پایگاهدادههای محلی برای شخصیسازی تجربه کاربری استفاده میکنند. همچنین این موضوع چالشهای مهندسی معکوس و وابستگی به APIهای خصوصی (Private APIs) را برای دسترسی به لایههای زیرین سیستمعامل برجسته میکند.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل