پاکسازی داده با هوش مصنوعی؛ نمونه CSV فارسی
پاکسازی داده با هوش مصنوعی را با نمونه CSV فارسی یاد بگیرید؛ قواعد اصلاح، حفظ مقدار خام، کد پایتون، گزارش تغییر و کنترل ردیفهای مبهم پیش از استفاده.

پاکسازی داده با هوش مصنوعی زمانی قابل اعتماد است که مدل قواعد اصلاح را پیشنهاد کند و هر تغییر با داده اصلی قابل مقایسه باشد. برای فایل CSV فارسی، ابتدا نوع ستون، شکل اعداد و تعریف مقدار خالی را مشخص کنید؛ سپس خروجی را همراه با گزارش تغییر و ردیفهای نیازمند بررسی تحویل بگیرید. این راهنما یک نمونه آموزشی و مسیر قابل تکرار ارائه میکند؛ اطلاعات جدول مربوط به مشتری واقعی نیست.
قبل از پاکسازی CSV چه چیزهایی را تعیین کنیم؟#
یک جدول ممکن است مرتب به نظر برسد اما معنای دادههایش تغییر کرده باشد. تبدیل شماره تماس به عدد، صفر ابتدای آن را حذف میکند. تبدیل تاریخ بدون دانستن تقویم، روز دیگری میسازد. حتی دو نام یکسان لزوماً متعلق به یک شخص نیستند. بنابراین نخست یک فرهنگ داده کوچک بنویسید و از مدل بخواهید ابهامها را پیش از اصلاح فهرست کند.
| ستون | نوع مورد انتظار | قاعده پیشنهادی | تصمیم برای ابهام |
|---|---|---|---|
| record_id | رشته یکتا | حفظ مقدار اولیه | شناسه تکراری بررسی شود |
| city | متن فارسی | تبدیل ي و ك به ی و ک | نام ناشناخته حفظ شود |
| phone | رشته | تبدیل رقم و حذف فاصله | طول نامعتبر علامت بخورد |
| amount | مبلغ با واحد مشخص | حذف جداکننده هزارگان | واحد نامعلوم اصلاح نشود |
| date_raw | متن تاریخ | نگهداری تقویم اعلامشده | تاریخ مبهم بدون تبدیل بماند |
مدل بهتنهایی مرجع تشخیص شهر، واحد پول یا هویت اشخاص نیست. اگر فرهنگ مجاز شهرها یا فهرست شناسهها را دارید، آن را همراه با نسخه و تاریخ ارائه کنید. پیشنهاد اصلاح خارج از این فهرست باید برای انسان باقی بماند.
نمونه داده فارسی و خروجی مورد انتظار#
این سه ردیف فرضی را در نظر بگیرید. در مثال، واحد مبلغ صریحاً تومان اعلام شده و شمارهها فقط برای نمایش ساختار هستند.
record_id,city,phone,amount
A01,تهران,۰۹۱۲ ۰۰۰ ۰۰۰۰,"۱,۲۰۰,۰۰۰"
A02,تهران ,09120000000,1200000
A03,شيراز,نامشخص,
ردیف A01 و A02 شماره مشابه دارند، اما حذف یکی مجاز نیست؛ شاید دو سفارش مستقل باشند. در A03 میتوان شکل حرف ی را اصلاح کرد، ولی تلفن و مبلغ باید نامعلوم بمانند. خروجی درست، اطلاعات گمشده را از روی ردیفهای دیگر حدس نمیزند. یک ستون وضعیت مانند needs_review کمک میکند نقصها در جدول نهایی دیده شوند.
برای گزارش تغییر، شناسه ردیف، ستون، مقدار قبلی، مقدار جدید و دلیل را ثبت کنید. اگر کسی پرسید چرا «شيراز» تغییر کرده، پاسخ باید قاعده استانداردسازی نویسه باشد، نه «هوش مصنوعی گفت». همین تفاوت کوچک، اصلاح را قابل دفاع و قابل برگشت میکند.
فرایند عملی از نمونه کوچک تا فایل کامل#
مرحله اول: نسخه اصلی را نگه دارید#
از فایل خام یک کپی تهیه کنید. تعداد ردیف، نام ستونها و رمزگذاری را ثبت کنید. اگر نامها، شمارهها یا اطلاعات خصوصی وجود دارد، نمونه ارسالی را ناشناس کنید. برای طراحی قواعد معمولاً چند ردیف نماینده و چند مورد دشوار کافی است؛ لازم نیست تمام پرونده مشتری را به یک گفتوگوی عمومی بفرستید.
مرحله دوم: قواعد را روی نمونه تأیید کنید#
از AI بخواهید اصلاح قطعی، پیشنهاد احتمالی و مورد حلنشده را جدا کند. یک اصلاح قطعی میتواند تبدیل رقم فارسی به لاتین باشد. اصلاح احتمالی مانند حدس زدن نام ناقص شهر نیازمند تأیید است. قواعد مصوب را شمارهگذاری کنید تا بعداً گزارش هر تغییر به همان شماره ارجاع دهد.
مرحله سوم: اجرا را قابل تکرار کنید#
برای فایل بزرگ، تولید اسکریپت از بازنویسی هزاران سلول در پاسخ چت قابل بررسیتر است. در مستندات رسمی خواندن CSV در pandas، گزینههای نوع داده و رمزگذاری معرفی شدهاند. مثال زیر ستونها را رشته میخواند و فقط تبدیلهای صریح انجام میدهد؛ تلفن را اعتبارسنجی نمیکند و تاریخ را تغییر نمیدهد.
import pandas as pd
digits = str.maketrans("۰۱۲۳۴۵۶۷۸۹٠١٢٣٤٥٦٧٨٩", "01234567890123456789")
df = pd.read_csv("input.csv", dtype=str, keep_default_na=False)
assert df["record_id"].is_unique
df["city_raw"] = df["city"]
df["city"] = df["city"].str.strip().str.replace("ي", "ی").str.replace("ك", "ک")
df["phone_raw"] = df["phone"]
df["phone"] = df["phone"].str.translate(digits).str.replace(" ", "", regex=False)
df["amount_raw"] = df["amount"]
df["amount"] = df["amount"].str.translate(digits).str.replace(",", "", regex=False)
df.to_csv("cleaned.csv", index=False, encoding="utf-8-sig")
پرامپت آماده پاکسازی داده#
نقش تو تحلیلگر کیفیت داده است. فرهنگ ستونها و ردیفهای نمونه را در ادامه میدهم. ابتدا ابهامهای معنایی را بپرس. هیچ مقدار خالی را حدس نزن و هیچ ردیفی را حذف نکن. قواعد پیشنهادی را به قطعی و نیازمند تأیید تقسیم کن. پس از تأیید، کد قابل تکرار برای تولید cleaned.csv و changes.csv پیشنهاد بده. گزارش تغییر باید شناسه ردیف، ستون، قبل، بعد و شماره قاعده داشته باشد. موارد نامعتبر را در review.csv نگه دار. مشخص کن چه فرضهایی هنوز تأیید نشدهاند.
برای دور دوم بگویید: «این پنج ردیف مرزی را به آزمون قواعد اضافه کن؛ خروجی مورد انتظار هر ردیف را قبل از اجرا بنویس.» این درخواست مانع از آن میشود که مدل فقط نمونههای ساده را درست پردازش کند.
چطور نتیجه را کنترل کنیم؟#
تعداد ردیف خام و خروجی را مقایسه کنید. شناسههای اولیه باید باقی بمانند و ترتیب ستونها مطابق قرارداد باشد. مجموع مبلغ را فقط روی ردیفهای معتبر و با واحد یکسان کنترل کنید. شمارش مقدارهای خالی را قبل و بعد ببینید؛ کاهش ناگهانی آنها ممکن است نشانه پر کردن ساختگی باشد.
ده ردیف تصادفی کافی نیست. علاوه بر نمونه تصادفی، تمام ردیفهای علامتدار و نمونههایی با رقم عربی، فاصله اضافی، مبلغ صفر و شناسه تکراری را بررسی کنید. اگر اجرای دوم روی فایل پاکشده باز هم تغییر میسازد، احتمالاً قواعد پایدار نیستند. خروجی مطلوب باید با همان قواعد به وضعیت ثابت برسد.
خطاهای رایج در دادههای فارسی#
جداکننده اعشار را با هزارگان اشتباه نگیرید. تبدیل تمام فاصلهها در ستون متن میتواند نام چندکلمهای را خراب کند. نرمالسازی ی و ک نیز باید روی ستون مناسب اعمال شود؛ شناسه خارجی یا کد محصول را بدون قرارداد تغییر ندهید. تطبیق فازی نامها پیشنهاد ادغام میسازد، اما اثبات یکسان بودن دو مشتری نیست.
یک پوشه تحویل شامل فایل خام، فرهنگ داده، قواعد مصوب، فایل پاکشده و گزارش موارد حلنشده بسازید. فرد بعدی باید بتواند بفهمد چه اصلاحی انجام شده و کدام بخش هنوز قابل اعتماد نیست. برای کار روی فرمولهای خروجی، راهنمای هوش مصنوعی برای اکسل و برای الگوهای محدود، ساخت Regex با هوش مصنوعی را ادامه دهید. میتوانید پرامپت طراحی قواعد را با نمونه ناشناس در GPT Plus امتحان کنید.
سوالات متداول
آیا AI میتواند مقدارهای خالی CSV را پر کند؟
نباید مقدار نامعلوم را بدون منبع حدس بزند. مقدار خام و وضعیت نیازمند بررسی را نگه دارید و تکمیل را به داده معتبر وصل کنید.
چرا شماره تماس باید رشته باشد؟
شماره شناسه است، نه مقدار محاسباتی. خواندن آن بهصورت عدد میتواند صفر ابتدایی را حذف کند.
چطور ردیف تکراری را تشخیص دهیم؟
کلید و تعریف تکرار را از قرارداد داده بگیرید. یکسان بودن نام یا تلفن بهتنهایی مجوز حذف ردیف نیست.
ما در GPT Plus هر روز با مدلهای هوش مصنوعی کار میکنیم و تجربههایمان را به فارسی مینویسیم تا استفاده از AI برای همه سادهتر شود.
مطالب مرتبط

رفع خطای پایتون با هوش مصنوعی؛ روش گامبهگام
رفع خطای پایتون با هوش مصنوعی را با متن traceback و مثال عملی تمرین کنید؛ ساخت نمونه کوچک، اصلاح محدود، کنترل خروجی و نگهداری آزمون بازگشت خطا.

ساخت Regex با هوش مصنوعی؛ مثال و تست فارسی
ساخت Regex با هوش مصنوعی را با مثال فارسی و کد Python یاد بگیرید؛ تعیین موتور، نمونه مثبت و منفی، حفظ قرارداد ارقام و تست الگو پیش از استفاده.

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