سیستم پاسخ به سؤال (question answering) چیست؟

در این مقاله به جنبه های مختلف یک سیستم پاسخگویی به سؤال و کاربردهای آن می پردازیم و می بینیم که امکانات، بی پایان است.
يکشنبه، 7 فروردين 1401
تخمین زمان مطالعه:
موارد بیشتر برای شما
سیستم پاسخ به سؤال (question answering) چیست؟
تصویر: از یک روبات سؤال بپرسید و از محتوای پایگاه دانش پاسخ بگیرید

پاسخ به سؤال، پردازش زبان طبیعی Natural Language Processing (NLP) مبتنی بر ابر را ارائه می دهد که به شما امکان می دهد یک لایه مکالمه طبیعی روی داده های خود ایجاد کنید. برای یافتن مناسب ترین پاسخ برای هر ورودی از اطلاعات پایگاه دانش knowledge base (KB) سفارشی شما استفاده می شود.
 
از پاسخ به سؤال معمولاً برای ساخت برنامه های کلاینت مکالمه ای استفاده می شود که شامل برنامه های رسانه های اجتماعی، روبات های چت و برنامه های دسکتاپ با قابلیت گفتار است. چندین ویژگی جدید اضافه شده است، از جمله ارتباط افزایش یافته با استفاده از رتبهبندی یادگیری عمیق، پاسخهای دقیق، و پشتیبانی منطقه‌ای نقطه به نقطه.
 
این اسناد شامل انواع مقاله زیر است:
 
* شروع سریع دستورالعمل های گام به گام است که به شما امکان می دهد با سرویس تماس بگیرید و در مدت زمان کوتاهی نتیجه بگیرید.
* راهنماهای نحوه انجام دستورالعملهایی برای استفاده از سرویس به روشهای خاص یا سفارشیشدهتر است.
* مقالات مفهومی توضیحات عمیقی در مورد عملکرد و ویژگی های این سرویس ارائه می دهند.
* آموزشها راهنماهای طولانیتری هستند که به شما نشان میدهند چگونه از خدمات به عنوان مؤلفه‌ای در راهحلهای تجاری گستردهتر استفاده کنید.
 

چه زمانی از پاسخ به سؤال استفاده کنیم

وقتی اطلاعات ایستا دارید - وقتی اطلاعات ثابتی در پایگاه دانش پاسخ های خود دارید از پاسخ به سؤال استفاده کنید. این پایگاه دانش برای نیازهای شما که با اسنادی مانند PDF و URL ساخته اید سفارشی است.
هنگامی که می خواهید به یک درخواست، سؤال یا دستور پاسخ یکسانی بدهید - وقتی کاربران مختلف سؤال مشابهی را ارسال می کنند - همان پاسخ برگردانده می شود.
هنگامی که می خواهید اطلاعات استاتیک را بر اساس متا اطلاعات فیلتر کنید - برچسب های ابرداده را اضافه کنید تا گزینه های فیلتر اضافی مربوط به کاربران برنامه مشتری و اطلاعات را ارائه دهید. اطلاعات متاداده متداول شامل گپ زنی و صحبت کوتاه، نوع یا قالب محتوا، هدف محتوا و تازگی محتوا است.
هنگامی که می خواهید یک مکالمه روباتی را مدیریت کنید که شامل اطلاعات ثابت است - پایگاه دانش شما متن مکالمه یا دستور کاربر را می گیرد و به آن پاسخ می دهد. اگر پاسخ بخشی از یک جریان مکالمه از پیش تعیین شده است که در پایگاه دانش شما با زمینه چند چرخشی نشان داده شده است، روبات به راحتی می تواند این جریان را ارائه دهد.
 

پایگاه دانش چیست؟

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

یک روبات چت به صورت برنامه نویسی ایجاد کنید

هنگامی که یک پایگاه دانش پاسخگویی به سؤال منتشر شد، یک برنامه مشتری سؤالی را به نقطه پایانی پایگاه دانش شما ارسال می کند و نتایج را به عنوان پاسخ JSON دریافت می کند. یک برنامه کاربردی مشتری رایج برای پاسخگویی به سؤال، روبات چت است.
 
مرحله     اقدام
1          برنامه سرویس گیرنده سؤال کاربر (متن به زبان خودش) را به نقطه پایانی پایگاه دانش شما ارسال می کند، "چگونه پایگاه دانش خود را به صورت برنامه نویسی به روز کنم؟"
2          پاسخ به سؤال، از پایگاه دانش آموزش دیده برای ارائه پاسخ صحیح و هرگونه درخواست بعدی که می تواند برای اصلاح جستجو برای بهترین پاسخ استفاده شود، استفاده می کند. پاسخ به سؤال پاسخی با قالب JSON برمیگرداند.
3          برنامه مشتری از پاسخ JSON برای تصمیم گیری درباره نحوه ادامه مکالمه استفاده می کند. این تصمیمات می تواند شامل نشان دادن پاسخ برتر و ارائه گزینه های بیشتر برای اصلاح جستجو برای بهترین پاسخ باشد.
           

ساخت روبات های چت کم کد

پورتال استودیوی زبان تجربه کامل نویسندگی پروژه/پایه دانش را فراهم می کند. شما می توانید اسناد را به شکل فعلی به پایگاه دانش خود وارد کنید. این اسناد (مانند سؤالات متداول، کتابچه راهنمای محصول، صفحه گسترده یا صفحه وب) به جفت پرسش و پاسخ تبدیل می شوند. هر جفت برای اعلان های بعدی تجزیه و تحلیل می شود و به جفت های دیگر متصل می شود. فرمت علامت گذاری نهایی از ارائه غنی، از جمله، از تصاویر و پیوندها پشتیبانی می کند.
 
هنگامی که پایگاه دانش شما ویرایش شد، پایگاه دانش را بدون نوشتن هیچ کدی در یک روبات کاربردی Azure Web App منتشر کنید. روبات خود را در پورتال Azure تست کنید یا آن را دانلود کنید و توسعه را ادامه دهید.
 

پاسخ های با کیفیت بالا با رتبه بندی لایه‌ای

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

مکالمات چند نوبتی

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

چرخه عمر توسعه

پاسخ به سؤال، تألیف، آموزش، و انتشار را همراه با مجوزهای همکاری برای ادغام در چرخه عمر کامل توسعه فراهم می کند.
 
سیستم پاسخ به سؤال (question answering) چیست؟

تصویر: تصویر مفهومی چرخه توسعه
 

یک شروع سریع را کامل کنید

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

باز هم در مورد سیستم های پاسخگویی به سؤالات

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

هدف سیستم های پاسخگویی به سؤال

سیستمهای پاسخگوی سؤال به چه چیزی میخواهند دست یابند؟ با توجه به یک سؤال، آیا سیستم باید نزدیکترین پاسخ را بدهد؟ اگر پاسخ مخلوطی از چندین پاسخ باشد که در مورد آنها آموزش داده شده است چه؟ ما در تلاش هستیم تا سیستمهای هوشمندی بسازیم که نه فقط اسناد مربوط به سؤال را برمیگردانند، بلکه اطلاعات مربوطه را در اسناد استخراج میکنند و پاسخ دقیق را ارائه میکنند، مانند آنچه که یک انسان میتوانست به آن برسد. این وظیفه تحت زمینه های بازیابی اطلاعات (Information Retrieval (IR))، استخراج اطلاعات (Information Extraction (IE)) و پردازش زبان طبیعی (Natural Language Processing (NLP)) قرار می گیرد.
 
گوگل یک موتور جستجو است. اما، برخی از سؤالات به طور خودکار در هنگام جستجو ایجاد می شوند. این به دلیل نمودارهای دانشی است که گوگل برای نشان دادن حجم وسیعی از داده ها استفاده می کند.
 
 سیستم پاسخ به سؤال (question answering) چیست؟

 تصویر: google python_example
 

ساختار سیستم پاسخگویی به سؤالات

طراحی سیستم پاسخگویی به سؤال دارای اجزای حیاتی خاصی است. از سه ماژول مجزا در یک سیستم پرسش و پاسخ استفاده می شود:
 
* ماژول پردازش پرس و جو: سؤالات را بر اساس زمینه طبقه بندی می کند. این ماژول زمینه و تمرکز را شناسایی می کند، نوع سؤال را طبقه بندی می کند و انتظارات نوع پاسخ را تعیین می کند.
* ماژول پردازش اسناد: ماژول بازیابی اطلاعات که بر گردآوری اسناد مربوطه تمرکز دارد.
* ماژول پردازش پاسخ: پس از بازیابی مدارک مربوطه، باید تجزیه و تحلیل شوند تا پاسخی دقیق و مناسب به دست آید.
 
هر یک از این ماژول ها وظایف متفاوتی را برای دادن پاسخ های مرتبط انجام می دهند. تصویر زیر به طور خلاصه کل معماری را نشان می دهد.
 
سیستم پاسخ به سؤال (question answering) چیست؟ 
تصویر: معماری سیستم پاسخگویی به سؤال
 

ماژول پردازش پرس و جو

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

ماژول پردازش اسناد

ماژول پردازش سند، سؤال فرموله شده را به عنوان ورودی خود می پذیرد. ماژول پردازش اسناد از یک سیستم بازیابی اطلاعات (information retrieval (IR)) داخلی برای ترسیم نزدیکترین اسناد به سؤال ارائه شده استفاده می کند. اسناد بر اساس شباهت و ارتباط آنها با سؤال مرتب شده است. ماژول پردازش سند سه وظیفه اصلی را انجام می دهد:
 
* مجموعه اسناد را از سیستم IR بازیابی می کند.
* مجموعه اسناد به دست آمده از مرحله قبل را فیلتر می کند و مقدار متن را در هر سند کاهش می دهد تا یک پاسخ مختصر ایجاد شود.
* اسناد را بر اساس شباهت و ارتباط با سؤال مرتب می کند.
 

ماژول پردازش پاسخ

ماژول نهایی لیستی از اسناد مختصر را دریافت می کند که توسط ماژول قبلی فیلتر شده و مرتب شده اند. ماژول پردازش پاسخ مجموعه ای از اسناد را در نظر می گیرد و سه وظیفه اصلی را انجام می دهد:
 
1-  بیانیه ها/پاسخ ها را در مجموعه ای مختصر از اسناد شناسایی می کند.
 
2- با انتخاب عبارات و کلمات مناسب پاسخگوی سؤال، پاسخ مربوطه را استخراج می کند. این قبلاً به صورت اکتشافی انجام می شد. الگوریتم های ابتکاری راهی برای حل مسائل هستند که در آن به بهترین شکل ممکن به حل آن اهمیت داده می شود. پارامترهایی مانند هزینه، پیچیدگی از نظر مکان و زمان، دقت یا سرعت نادیده گرفته شده و در عوض بر دستیابی به راه حلی نزدیک به پاسخ واقعی تاکید می شود.
 
الگوریتمهای ابتکاری معمولاً برای حل مسائل NP-complete استفاده میشوند، جایی که هیچ راه کارآمد شناخته شدهای برای یافتن راهحل وجود ندارد. با این حال، با وارد کردن پارامترها به الگوریتم، می توان تأیید کرد که پاسخ مشخص است. بنابراین، توسعه الگوریتم های اکتشافی شامل رفت و برگشت بین راه حل تولید شده و خود الگوریتم است.
 
گفته می شود که الگوریتم زمانی خوب عمل می کند که راه حل الگوریتم با توجه به محدودیت ها تا حد امکان کارآمد باشد.
 
3- اعتبارسنجی پاسخ های به دست آمده در مرحله قبل. این معمولاً در طول طراحی چنین سیستم های پاسخگویی به سؤال برای ارزیابی خروجی های به دست آمده استفاده می شود. در طول استقرار، معیارهای ارزیابی برای دستیابی به توان عملیاتی بالای داده از سیستم کاهش می یابد.
 

ارزیابی پاسخ های به دست آمده

معیارها می تواند از کاغذی به کاغذ دیگر متفاوت باشد. اما بهطور کلیتر، ما میخواهیم که سیستم پاسخدهی به سؤال، پاسخهای مرتبط، صحیح و کاملی را به موضوع ارائه دهد. از این رو معیارهای ارزیابی بسیاری برای اندازه گیری چنین اصطلاحات مبهمی توسعه داده شد. تعدادی از این معیارها عبارتند از امتیازات F1، دقت، یادآوری، و غیره.
 

برنامه های کاربردی

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

جهت تحقیق

ساخت چنین سیستم های توزیع شده‌ای کار بسیار دشواری است. ماشین های پرسش و پاسخ بلادرنگ به دلیل مقیاسی که در آن کار می کنند چالش برانگیز هستند. پایگاه داده های امروزی در پتابایت هستند و دسترسی سریع به اطلاعات یک چالش بزرگ است.
 
راه حل های زیادی برای ذخیره سازی و محاسبات کارآمد وجود دارد. اما، اطمینان از کارکرد صحیح الگوریتمها با چنین راهحلهایی یک چالش مهم است. یکی از این نمونه ها Haystack است. آنها سیستمهای پاسخدهی به پرسشهای عصبی را گرد هم آوردهاند و آن را با سیستمهای فایل توزیعشده مانند Hadoop، Elasticsearch و غیره سازگار کردهاند. به این ترتیب، ما مزیت قدرتمندترین مدلهای زبانی که پاسخها را تولید میکنند و قدرت سیستمهای بازیابی سریع اطلاعات را در اختیار داریم.
 
منبع: لالیتناران سی، microsoft


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