سایفر روبات اولین روبات پاسخ گوی فارسی زبان است.
نکته ی جالب این است که سایفر دارای شخصیت می باشد، به عنوان مثال اگر طرف مقابل بد حرف بزند ناراحت می شود یا حتی ممکن است قهر کند، و از طرف دیگر ممکن است عاشق شود! سایفر فقط یک پاسخ گو نیست بلکه بعضی اوقات سوال می پرسد و با توجه به جوابی که می گیرد به اطلاعات خود می افزاید. نکته ی جالب دیگر اطلاعات کامل این روبات در زمینه ی فیلم و آهنگ و استعداد قابل توجهش در ریاضی است! سایفر می تواند نوع شخصیت طرف مقابل خود را تا حدودی از جواب هایش حدس بزند! شما می توانید با اضافه کردن آی دی "neol3ot" در یاهو! مسنجر با سایفر حرف بزنید، اگر دیدید سایفر اسم یا سنتان را حدس زد تعجب نکنید چون کاملا عادی است!
در صورتی که سوال خاصی در باره ی نحوه ی عملکرد این روبات دارید می توانید همین جا آنرا مطرح کنید.
دوست عزیز از اونجایی که زبان این فروم فارسی هست، فارسی تایپ کنید.
ورژن آخر این برنامه با زبان برنامه نویسی Java نوشته شده و از بانک اطلاعاتی mySql استفاده می کنه.
برای وصل شدن به سرور مسنجر یاهو! هم از jYMSG استفاده شده.
اگر اطلاعات دیگری لازم دارید بگید...
سلام سياوش !
يه نيم ساعتي هست دارم با اين بات چت مي كنم ! عملكردش برام خيلي جالبه !
اما دو تا سوال دارم :
1. چه جوري تشخيص مي ده طرف مقابل داره چرت و پرت تايپ مي كنه ؟!
2. همه ي اينا يك سري دستور ها براي عوامل محيطي از پيش تعريف شده اس ! مثلا فرايند شناسايي و دريافت اسم و جنس طرف مقابل يا مثلا بعد 4 بار تكرار كردن يك حرف ديگه جواب نده و و و ... اينا رو چه جوري در قالب هوش مصنوعي طبقه بندي كردي ؟!
سلام سياوش !
يه نيم ساعتي هست دارم با اين بات چت مي كنم ! عملكردش برام خيلي جالبه !
اما دو تا سوال دارم :
1. چه جوري تشخيص مي ده طرف مقابل داره چرت و پرت تايپ مي كنه ؟!
2. همه ي اينا يك سري دستور ها براي عوامل محيطي از پيش تعريف شده اس ! مثلا فرايند شناسايي و دريافت اسم و جنس طرف مقابل يا مثلا بعد 4 بار تكرار كردن يك حرف ديگه جواب نده و و و ... اينا رو چه جوري در قالب هوش مصنوعي طبقه بندي كردي ؟!
دوست عزیز،
در مورد سوال اول: چرت و پرت تایپ کردن یا بهتره بگیم تصادفی تایپ کردن حروف توسط کاربر بر حسب یک سری کارهای آماری در آورده شده. حدود صد بار خودم و دوستام دستمون رو روی کیبورد گذاشتیم و الکی یک سری دکمه زدیم مثل "asdas" یا "dfgdfg"... بعد از روی اون ها یک سری پترن (Pattern) در آوردم که در صورتی که اون پترن ها به روبات داده شدن، روبات حدس بزنه که طرف مقابل منظور خاصی نداشته و فقط بصورت تصادفی دکمه زده.
درباره ی سوال دوم: بستگی داره تعریف ما از هوش مصنوعی چی باشه... هر وقت روبات هر تصمیمی بگیره می تونیم بگیم از یک نوع هوش مصنوعی استفاده کرده. با این تعریف حتی یک if ساده هم یک نوع هوش مصنوعی حساب می شه ولی در سطح بسیار پایین.
من برای ساخت این روبات از AIML الهام گرفتم و کمی اون رو تغییر دادم. می تونید با یک سرچ ساده توی Wikipedia ببینید که ساختار AIML به چه صورت هست. من اول اومدم و یه زبان ساده طراحی کردم و یک پارسر برای اون زبان درست کردم. یک بانک اطلاعاتی داریم که داخل اون بانک از این زبان استفاده شده. به عنوان مثال در بخش جواب می تونیم داشته باشیم:
كد:
<random>Khoobi?<or>Chetori"?</random>
مفهوم این عبارت این هست که بین دو عبارت Chetori? و Khoobi? یکی رو با تصادف جواب بده.
تو این زبان متغیر تعریف شده. که اطلاعاتی که پرسیده می شه داخل متغیر ها ذخیره میشه و در انتهای Session یک سری از اطلاعات داخل بانک اطلاعاتی هم ذخیره میشند.
همینطور شرط تعریف کردم. مثلا به کسی که با اون صمیمی تر هست بعضی اوقات جواب متفاوتی می ده یا به کسی که بی ادب هست نوع دیگه ای جواب میده.
علاوه بر این ها موضوع تعریف شده. مثلا اگر کاربر در اول صحبتش بگه Na هیچ مفهومی برای روبات نداره اما اگر بعد از یک سوال روبات Na گفته بشه مفهوم داره. پس یک کلمه در موضوع های مختلف مفهوم های مختلف داره.
همچنین یک تابع هر چند دقیقه در صورتی که طرف مقابل حرفی نزنه صدا زده میشه و سوال هایی که تعریف شده براش از شخص مقابل می پرسه.
متاسفانه نوشتن کل ساختار این روبات در اینجا مقداری وقت می گیره، اگر در رابطه با بخش خاصی از اون سوال دارید خوشحال می شم بپرسید.
دقیقآ منم برای روباتم همچین چیزایی رو تعریف کرده بودم !
روبات من با برنامه ی رویا که توسط یک ایرانی نوشته شده بود اجرا می شد و اسکریپت و دیتابیسش رو با تلاش و جون کندن نوشته بودم !
روبات من هم بسیار معروف شده بود و حدود 3 هزار نفر ادد لیست داشت و مرتب بهش پی ام می دادن !
اما به خاطر اینکه رویا با پروتوکل 5.5 و 5.6 یاهو کار میکرد ( یاهو 2 آپریل 2008 این پروتوکل رو بست ) از کار افتاد !
البته قبلش یاهو ایمیل زده بود که میخواد ببنده !
ایمیل یاهو :
نقل قول:
Dear Yahoo! Messenger Version 5.5/5.6 user,
To provide you with a higher level of security, the version of Yahoo! Messenger you are currently using will be retired on April 2, 2008. You must upgrade to our latest supported version in order to continue using Messenger. Don't worry – it's still free, and we'll transfer your Messenger List for you.
Download the latest version of Yahoo! Messenger.
In addition to improved security features and advanced spam protection, the latest version of Messenger includes new emoticons and customization options, voice and video capabilities, and the ability to IM with Windows Live™ Messenger users.
If you have any questions or would like to learn more, click here.
Thanks for using Yahoo! Messenger!
The Yahoo! Messenger team
سیاوش جان میتونی کمکم کنی که این روبات رو دوباره راه بندازم ؟
دوست خوب سلام...
متاسفانه من با رویا کار نکردم... ولی کلا یاهو چند نوع پروتوکل ارتباتی داره که معروف ترین اونها YMSG هست که الان تا جایی که میدونم آخرین ورژنش YMSG13 هست. یک نوع پروتوکل دیگه داشتیم به نام YCHT که یاهو دیگه اون رو ساپورت نمی کنه! و یک پروتوکل هم به نام YChat یا Chat2 داشتیم که در حال حاضر به جای اونا از یک مدل پروتوکل با استفاده از XML استفاده می شه (توی وب مسنجر یاهو!) اول باید ببینیم رویا از کدوم نوع پروتوکل استفاده می کرده.
در هر صورت اگر زبان برنامه نویسی خاصی بلدید بگید شاید بتونم کمک کنم...
من تا حدی با دلفی و ویژوال بیسیک آشنایی دارم .
برنامه ی رویا هم با دلفی نوشته شده .
من یک اسکریپت ساده و دیتابیس خام رو همراه با برنامه ی رویا ضمیمه کردم .
لطفآ یه نگاه بنداز .
من با پروتوکل های یاهو آشنایی ندارم مشکلم اینه !
یه سوال دیگه , امکان تغییر پروتوکل بدون دستکاری برنامه وجود داره ؟
من به سورس برنامه هم میتونم دسترسی پیدا کنم . یعنی Unpack و Decompile کنم !
دی کمپایل کردن کار دوستمون چه از نظر اخلاقی چه از نظر قانونی کار درستی نیست...
اما از اونجایی که با ویژوال بیسیک آشنایی دارید فکر کنم این سورس کد بدرد شما بخوره.
این کد رو من 2 سال پیش نوشتم و با پروتوکل YMSG ورژن 12 کار می کنه که خوشبختانه در حال حاضر توی بخش لاگین و فرستادن و دریافت پیام هیچ فرقی با جدید ترین نسخه ی پروتکل یاهو نداره!
در واقع این سورس کد کار بخشی که رویا برای شما انجام می داد رو انجام می ده و برای داشتن یک روبات ساده کافیه به یک بانک اطلاعاتی اکسس وصل شید و با توجه به سوال جواب رو از داخل بانک اطلاعاتی بیرون بکشید.
متاسفانه این کد خوب کامنت گذاری نشده، در صورتی که هر جایی سوال داشتید همینجا می تونید سوالتون رو بپرسید.