نمايش پست تنها
قديمي ۰۲-۶-۱۳۸۷, ۰۹:۴۳ بعد از ظهر   #5 (لینک دائم)
Siavash Male
Administrator
 
آواتار Siavash
 
تاريخ عضويت: ارديبهشت ۱۳۸۷
محل سكونت: تهران
پست ها: 179
تشكرها: 27
439 تشكر در 108 پست
My Mood: Mehrabon
پيش فرض

نقل قول:
نوشته اصلي بوسيله ميثم نمايش پست
سلام سياوش !
يه نيم ساعتي هست دارم با اين بات چت مي كنم ! عملكردش برام خيلي جالبه !
اما دو تا سوال دارم :
1. چه جوري تشخيص مي ده طرف مقابل داره چرت و پرت تايپ مي كنه ؟!
2. همه ي اينا يك سري دستور ها براي عوامل محيطي از پيش تعريف شده اس ! مثلا فرايند شناسايي و دريافت اسم و جنس طرف مقابل يا مثلا بعد 4 بار تكرار كردن يك حرف ديگه جواب نده و و و ... اينا رو چه جوري در قالب هوش مصنوعي طبقه بندي كردي ؟!
دوست عزیز،
در مورد سوال اول: چرت و پرت تایپ کردن یا بهتره بگیم تصادفی تایپ کردن حروف توسط کاربر بر حسب یک سری کارهای آماری در آورده شده. حدود صد بار خودم و دوستام دستمون رو روی کیبورد گذاشتیم و الکی یک سری دکمه زدیم مثل "asdas" یا "dfgdfg"... بعد از روی اون ها یک سری پترن (Pattern) در آوردم که در صورتی که اون پترن ها به روبات داده شدن، روبات حدس بزنه که طرف مقابل منظور خاصی نداشته و فقط بصورت تصادفی دکمه زده.

درباره ی سوال دوم: بستگی داره تعریف ما از هوش مصنوعی چی باشه... هر وقت روبات هر تصمیمی بگیره می تونیم بگیم از یک نوع هوش مصنوعی استفاده کرده. با این تعریف حتی یک if ساده هم یک نوع هوش مصنوعی حساب می شه ولی در سطح بسیار پایین.
من برای ساخت این روبات از AIML الهام گرفتم و کمی اون رو تغییر دادم. می تونید با یک سرچ ساده توی Wikipedia ببینید که ساختار AIML به چه صورت هست. من اول اومدم و یه زبان ساده طراحی کردم و یک پارسر برای اون زبان درست کردم. یک بانک اطلاعاتی داریم که داخل اون بانک از این زبان استفاده شده. به عنوان مثال در بخش جواب می تونیم داشته باشیم:
كد:
<random>Khoobi?<or>Chetori"?</random>
مفهوم این عبارت این هست که بین دو عبارت Chetori? و Khoobi? یکی رو با تصادف جواب بده.
تو این زبان متغیر تعریف شده. که اطلاعاتی که پرسیده می شه داخل متغیر ها ذخیره میشه و در انتهای Session یک سری از اطلاعات داخل بانک اطلاعاتی هم ذخیره میشند.
همینطور شرط تعریف کردم. مثلا به کسی که با اون صمیمی تر هست بعضی اوقات جواب متفاوتی می ده یا به کسی که بی ادب هست نوع دیگه ای جواب میده.
علاوه بر این ها موضوع تعریف شده. مثلا اگر کاربر در اول صحبتش بگه Na هیچ مفهومی برای روبات نداره اما اگر بعد از یک سوال روبات Na گفته بشه مفهوم داره. پس یک کلمه در موضوع های مختلف مفهوم های مختلف داره.
همچنین یک تابع هر چند دقیقه در صورتی که طرف مقابل حرفی نزنه صدا زده میشه و سوال هایی که تعریف شده براش از شخص مقابل می پرسه.
متاسفانه نوشتن کل ساختار این روبات در اینجا مقداری وقت می گیره، اگر در رابطه با بخش خاصی از اون سوال دارید خوشحال می شم بپرسید.
__________________
Siavash آفلاين است   پاسخ با نقل قول
از Siavash تشكر كرده اند:
bahman_akbarzadeh (۰۹-۷-۱۳۸۸), digicom (۰۳-۱۵-۱۳۹۲), fantometkh (۱۲-۹-۱۳۸۷), FarDaDr (۰۸-۴-۱۳۸۹), irdubai (۰۱-۱۸-۱۳۸۹), mr.sina (۰۵-۲۴-۱۳۹۰), roozbeh.rahmani (۱۲-۲۱-۱۳۹۷)