دانشگاه ام‌آی‌تی راهی برای برنامه‌نویسی با استفاده از زبان طبیعی پیدا کرد

نوشته آرش زاد 30 تير 1392

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

shutterstock_95646178.jpg

محققان موسسه فناوری ماساچوست به مدت چند هفته اسناد و صفحات واژه‌پردازی سریعی را که افراد می‌توانند در آن‌ها به جای زبان‌های برنامه‌نویسی ویژه از زبان طبیعی استفاده کنند به نمایش گذاشتند. از آنجاییکه که زمان زیادی را در دنیای دیجیتال می‌گذرانیم، تغییر این دنیا برای آسان‌سازی استفاده آن برای همه، هدف بسیاری از استارت‌آپ‌ها مثل IFTTT بوده و یک عنصر ضروری برای پیشرفت بیشتر است.

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

خیلی از افراد برای کاهش هزینه‌های خود برای ساخت استارتاپ از خدمات وب آمازون استفاده می‌کنند. به نظر می‌رسد آن‌ها مزایای زبان‌های برنامه‌نویسی ساده‌تر و چارچوب‌هایی مثل Ruby، PHP و Python را، که با استقبال کاربران رشد کرده و به افراد بیشتری اجازه داده‌اند اپلیکیشن‌هایی بسازند که پیشتر با زبان‌های C و Java در ساختشان مشکل داشتند، دست‌کم گرفته‌اند. یکی از دلایل استقبال کاربران از این زبان‌های برنامه نویسی این است که یادگیریشان راحت‌تر است و هرچه برنامه‌نویس بیشتر داشته باشیم اپلیکیشن‌های بیشتری تولید خواهند شد.

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

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

دیدگاه دوم کمی پیچیده‌تر است. تیم تحقیق، سیستمی ساخته که به صورت خودکار متوجه می‌شود که چگونه اطلاعات ذخیره شده در قالب فرمت‌های مختلفی همچون .pdf، .doc را بر اساس مشخصات آماده شده برای یک مسابقه معروف برنامه‌نویسی، مدیریت کند. این تیم ضرورتا سیستمی ساخت که می‌تواند زبان طبیعی را برای ساخت تجزیه‌کننده‌های ورودی مورد استفاده قرار دهد. تجزیه‌کننده‌های ورودی تعیین می‌کنند که هر کدام از بخش‌های یک فایل شامل چه اطلاعاتی است: بدون یک تجزیه‌کننده ورودی یک فایل تنها یک رشته تصادفی از 0 و 1 است.

با اینکه افراد به این زودی‌ها برنامه‌نویسی با استفاده از زبان طبیعی را شروع نخواهند کرد، پژوهش در MIT و تلاش‌های استارتاپ‌هایی مثل IFTTT‌ برای کمک به حضور افراد بیشتر در دنیای دیجیتالی که روزانه با آن سروکار دارند حیاتی است و این تنها راه توانمندسازی افراد بیشتر برای نوآوری به حساب می‌آید.