به چه روش های می توان تشخیص داد املای یک کلمه به انگلیسی صحیح است یا خیر ( منظور کلمه که توسط کاربر در برنامه وارد شده است )
به چه روش های می توان تشخیص داد املای یک کلمه به انگلیسی صحیح است یا خیر ( منظور کلمه که توسط کاربر در برنامه وارد شده است )
سلام
شاید بشه کلمات صحیح رو در داخل یک دیتا بیس یا هر چیزی شبیه به این نگه داشت و بعد از تایپ کردن کلمه فاصله، کلمه ای که به اتمام رسیده است را با کلمه های موجود(صحیح) مقایسه کنیم و بعد در صورتی که وجود نداشت برنامه اعلام خطا کند
دوست عزیز مگه تعداد کلمه های یک زبان محدود هست که برزیم تو دیتا بیس ؟
حالا گیریم که ریختیم تو یه دیتا بیس برای هر کلمه اگر قرار باشه به بانک با اون حجم رجوع کنیم برای یه جمله معمولی برنامه منفجر میشه
فکر نمیکنم شدنی باشه با این حال اگر راه حلی داشته باشه باید در حوزه هوش مصنوعی دنبالش بگردید با برنامه نویسی عادی این کار شدنی نیست . . .
موفف باشید
سلام
بله دوست عزیز محدود هستند.چون ما دنبال تعدادی (هر چند زیاد) کلمه معنادار می گردیم دوست عزیز من فکر نمی کنم حجم بالایی رو طلب کنه می دونی مثل چیه؟مثل دتابیسی است که برای برنامه های دیکشنری استفاده می کنند - یک دتا بیس تقریبا کامل دارم البته با اکسس حجمش 10 مگابایته می بینید که آنچنان هم زیاد نیست- پس می شه از روش همون دوستمون استفاده کنیم و برای دتا بیس هم از دتابیس دیکشنری های (انگلیسی به زبان دیگر) که تو اینترنت پره استفاده کنید.البته این یک روشه همیشه راه بهتری هم هست.ببین همین قسمتی که ما داریم ازش تو همین سایت استفاده می کنیم(بخش ایجاد تاپیک - پاسخ - پ خ و...) نیز دارای این تکنولوژی هستند می تونید امتحان کنید یک کلمه انگلیسی بنویسید اگر اشتباه نوشته باشید زیرش یک خط قرمز می کشه (مثل مایکروسافت آفیس)دوست عزیز مگه تعداد کلمه های یک زبان محدود هست که برزیم تو دیتا بیس
موفق باشید
agha in omran ba barname nevisi nashe
بهترین روش (تا این لحظه و بر اساس اطلاعاتم ) همون طور که دوستان گفتن استفاده از یک پایگاه داده است
دوستان کسی می دونه همچین دیتا بیسی رو از کجا میشود گیر آورد
دوست عزیز یه دیتابیس برای تشخیص املای کلمه رو نباید با دیتابیس دیکشنری مقایسه کرد یک تفاوت بزرگ اینه که معمولا اسامی تو دیتا بیس دیکشنری نیستن پس مثلا وقتی طرف بنویسه John یا این لغت تو دیتابیس نیست یا مجبورید تمام اسامی خاص رو هم برزید تو دیتا بیس (تازه اگر چیزی رو از قلم نندازید)
تفاوت مهم دیگه اینکه مثلا هر فعل تو زبان انگلیسی چندین حالت داره یه جای ed میگیریه یه جا ing میگیره حالت های خاص زیادی هست آیا تمام این حالت ها باید در املا لحاظ بشه یا نه ؟؟
مسلما باید لحاظ بشه کافیه همین دو مورد (اسامی خاص و حالت های مخالف افعال و سایر کلمات) رو به دیتا بیستون اضافه کنید تا ببینید نه تعداد کلمات یک زبان محدوده و نه حجم دیتا بیستون نزدیک 10 مگ خواهد بود شاید بشه در مورد دیکشنری محدود و خلاصش کرد ولی املا کاملا بحثش متفاوته .
موفق باشید
سلام به همه دوستان گرامی
دوست عزیز من هم کاملا با نظر آقای سعید معصومی موافقم!! برایه اینکار همون طور که خودتون گفتید که زبان محدود نیست بنابراین استفاده از روشهای هوش مصنوعی تقریبا غیر ممکنه!! (مگر اینکه به برنامه مغز آدم وصل کنید که باز بعضی از کلمات رو خود آدمها هم نشنیدن و کلمات جدیدی هستند!)
پس بنابراین چاره ای نیست و بهترین راه استفاده از یه دیتابیس است که در این مورد کار دوستمون آقا رضا رو راه میندازه!! ولی چطوری میتونه اینکارو کنه!!؟ مثل برنامه های آفیس بیاد یه دیتابیس بذاره و اگه کاربر کلمه ای معنادار رو وارد کرد و در این بانک نبود می تونه یه امکان بزاره که خود کاربر کلمات معنادار جدید رو به بانک اضافه کنه!!(بازم مثل آفیس)
خوب دوست عزیز همون طور که آقای سعید معصومي فرمودند می تونید این بانکها رو با یه سرچ از تو اینترنت به راحتی پیدا کنید!!
به نظر من اگه می خواهید که یه بانک خوب و قوی داشته باشید حتما از Sql استفاده کنید و فیلد مربوط به کلمات رو حتما کلید کنید تا سرعت جستجوتون زیاد بشه!!
موفق باشید
دوست عزیز
می تونید از Componentهای بسیار خوب موجو استفاده کنید. مثل http://www.telerik.com/products/aspnet-ajax/spell.aspx
سلامدوست عزیز یه دیتابیس برای تشخیص املای کلمه رو نباید با دیتابیس دیکشنری مقایسه کرد یک تفاوت بزرگ اینه که معمولا اسامی تو دیتا بیس دیکشنری نیستن پس مثلا وقتی طرف بنویسه John یا این لغت تو دیتابیس نیست یا مجبورید تمام اسامی خاص رو هم برزید تو دیتا بیس (تازه اگر چیزی رو از قلم نندازید)
تفاوت مهم دیگه اینکه مثلا هر فعل تو زبان انگلیسی چندین حالت داره یه جای ed میگیریه یه جا ing میگیره حالت های خاص زیادی هست آیا تمام این حالت ها باید در املا لحاظ بشه یا نه ؟؟
مسلما باید لحاظ بشه کافیه همین دو مورد (اسامی خاص و حالت های مخالف افعال و سایر کلمات) رو به دیتا بیستون اضافه کنید تا ببینید نه تعداد کلمات یک زبان محدوده و نه حجم دیتا بیستون نزدیک 10 مگ خواهد بود شاید بشه در مورد دیکشنری محدود و خلاصش کرد ولی املا کاملا بحثش متفاوته .
آره من به این نکات توجه نکرده بودم الان تو خود پاسخ به سوالات تست کردم دیدم حرف شما کاملا درسته والا نمی دونم چجوری این کارو میشه بدون کامپوننت انجام دهیم.
شاید با یک دتا بیس در حد دتا بیس آفیس
موفق باشین
دوست عزیز میشه بگی چطوری این راه به ذهنتون رسید؟؟؟؟یک مثلا بگین فک کنم خودتون متوجه شین مشکل کارتون چیه.به نظر من استفاده از regular expersion بهترین راه هست
به عبارت های منظم نمیشه
را جع به اون هم فکر کردن اول اینکه کارش تولید رشته های یک زبانه نه اینکه تشخیص بده یک رشته متعلق به یک زبان هست یا نه
واسه این کار باید یک پارسر یا آتاماتا طراحی شه که فکر نکنم عملی شه چون نمیشه برای ساخت تمام کلمات انگلیسی یک گرامر منظم تعریف کرد
دوم هم همون جور که کفتم محاله بشه برای این مورد یک گرامر تعریف کرد
باز هم خیلی خیلی ممنون از نظری که دادین دوست من و من رو کمک کردین
من تونستم یه راه برای این صورت مسئله پیدا کنم Source براتون اینجا upload میکنم امیدوارم براتون مفید باشه