سلام
خب كامپيوتر از كجا بايد بفهمه منظور كاربر واقعا khobi بوده يا khoobi ؟
سلام
خب كامپيوتر از كجا بايد بفهمه منظور كاربر واقعا khobi بوده يا khoobi ؟
اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com
اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com
vbhamed جون من یه برنامه داشتم ربات یاهو بود . این قادر بود باهات صحبت کنه یعنی چرت و پرت رو از هم تشخیص میداد و میدونست که منظور از khoobi چیه
حالا حتما میگی چطور ؟
اومده بود یه دستور <subject> گذاشته بود
وقتی ربات از تو سوال میپرسید تو میتونستی چندین جواب واسش در نظر بگیری اگه جوابی که کاربر داد جزء جواب های از قبل تعیین شده باشه ربات دوباره جوابتو میداد اما اگه تو اون جوابا نبود ربات پیدا نمیکرد تشخیص میداد که تو یه چیزی که مرتبت با او موضوع نیستو جواب دادی
مثلا ربات میپرسه خوبی؟
تو میای واسه جوابش اینهارو تاین میکنی؟
مرسی = خدارو شکر
تو بهتری = نه بابا
نه = چیزی شده؟
بتوچه = اینم حرفیه
حالا ربات از کاربر میپرسه خوبی؟ تو جوابت یکی از ایناست مثلا میگی , مرسی ربات میگه خدارو شکر
حالا یه جوابم واسش تاین میکنی که اگه غیر از این چنتا بود یه چیزه دیگه بگه
مثلا در جوابش بگی : داره بارو میاد
ربات میگه : من حالتو پرسیدم تو میگی داره بارون میاد
یه چیزی تو این مایه ها میشه که برنامه کلماتو تشخیس میده
سلام
ولي شما باز هم متوجه منظور من نشدين
من اصلا كاري به اين ندارم كه شما مي خواين چه استفاده اي كنيد، من خودم هم برنامه كلنجار رو ديدم كه تايپ مي كني جواب مي ده
منظور من چيزي ديگه هست، فرض كنيد كاربر از كامپيوتر سؤال مي كنه :
كرم كجاست ؟
خب حالا كامپيوتر از كجا بفهمه منظور كاربر اينه كه كِرِم (ماده آرايشي) كجاست يا اينكه كَرَم (شخصي به نام كَرَم) كجاست يا فلز كُرُم كجاست يا اينكه معني اينه كه من ناشنوا هستم (كر هستم)
شما گفتي اگر حروف تكراري حذف بشن مثلا khoooooooobi بشه khobi اونموقع كاربر اگر منظور واقعيش كلمه khoobi باشه به مشكل مي خوريد
ولي مسئله اينه كه كامپيوتر كه نمي تونه بفهمه منظور واقعي كاربر چي بوده كه حالا يه طوري بعضي جاها كلمه به khoobi تبديل بشه و بعضي جاها به khobi
در حقيقت كاربر بايد با يك قانوني اين رو به كامپيوتر بفهمونه
مثلا كلمه دور و در (مرواريد) رو در نظر بگيريد، هر دوشون مي تونن اشتباها نوشته بشن doooooor
كامپيوتر بايد اين رو يا به dor تبديل كنه يا door
بهتره در اينجا به عنوان راهنما به كاربر بگيد اگر منظورش دور هست تايپ كنه dur يعني از u استفاده كنه ولي اگر مرواريد منظورشه تايپ كنه dor يعني از O استفاده بشه حالا چه اشتباها duuuuuuur و چه اشتباها doooooor نوشته بشه ديگه ميشه راحت درستش كرد
اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com
با سلام.
از اونجایی که معلومه تو میخوای یه دیتا بیس داشته باشی که یه سری کلید و یه سری مقدار داشته باشی.
مثلا میخوای یه کلید با مقدار مثلا Khobi داشته باشی و چند مقدار برای این کلید. مثلا مرسی، ممنون، تو چطوری و...
تا اینجا درست؟
خوب الان مشکل تو اینجاست که مثلا کاربر Khobi رو به صورت Khooooooooooobbbbbbbbbbbiiiiii ویا به شکل های دیگه وارد میکنه. ولی شامل کاراکترهای (به ترتیب) k وبعد h و یعد O وبعد b و بعد i.
درست؟
تو میخوای این رو تبدیل به Khobi یا همون کلیدت کنی.
اگه تا اینجا درست متوجه شده باشم پس راه حل تو برای این کار اینه که با عبارات منظم کار کنی. برای این کار هم باید برای تمامی کلیدهای خودت یه دیاگرام بکشی(درس نظریه زبانها و ماشین)
اما خوب خودت هم به خوبی میدونی که کار زمانبریه. برای اینکه تو زمانت صرفه جویی بشه میتونی عبارات منظم رو تو یه فایل متنی بنویسی بعد بدی به ابزار Lex تا کد رو تولید کنه.
اینجا من یه مثال برات میزارم. یه فایل cpp که حتما باید با کامپایلر Bcc32.exe کامپایل کنی. این فایل رو ابزار lex تولید کرده. از روی عبارات منظم فایل RE.L. فایل EXE هم میزارم که اگه کامپایلر Bcc32..exe رو نداشتی از اون استفاده کنی.
تو این برنامه بعد از اجرا اگه کلمه Khobi رو به هر شکلی که به نظرت میاد تایپ کنی اون رو به Khobi تبدیل میکنه.(فقط یادت باشه که ترتیب قرار گرفتن کاراکترهای KHOBI مهمه.) یعنی این برنامه برای hkobi جواب نمیده.
خوب این فقط برای کلمه khobi بود اما اگه میخوای کلمات دیگه ای هم بهش اضافه کنی عبارت منظمشو بنویس تو فایل RE.l و بعد بده به ابزار lex تا برات کد تولید کنه.
در ضمن اگه من کد cpp تولید کردم وگذاشتم اینجا فقط به خاطر این بود که الان فقط این ورژن از ابزار Lex در اختارم بود ولی تو میتونی ورژنهای دیگه ای از این ابزار پیداکنی که عبارات منظم تو رو به فایل C# ویا جاوا و یا هر زبان دلخواه دیگر تبدیل کنه.
اگه در مورد سینتکس فایل re.l هم به مشکلی برخورد کردی بگو تا اگه سوادم قد داد جواب بدم.