مقدمه ای بر تحلیل احساسات

گسترش روزافزون داده ها ساختاریافته و ناساختاریافته در وب، باعث ایجاد چالشی تحت عنوان داده های کلان شده است. با توجه به نوع داده ها موجود در ساختار داده های کلان از روش های مختلفی مانند یادگیری ماشین و پردازش زبان طبیعی برای تحلیل این نوع داده ها استفاده می شود. بخش عظیمی از داده های کلان را داده های ناساختاریافته در قالب زبان طبیعی انسان (متن) تشکیل می دهند، محتویات موجود در وب سایت ها، مجلات، شبکه های اجتماعی و ... از نوع داده های متنی هستند، که در سال های اخیر رشد چشم گیری داشته اند. 

پردازش زبان طبیعی (NLP) مجموعه روش های سنتی هوش مصنوعی هستند که برای درک، فهم و تحلیل بهتر زبان طبیعی انسان ها توسط ماشین استفاده می شود. از جمله این روش ها می توان به استخراج نام ها از متن، استخراج موجودیت ها از متن، ریشه یابی کلمات، حذف کلمات زائد از متن و ... نیز اشاره کرد که در سال های اخیر با ترکیب سایر مؤلفه های هوش مصنوعی مانند یادگیری عمیق قدرت درک، فهم و تحلیل داده های متنی توسط روش های پردازش زبان طبیعی افزایش یافته است.

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

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

روش های مبتنی بر واژه:

این روش متکی بر یک واژه نامه احساس می باشد، به عنوان مثال در صورت وجود واژه های نفرت انگیز یا شگفت انگیز در یک متن، برچسب Positive یا Negative  را به آن متن نسبت می دهد. اما این رویکردها مدام نیاز به بروزرسانی واژه نامه احساسی دارد و برای تحلیل احساسات معنای عینی جملات کاربرد دارد. لذا نمی تواند برحسب معنای ضمنی جملات به آن برچسب تخصیص دهد به عنوان مثال این رویکرد در تخصیص برچسب به جمله من یک ماشین هفته پیش خریدم و امروز بر روی بدنه آن یک لکه ظاهر شد ناتوان است.

روش های مبتنی بر یادگیری ماشین:

 در این رویکرد ابتدا مدلی براساس کلمات موجود در دیتاست آموزش دیده و سپس بر روی بخش دیگری از جملات یک دیتاست آزمایش می شود. در صورتی که در مرحله آزمایش دقت قابل قبولی را کسب کند از آن مدل به عنوان یک مدل تصمیم گیرنده یا پیش بینی کننده احساسات سایر جملات یا رکوردهای دیتاست استفاده می شود. روش های و الگوریتم های زیادی در این نوع رویکرد وجود دارد مانند الگوریتم های Random Forest، SVM ، NB و ... . اگر چه این رویکرد نسبت به رویکردها مبتنی بر واژه از دقت بهتری برخورد دار می باشد اما یکی از عیوب این روش انتخاب ویژگی توسط برنامه نویس است.

روش های یادگیری عمیق:

در سال های اخیر برای حل مشکل رویکردهای مبتنی بر یادگیری ماشین از یادگیری عمیق استفاده شده است با استفاده از یادگیری عمیق، دیگر نیاز به انتخاب ویژگی توسط برنامه نویس نیست، اما در مقابل باید حجم داده های آموزشی که برای یادگیری مدل استفاده می شود بسیار زیاد باشد. لذا رویکرد سومی تحت عنوان یادگیری عمیق در سال های اخیر برای تحلیل احساسات داده های متنی شکل گرفته است.میزان دقت رویکرد یادگیری عمیق با توجه به عدم دخالت کاربر در تعیین ویژگی های با اهمیت، نسبت به رویکردهای قبلی کمتر می باشد.

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

لذا در کاملترین آموزش دیتابیس  و دوره آموزش علم داده | Data Science | مقدماتی تا پیشرفته | سناریو محور و گام به گام در خدمت شما بوده و قصد داریم در پایان این دوره از شما دانشجوی عزیز یک متخصص علم داده یا دانشمند علم داده | Data Scientist بسازیم. متخصص علم داده | Data Scientist یکی از پردرآمدترین شغل های حال حاضر دنیا در قرن جاری می باشد.


کگل (Kaggle) چیست و چه کاربردهایی دارد؟

به زبان ساده کگل | Kaggle یک پلتفرم آنلاین علم داده است که در مالکیت گوگل بوده و برای دسترسی به مجموعه داه های، روش­های حل و رقابت های یادگیر ماشین (علم داده | Data Science ) استفاده می­شود.

سرفصل های این مطلب
  1. خدمات ارائه شده توسط کگل | Kaggle :
  2. مسابقات کگل | Kaggle :
  3. نحوه برگزاری مسابقات کگل | Kaggle :
  4. کرنل کگل | Kaggle:
  5. مجموعه داده‌ کگل | Kaggle :

استارت پروژه کگل | Kaggle در سال 2010 توسط آقای آنتونی گلدبلوم و جرمی هوارد با ارائه مسابقات یادگیری ماشین زده شد و امروزه به عنوان یک پلتفرم عمومی در حوزه پردازش داده ها در دسترس عموم قرار گرفته است، کگل در سال 2017 توسط شرکت گوگل خریداری شد و هم اکنون گوگل صاحب آن است.

خدمات ارائه شده توسط کگل | Kaggle :

  • رقابت‌های یادگیری ماشین | Machine Learning: اولین محصول کگل بوده و هنوز هم مشهور است.
  • کرنل کگل: یک محیط کار بر پایه سرویس ابری که توسط متخصصین علم داده برای پردازش داده و یادگیری ماشین استفاده می شود
  • مجموعه داده‌های عمومی: مجموعه از داده ها و کرپس ها بوده که توسط افراد، پژوهشگران و شرکت ها در دسترس متخصصین علم داده قرار گرفته است.

مسابقات کگل | Kaggle :

تاکنون کگل | Kaggle صدها مسابقه در حوزه یادگیری ماشین، پردازش زبان طبیعی | NLP ، پردازش تصویر | Image Processing و ... اجرا کرده است که باعث حل چالش و موفقیت بسیاری از مسائل شده است. از جمله آن می‌توان به پیشرفت‌های مهم در تحقیقات HIV، سیستم های تشخیص چهره و پیش‌بینی ترافیک  و ... اشاره کرد.

نحوه برگزاری مسابقات کگل | Kaggle :

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

کرنل کگل | Kaggle:

متخصصین علم داده می توانند در محیط ارائه شده توسط پلتفرم کگل که بر پایه سرویس ابری است به راحتی الگوریتم های یادگیری ماشین خود را توسط دهند و از سخت افزهای این پلترفم برای اجرا و تست برنامه های خود استفاده کنند.

مجموعه داده‌ کگل | Kaggle :

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


Kaggle یک پلتفرم آنلاین برای متخصصان داده و یادگیری ماشین است که امکان اشتراک‌گذاری دیتاست، شرکت در مسابقات علمی داده، یادگیری مهارت‌های جدید و همکاری با دیگران را فراهم می‌کند. این پلتفرم شامل ابزارهای مختلفی مانند نوت‌بوک‌های ابری (Kaggle Notebooks) برای اجرای کد بدون نیاز به تنظیمات پیچیده است. کاربران می‌توانند با استفاده از دیتاست‌های موجود، مدل‌های یادگیری ماشین را تمرین کرده و بهبود دهند. همچنین، انجمن‌های Kaggle فرصتی برای بحث و تبادل نظر درباره روش‌های تحلیل داده فراهم می‌کنند.

آموزش کار با دیتابیس Kaggle در  اینگونه است :

  1. ورود به Kaggle: ابتدا در ان ثبت‌نام کنید.
  2. انتخاب دیتاست: از بخش "Datasets" یک دیتاست مناسب پیدا کنید.
  3. ایجاد نوت‌بوک: به قسمت "Notebooks" بروید و یک نوت‌بوک جدید ایجاد کنید.
  4. اتصال دیتاست: از طریق pandas دیتاست را بارگذاری کنید:
    import pandas as pd  
    df = pd.read_csv('/kaggle/input/dataset.csv')  
    df.head()
    
  5. اجرای کوئری‌های SQL: در نوت‌بوک‌های Kaggle می‌توان از SQL نیز استفاده کرد:
    SELECT * FROM dataset LIMIT 5;
    

با این روش می‌توانید به تحلیل داده و اجرای مدل‌های یادگیری ماشین بپردازید.



مجموعه داده یا دیتاست در یادگیری ماشین چیست؟

 

یکی از مهمترین پارمترهای کلیدی برای تبدیل شدن به یک دانشمند بزرگ داده | data scientist ، تمرین با انواع مختلف مجموعه داده | دیتاست می باشد. اما به راحتی نمی توان یک مجموعه داده مناسب برای یک پروژه و نوع الگوریتم انتخابی یادگیری ماشین | ML انتخاب کرد، بنابراین در ادامه این مبحث، به شما آموزش خواهیم داد که از طریق چه منابعی می توانید به راحتی مجموعه داده هایی را مطابق با پروژه خود تهیه کنید.

درآموزش دیتابیس و دوره آموزشی جامع علم داده (یادگیری ماشین، داده کاوی) را به شکل کاملاً عملی و با زبانی ساده به شما آموزش می دهد .قبل از ذکر منابع مجموعه داده‌های یادگیری ماشین، ابتدا مفهموم مجموعه‌ داده را مورد بحث قرار می دهیم.

مجموعه داده | Dataset چیست؟

مجموعه داده | دیتاست، در واقع مجموعه ای از داده ها است که در آن داده ها به ترتیبی مرتب شده اند. یک مجموعه داده می تواند یک آرایه یا یک جدول از پایگاه داده باشد. جدول زیر نمونه ای از یک مجموعه داده را نشان می دهد که شامل 6 سطر و چهار ستون یا ویژگی کشور، سن، حقوق و خرید می باشد.

کشورسنحقوقخرید کرده است ؟
هند2512000بله
چین2710000بله
ایران28500خیر
آمریکا2425000بله
آلمان2618000خیر

یک مجموعه داده را می توان به عنوان یک جدول یا ماتریس پایگاه داده درک کرد که در آن هر ستون در واقع یک متغیر یا ویژگی نامید. بیشترین نوع فایل پشتیبانی شده برای مجموعه داده های جدولی "فایل جدا شده با کاما" یا CSV است.

انواع داده ها در مجموعه داده

  • داده های عددی: مانند قیمت خانه، دما و غیره.
  • داده های طبقه بندی شده: مانند بله/خیر، درست/نادرست، آبی/سبز و غیره.
  • داده‌های ترتیبی: این داده‌ها شبیه به داده‌های طبقه‌بندی هستند، اما می‌توانند بر اساس مقایسه اندازه‌گیری شوند. مانند مقطع تحصیلی که شامل مقادیر وزنی (دیپلم، کاردانی، کارشناسی، کارشناسی ارشد و دکترا می باشد)

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

نیاز به مجموعه داده

برای کار با پروژه های یادگیری ماشین | machine learning، به حجم عظیمی از داده نیاز داریم، زیرا بدون داده، نمی توان مدل های ML/AI را آموزش داد. جمع آوری و آماده سازی مجموعه داده | دیتاست یکی از مهم ترین بخش ها در هنگام ایجاد یک پروژه ML/AI است. اگر مجموعه داده به خوبی آماده و از قبل پردازش نشده باشد، فناوری به کار رفته در پشت هر پروژه ML نمی تواند به درستی کار کند و دقت خروجی کمتری خواهد داشت. در طول توسعه پروژه ML، توسعه دهندگان کاملاً به مجموعه داده ها متکی هستند. در ساخت برنامه های ML، مجموعه داده ها به دو بخش تقسیم می شوند:

  • مجموعه داده های آموزشی : با استفاده از این مجموعه داده مدل یادگیری ماشین | machine learning مورد نظر را آموزش می دهیم.
  • مجموعه داده تست : با استفاده از این مجموعه داده مدل یادگیری ماشین | ML آموزش دیده را مورد ارزیابی قرار می دهیم.

 

توجه: مجموعه داده ها حجم بالایی دارند، بنابراین برای دانلود این مجموعه داده ها باید اینترنت پرسرعتی در رایانه خود داشته باشید.

بهترین منابع برای دانلود مجموعه داده

در ادامه منابعی معرفی می شود که مجموعه داده های آن به صورت رایگان برای عموم در دسترس می باشد.

Kaggle Datasets

Kaggle یکی از بهترین منابع یا مخازن تهیه مجموعه داده برای دانشمندان داده و کاربردهای یادگیری ماشین می باشد. شما در این سایت به آسانی می توانید منابع مورد نظر را جست و جو، دانلود و حتی منتشر کنید. همچنین در این وب سایت شما می توانید با سایر دانشمندان داده در تحلیل و پیش بینی داده ها رقابت کنید.

 

مخزن یادگیری ماشین UCI

مخزن یادگیری ماشین UCI یکی از منابع عالی مجموعه داده های یادگیری ماشین برای کاربردهای مختلف ( دسته بندی، رگرسیون، خوشه بندی و ... ) است که از سال 1987، به طور گسترده توسط دانشجویان، اساتید، محققان به عنوان منبع اصلی مجموعه داده های یادگیری ماشین استفاده شده است. از جمله مجموعه‌های داده محبوب آن عبارتند از مجموعه داده‌های Iris، مجموعه داده ارزیابی خودرو، مجموعه داده‌های دستی پوکر که برای آموزش الگوریتم های مختلف یادگیری ماشین از آن استفاده می شود.

 

مجموعه داده AWS

یکی دیگر از منابعی که با استفاده از آن می توانیم مجموعه داده های سفارشی خود را جست و جو، دانلود و منتشر کنیم عبارتند از سایت AWS. هر کسی می‌تواند با استفاده از مجموع داده‌های به اشتراک گذاشته شده از طریق منابع AWS، الگوریتم های مختلف یادگیری ماشین را بر روی مجموعه داده های مختلف پیاده سازی کند.

 

موتور جستجوی مجموعه داده های گوگل

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


Scikit-learn یک کتابخانه یادگیری ماشین برای زبان برنامه نویسی پایتون می باشد که علاوه بر ارائه الگوریتم های مختلف یادگیر ماشین و پردازش امکان دسترسی به یکسری مجموعه داده را برای دانشمندان داده ممکن می سازد.

 

یادگیری ماشین با نظارت | Supervised Machine Learning چیست ؟

 

یادگیری ماشین با نظارت | Supervised Machine Learning نوعی یادگیری است که در آن ماشین یا مدل با استفاده از داده های آموزشی (دارای برچسب صحیح) آموزش داده می شود تا بتواند برای داده های تستی یا جدید، فرایند تشخیص برچسب (تشخیص خروجی یا پیش بینی خروجی) را انجام دهند. منظور از داده های دارای برچسب این است که برخی از داده های ورودی قبلاً با خروجی صحیح برچسب گذاری شده اند.

داده های آموزشی (دارای برچسب صحیح) در یادگیری ماشین با نظارت | Supervised Machine Learning برای آموزش یک مدل یا ماشین استفاده می شود تا بعدها آن مدل بتواند با توجه به آموزش فرا گرفته شده در امتحانات نمره خوبی کسب کند. منظور از امتحانات، همان پیش بینی برچسب صحیح برای داده های ورودی جدید می باشد. شما می تواند این پاراگراف را از طریق مثال یک دانش آموز و معلم بهتر درک کنید. به عنوان مثال در مدرسه، معلم سوالات و پاسخ های صحیح را به دانش آموز آموزش می دهد و در پایان ترم از دانش اموز امتحان می گیرد، اگر دانش آموز بتواند برای سوالات، پاسخ های درستی بنویسید نمره خوبی کسب می کند در غیر این صورت ممکن از رفوزه شود.

هدف یک الگوریتم یادگیری با نظارت، یافتن یک تابع نگاشت برای ترسیم متغیر ورودی (x) با متغیر خروجی (y) است یا نگاشت یک سوال به یک پاسخ صحیح می باشد.

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

یادگیری با نظارت | Supervised Machine Learning چگونه کار می کند

در یادگیری نظارت شده | Supervised Machine Learning، مدل‌ها با استفاده از مجموعه داده‌های برچسب‌گذاری شده آموزش داده می‌شوند، پس از تکمیل فرآیند آموزش، مدل بر اساس داده های آزمون دارای برچسب واقعی (زیرمجموعه ای از مجموعه داده) آزمایش می شود تا برای آن ها خروجی صحیح را پیش بینی کند. اگر خروجی بدست امده شده مانند خروجی واقعی داده های آزمون باشد می توانیم بگیم مدل ما از دقت خوبی برخوردار است و می تواند در کسب و کار به منظور افزایش سود دهی از آن استفاده کرد در غیر اینصورت باید به فکر چاره در فرآیند کار بود.

عملکرد یادگیری با نظارت را می توان به راحتی با مثال و نمودار زیر درک کرد:

فرض کنید مجموعه داده ای از انواع مختلف اشکال داریم که شامل مربع، مستطیل، مثلث و چند ضلعی است. اکنون اولین قدم این است که باید مدل را برای هر شکل آموزش دهیم.

  • اگر شکل داده شده چهار ضلع داشته باشد و همه اضلاع آن برابر باشند، آن را به عنوان مربع علامت گذاری می کنیم .
  • اگر شکل داده شده دارای سه ضلع باشد، به عنوان یک مثلث علامت گذاری می شود .
  • اگر شکل داده شده شش ضلع مساوی داشته باشد، به عنوان شش ضلعی علامت گذاری می شود .

حالا بعد از گام آموزش، مدل خود را با استفاده از مجموعه تست ( آزمایش )، تست (ارزیابی) می کنیم تا ببینیم برای شکل های تستی به درستی فرایند تشخیص نوع شکل را با توجه به تعداد اضلاع آن، انجام می دهد یا خیر.

مراحل مربوط به یادگیری با نظارت:

  • ابتدا یک مجموعه داده یا دیتاست انتخاب می کنیم.
  • سپس مجموعه داده را به مجموعه داده آموزشی (75 درصد داده ها) و مجموعه داده آزمایشی (25 درصد داده ها) تقسیم کنید.
  • ویژگی های ورودی مجموعه داده آموزشی را تعیین کنید، که باید دانش کافی داشته باشد تا مدل بتواند خروجی را از طریق آن ها به طور دقیق پیش بینی کند.
  • یک الگوریتم یادگیری ماشین از نوع با نظارت (مانند ماشین بردار پشتیبان، درخت تصمیم) را با توجه به ساختار داده های آموزشی و آزمایشی انتخاب می کنیم
  • الگوریتم را روی مجموعه داده آموزشی اجرا کنید تا مدل آموزش دیده ساخته شود.
  • با ارائه مجموعه تست، دقت مدل ساخته شده از مرجله قبل را ارزیابی می کنیم.

درآموزش دیتابیس و  دوره آموزشی جامع علم داده م (یادگیری ماشین، داده کاوی) را به شکل کاملاً عملی و با زبانی ساده به شما آموزش می دهد.

انواع الگوریتم های یادگیری ماشینی تحت نظارت

الگوریتم های یادگیری با نظارت را می توان به دو نوع تقسیم کرد:

اگر رابطه ای (مثل رابطه افزایشی یا کاهشی) بین متغیر ورودی (ویژگی ها) و متغیر خروجی (برچسب) وجود داشته باشد از الگوریتم های رگرسیون استفاده می شود. از این نوع الگوریتم ها برای پیش‌بینی متغیرهای پیوسته، مانند پیش‌بینی آب‌وهوا، روند بازار، و غیره استفاده می‌شود. در ادامه انواع الگوریتم های رگرسیون ذکر شده است.

  • رگرسیون خطی
  • درختان رگرسیون
  • رگرسیون غیر خطی
  • رگرسیون خطی بیزی
  • رگرسیون چند جمله ای

دسته بندی

از الگوریتم‌های دسته بندی زمانی استفاده می‌شوند که متغیر خروجی از نوع طبقه بندی ( Categorical ) باشد یا بتوان آن را به این نوع تبدیل کرد، به این معنی که متغیر خروجی از نوع دو کلاسه مانند بله-نه، مذکر-مونث، درست-کاذب و غیره وجود باشد. در ادامه انواع الگوریتم های دسته بندی لیست شده اند.

  • جنگل تصادفی | Random Forest
  • درخت تصمیم
  • رگرسیون لجستیک
  • ماشین بردار پشتیبان | SVM

مزایای یادگیری با نظارت

  • با استفاده از یادگیری با نظارت، مدل می تواند خروجی را بر اساس تجربیات قبلی (آموزش) پیش بینی کند.
  • در یادگیری نظارت شده، می‌توانیم ایده دقیقی درباره کلاس‌های اشیاء داشته باشیم.
  • مدل به دست آمده در یادگیری نظارت شده به ما کمک می کند تا مشکلات مختلف دنیای واقعی مانند کشف تقلب، فیلتر هرزنامه و غیره را حل کنیم.

معایب یادگیری با نظارت

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

SQL چیست؟ معرفی کامل اس کیو ال و آشنایی با کاربردهای آن


SQL چیست؟ اس کیو ال چه کاربردهایی دارد و  واژه SQL مخفف چه کلماتی است؟ پرسشی که در ذهن خیلی از علاقه مندان به بانک های اطلاعاتی شکل می گیرد و ما در این مقاله قصد داریم به تمامی سوالات شما در این باره پاسخ دهیم و با زبان SQL آشنا شویم.اس کیول (SQL) یا Structured Query Language یک زبان Domain-Specific است که برای برنامه نویسی و طراحی بانک های اطلاعاتی در بانک های رابطه ای یا RDBMS ها استفاده می شود.

زبان SQL مختص یک شرکت یا یک سازمان نیست، البته پایه این زبان توسط شرکت IBM گذاشته شد، ولی امروزه این زبان یک استاندارد پایه برای بانک های اطلاعاتی رابطه ای تعریف می کند. بر اساس این استاندارد شرکت هایی که نرم افزار بانک اطلاعاتی تولید می کنند مثل مایکروسافت یا اوراکل زبان مختص مربوط به بانک خود را طراحی می کنند که استفاده کنندگان از آن نرم افزار می توانند از زبان SQL مختص آن نرم افزار برای کوئری گرفتن، طراحی و برنامه نویسی در بانک های اطلاعاتی استفاده کنند.

تاریخچه زبان SQL چیست؟

قبل از اینکه به سراغ پاسخ به سوال SQL  چیست برویم بهتر است که کمی با تاریخچه آن آشنا می شویم. زبان SQL اولین بار در شرکت IBM توسط دوناد چمبرلین و ریموند بویس در اواسط سال 1970 معرفی شد. نام اولین نسخه SEQUEL بود و به همین دلیل امروزه نیز واژه SQL به صورت سیکوئل نیز تلفظ می شود. واژه SEQUEL مخفف Structured English Query Language بود که برای تغییر و کوئری گرفتن از داده های بانک مخصوص IBM طراحی شده بود. بعد ها زبان SEQUEL به SQL تغییر نام داده شد و تبدیل به یک استاندارد برای پیاده سازی زبان بانک های اطلاعاتی رابطه ای شد.

بانک اطلاعاتی SQL چیست؟

پاسخ به پرسش SQL چیست نیازمند آشنایی با یکسری مفاهیم است! همانطور که قبلاً گفتیم کاربرد زبان SQL در بانک های رابطه ای است و ما بوسیله زبان SQL می توانیم اقدام به طراحی، تغییر و کوئری گرفتن از بانک های اطلاعاتی کنیم. اما قبل از اینکه به بررسی کاربردهای زبان SQL بپردازیم توضیح مختصری در مورد بعضی مفاهیم اصلی یک سیستم بانک اطلاعاتی رابطه ای یا RDBMS بدهیم. این مفاهیم در کنار هم تشکیل یک سیستم واحد را می دهند که می توان از آن برای نگه داری و آنالیز و استخراج داده استفاده کرد. بخش های اصلی یک RDBMS به شرح زیر است:

  1. بانک اطلاعاتی یا Database: بانک ها مجموعه ای از اجزای مختلف هستند که امکانات لازم برای نگه داری اطلاعات را در اختیار ما قرار می دهند. برای مثال ما برای هر سیستم می توانیم یک بانک داشته باشیم، مثل بانک اطلاعاتی سیستم مالی یا بانک اطلاعاتی سیستم منابع انسانی.

  2. جدول یا Table: جداول در داخل Database قرار دارند و داده های مختلف را تقسیم بندی می کنند. برای مثال در یک دیتابیس مالی ممکن است که ما نیاز به ذخیره کردن اطلاعاتی مانند سرفصل های حسابداری و اسناد حسابداری داشته باشیم که هر کدام از این اطلاعات می توانند داخل یک جدول ذخیره شوند.

  3. رکورد یا Record: رکوردها به اطلاعات ذخیره شده داخل جدول گفته می شود. برای مثال، در سیستم مالی ما نیاز به ذخیره کردن یک سند مالی داشته باشیم، این سند به صورت یک Record در جدول ذخیره می شود. هر جدول می تواند شامل تعداد زیادی رکورد باشد.

  4. ستون یا Column: هر رکورد در دیتابیس شامل یکسری اطلاعات است، باز هم مثال سند مالی را بررسی می کنیم، یک سند مالی می تواند اطلاعاتی مانند تاریخ، شرح و شما سند داشته باشد، هر یک از این اطلاعات در یک رکورد در قالب یک ستون یا Column ذخیره می شوند.

 برای مطالعه بیشتر و آشنایی بیشتر با در مباحث آموزش دیتابیس و مفاهیم آموزش SQL Server به منبع مقاله در این لینک مراجعه کنید.