فرمتها و ساختارهای دیتاست (CSV، JSON و XML)
در دنیای علم داده ( Data Science) یادگیری ماشین یا تحلیل داده دادهها دقیقاً با چه فرمتی ذخیره می شوند و چطور باید باهاشون کار کنیم؟
دیتاستها میتونن در فرمتهای مختلفی ذخیره بشن و شناخت این فرمتها، یکی از پایهایترین مهارتها برای هر تحلیلگر داده یا برنامهنویسه.
در مطلب چهارم از اصول علم داده ، سه تا از رایجترین فرمتهای دیتاستهای ساختاریافته رو با هم بررسی می کنیم:
· CSV
· JSON
· XML
هر کدوم از این فرمتها فلسفهی خاص خودشون رو دارند، کاربردهای متفاوت و برای سناریوهای مشخصی طراحی شدند.
چرا اصلاً فرمت دیتاست مهمه؟
قبل از اینکه بریم سراغ خود فرمتها، یه نکتهی مهم رو شفاف کنم:
فرمت دیتاست فقط ظاهر داده نیست؛ بلکه مشخص میکنه که داده چقدر خواناست، چقدر راحت میشه پردازشش کرد ، برای انتقال بین سیستمها مناسبه یا نه و ساختارش سادهست یا سلسلهمراتبی و پیچیده.
مثلاً:
معمولا برای دادههای جدولی ساده از CSVاستفاده می کنند.
دادههای وب با استفاده از JSON انتقال پیدا می کنند.
برای دادههای علمی، پیچیده یا تصویری از فرمت XML استفاده می کنند.
فرمت CSV (Comma-Separated Values)
CSV یعنی چی؟
CSV مخفف Comma-Separated Values هست؛ یعنی:
مقادیر جداشده با ویرگول
خوب در این فرمت: هر سطر یک رکورد (Record / Entry)، هر ستون یک ویژگی (Attribute / Variable) و مقادیر هر سطر با ویرگول (,) از هم جدا میشوند.
به زبان ساده، CSV همون چیزیه که خیلی وقتها شبیه اکسل بدون فرمول میبینیم.
اگر مثال دیتاست انتخاب درس برای ترم بعد در مطلب سوم از علم داده را در نظر بگیریم :

فرمت CSV همین دیتاست به مانند زیر خواهد بود :

از مزایای CSV بگم :
· خیلی ساده و سرراست
· سبک و کمحجم
· ایدهآل برای دادههای جدولی
· سازگار با تقریباً همهی ابزارها است از جمله : SQL ، R ، Python ، Excel و ...
و اما معایب CSV :
· اضافه کردن متادیتا تقریباً سخت یا غیرممکنه
· اگر داده شامل ویرگول، کوتیشن یا کاراکتر خاص باشه، پردازش پیچیده میشه
· فقط ساختار تخت (Flat) داره و برای دادههای تو در تو مناسب نیست
CSV در عمل چطور دیده میشه؟
وقتی یک فایل CSV رو با ابزارهایی مثل ، Notepad ، Visual Studio Code یا Sublime Text باز میکنی، دقیقاً یک متن ساده رو میبینی ولی وقتی همون فایل رو با Microsoft Excel یا Google Sheets باز میکنی، دادهها بهصورت جدول تمیز و قابل فهم نمایش داده میشن.
همین سادگی باعث شده CSV یکی از محبوبترین فرمتها در تحلیل داده با پایتون باشه.
خیلی از علاقه مندان به علم داده می پرسند که ویرگول اضافه آخر خط؟ مشکل داره؟
خیر و این در فایلهای CSV کاملا طبیعیه و بعضی از نرمافزارها موقع تولید فایل CSVبهصورت خودکار یک ویرگول اضافه آخر هر خط میذارن و
ابزارهایی مثل Excel، Pandas و R بدون هیچ مشکلی هر دو حالت رو میخونن.
فرمت (JavaScript Object Notation)JSON
JSON چیه؟
JSON از ساختار Object در زبان JavaScript الهام گرفته، ولی برای کار با JSON نیازی به دانستن JavaScript ندارید. در این فرمت دادهها داخل { } قرار میگیرند ، ساختار بر اساس Key : Value هست و کلید و مقدار با : جدا میشن.
مثلاً:

از مزایای JSON بگم :
· ساده و خوانا است
· سازگار با تقریباً همهی زبانها
· عالی برای APIها و وب
· پشتیبانی عالی در JavaScript، Python، Java، C# و …
و اما معایب : JSON
· امکان گذاشتن کامنت نداره
· ساختار رسمی برای متادیتا محدوده
کاربرد اصلی JSON در کجاست ؟
در تبادل داده بین کاربر و سرور و APIها در وبسایتها و اپلیکیشنها و .Microservices
به جرأت میشه گفت:JSON ستون فقرات داده در دنیای وب امروزه.
فرمت XML (Extensible Markup Language)
فرمت XML از نظر مفهومی شبیه JSON است، با این تفاوت که برای نمایش هر آیتم از دیتاست از نمادهایی به نام تگ (Tag) استفاده میکند.
تگهای XML بلوکهایی از متن هستند که داخل براکتهای زاویهدار < > قرار میگیرند
مانند زیر :

XML چه فرقی با JSON داره؟
XML هم ساختاریافتهست، ولی ما بهجای key-valueدر اینجا از از تگ (Tag) استفاده میکنیم که هر تگ مانند زیر است:
<semester>Fall 2020</semester>
ساختار XML دیتاست:
· سلسلهمراتبی
· قابل گسترش
· مناسب دادههای پیچیده
مزایای XML :
· امکان اضافه کردن متادیتا
· ساختار واضح و رسمی
· مناسب دیتاستهای علمی و سازمانی
معایب XML
· طولانی و شلوغ (Verbose)
· پردازش سنگینتر نسبت به JSON
XML در دنیای واقعی :
XML هنوز هم در خیلی از حوزهها استاندارد طلایی محسوب میشه، مثل:
دیتاستهای علمی (PubMed)
دادههای پزشکی
دادههای پژوهشی
استانداردهای بینالمللی
فرمت XML همچنین بهطور گسترده بهعنوان فایل جانبی (Annotation) برای دادههای تصویری استفاده میشود.
در این حالت، خود تصویر در قالبهایی مثل JPEG ذخیره میشود و اطلاعات تکمیلی تصویر در یک فایل XML جداگانه قرار میگیرد.
متادیتا (Metadata) در JSON و XML
فایلهای JSON و XML معمولاً فقط شامل دادهی خام نیستند، بلکه اطلاعاتی دربارهی خود دیتاست نیز در آنها ذخیره میشود که به آنها فراداده (Metadata) گفته میشود.
فرمت JSON با متادیتا :

فرمت XML با متادیتا :

متادیتا اطلاعاتی دربارهی خود دیتاست هم به همراه دارند مانند :
زمان ایجاد دیتاست
نام دیتاست
نوع ستونها
توضیحات کلی
این اطلاعات:
جدا از داده اصلی
و بسیار مهم برای تحلیل حرفهای هستن