PDA

View Full Version : تشخیص صحت املای کلمات



reza_Nazem
چهارشنبه 07 بهمن 1388, 19:11 عصر
به چه روش های می توان تشخیص داد املای یک کلمه به انگلیسی صحیح است یا خیر ( منظور کلمه که توسط کاربر در برنامه وارد شده است )

ali.rezaei7
چهارشنبه 07 بهمن 1388, 20:10 عصر
سلام
شاید بشه کلمات صحیح رو در داخل یک دیتا بیس یا هر چیزی شبیه به این نگه داشت و بعد از تایپ کردن کلمه فاصله، کلمه ای که به اتمام رسیده است را با کلمه های موجود(صحیح) مقایسه کنیم و بعد در صورتی که وجود نداشت برنامه اعلام خطا کند

CYCLOPS
چهارشنبه 07 بهمن 1388, 20:42 عصر
سلام
شاید بشه کلمات صحیح رو در داخل یک دیتا بیس یا هر چیزی شبیه به این نگه داشت و بعد از تایپ کردن کلمه فاصله، کلمه ای که به اتمام رسیده است را با کلمه های موجود(صحیح) مقایسه کنیم و بعد در صورتی که وجود نداشت برنامه اعلام خطا کند

دوست عزیز مگه تعداد کلمه های یک زبان محدود هست که برزیم تو دیتا بیس ؟
حالا گیریم که ریختیم تو یه دیتا بیس برای هر کلمه اگر قرار باشه به بانک با اون حجم رجوع کنیم برای یه جمله معمولی برنامه منفجر میشه

فکر نمیکنم شدنی باشه با این حال اگر راه حلی داشته باشه باید در حوزه هوش مصنوعی دنبالش بگردید با برنامه نویسی عادی این کار شدنی نیست . . .

موفف باشید :چشمک:

Saeed.Masoumi
چهارشنبه 07 بهمن 1388, 21:52 عصر
سلام

دوست عزیز مگه تعداد کلمه های یک زبان محدود هست که برزیم تو دیتا بیسبله دوست عزیز محدود هستند.چون ما دنبال تعدادی (هر چند زیاد) کلمه معنادار می گردیم دوست عزیز من فکر نمی کنم حجم بالایی رو طلب کنه می دونی مثل چیه؟مثل دتابیسی است که برای برنامه های دیکشنری استفاده می کنند - یک دتا بیس تقریبا کامل دارم البته با اکسس حجمش 10 مگابایته می بینید که آنچنان هم زیاد نیست- پس می شه از روش همون دوستمون استفاده کنیم و برای دتا بیس هم از دتابیس دیکشنری های (انگلیسی به زبان دیگر) که تو اینترنت پره استفاده کنید.البته این یک روشه همیشه راه بهتری هم هست.ببین همین قسمتی که ما داریم ازش تو همین سایت استفاده می کنیم(بخش ایجاد تاپیک - پاسخ - پ خ و...) نیز دارای این تکنولوژی هستند می تونید امتحان کنید یک کلمه انگلیسی بنویسید اگر اشتباه نوشته باشید زیرش یک خط قرمز می کشه (مثل مایکروسافت آفیس)
موفق باشید

refigh3
چهارشنبه 07 بهمن 1388, 22:53 عصر
agha in omran ba barname nevisi nashe

reza_Nazem
چهارشنبه 07 بهمن 1388, 23:29 عصر
بهترین روش (تا این لحظه و بر اساس اطلاعاتم ) همون طور که دوستان گفتن استفاده از یک پایگاه داده است
دوستان کسی می دونه همچین دیتا بیسی رو از کجا میشود گیر آورد

CYCLOPS
پنج شنبه 08 بهمن 1388, 07:24 صبح
سلام
بله دوست عزیز محدود هستند.چون ما دنبال تعدادی (هر چند زیاد) کلمه معنادار می گردیم دوست عزیز من فکر نمی کنم حجم بالایی رو طلب کنه می دونی مثل چیه؟مثل دتابیسی است که برای برنامه های دیکشنری استفاده می کنند - یک دتا بیس تقریبا کامل دارم البته با اکسس حجمش 10 مگابایته می بینید که آنچنان هم زیاد نیست- پس می شه از روش همون دوستمون استفاده کنیم و برای دتا بیس هم از دتابیس دیکشنری های (انگلیسی به زبان دیگر) که تو اینترنت پره استفاده کنید.البته این یک روشه همیشه راه بهتری هم هست.ببین همین قسمتی که ما داریم ازش تو همین سایت استفاده می کنیم(بخش ایجاد تاپیک - پاسخ - پ خ و...) نیز دارای این تکنولوژی هستند می تونید امتحان کنید یک کلمه انگلیسی بنویسید اگر اشتباه نوشته باشید زیرش یک خط قرمز می کشه (مثل مایکروسافت آفیس)
موفق باشید

دوست عزیز یه دیتابیس برای تشخیص املای کلمه رو نباید با دیتابیس دیکشنری مقایسه کرد یک تفاوت بزرگ اینه که معمولا اسامی تو دیتا بیس دیکشنری نیستن پس مثلا وقتی طرف بنویسه John یا این لغت تو دیتابیس نیست یا مجبورید تمام اسامی خاص رو هم برزید تو دیتا بیس (تازه اگر چیزی رو از قلم نندازید)
تفاوت مهم دیگه اینکه مثلا هر فعل تو زبان انگلیسی چندین حالت داره یه جای ed میگیریه یه جا ing میگیره حالت های خاص زیادی هست آیا تمام این حالت ها باید در املا لحاظ بشه یا نه ؟؟
مسلما باید لحاظ بشه کافیه همین دو مورد (اسامی خاص و حالت های مخالف افعال و سایر کلمات) رو به دیتا بیستون اضافه کنید تا ببینید نه تعداد کلمات یک زبان محدوده و نه حجم دیتا بیستون نزدیک 10 مگ خواهد بود شاید بشه در مورد دیکشنری محدود و خلاصش کرد ولی املا کاملا بحثش متفاوته .

موفق باشید :چشمک:

Yasersadegh
پنج شنبه 08 بهمن 1388, 10:38 صبح
سلام به همه دوستان گرامی

دوست عزیز یه دیتابیس برای تشخیص املای کلمه رو نباید با دیتابیس دیکشنری مقایسه کرد یک تفاوت بزرگ اینه که معمولا اسامی تو دیتا بیس دیکشنری نیستن پس مثلا وقتی طرف بنویسه John یا این لغت تو دیتابیس نیست یا مجبورید تمام اسامی خاص رو هم برزید تو دیتا بیس (تازه اگر چیزی رو از قلم نندازید)
تفاوت مهم دیگه اینکه مثلا هر فعل تو زبان انگلیسی چندین حالت داره یه جای ed میگیریه یه جا ing میگیره حالت های خاص زیادی هست آیا تمام این حالت ها باید در املا لحاظ بشه یا نه ؟؟
مسلما باید لحاظ بشه کافیه همین دو مورد (اسامی خاص و حالت های مخالف افعال و سایر کلمات) رو به دیتا بیستون اضافه کنید تا ببینید نه تعداد کلمات یک زبان محدوده و نه حجم دیتا بیستون نزدیک 10 مگ خواهد بود شاید بشه در مورد دیکشنری محدود و خلاصش کرد ولی املا کاملا بحثش متفاوته .

موفق باشید :چشمک:
دوست عزیز من هم کاملا با نظر آقای سعید معصومی موافقم!! برایه اینکار همون طور که خودتون گفتید که زبان محدود نیست بنابراین استفاده از روشهای هوش مصنوعی تقریبا غیر ممکنه!! (مگر اینکه به برنامه مغز آدم وصل کنید که باز بعضی از کلمات رو خود آدمها هم نشنیدن و کلمات جدیدی هستند!:ناراحت:)
پس بنابراین چاره ای نیست و بهترین راه استفاده از یه دیتابیس است که در این مورد کار دوستمون آقا رضا رو راه میندازه!!:لبخند: ولی چطوری میتونه اینکارو کنه!!؟:متفکر: مثل برنامه های آفیس بیاد یه دیتابیس بذاره و اگه کاربر کلمه ای معنادار رو وارد کرد و در این بانک نبود می تونه یه امکان بزاره که خود کاربر کلمات معنادار جدید رو به بانک اضافه کنه!!(بازم مثل آفیس):لبخند:


بهترین روش (تا این لحظه و بر اساس اطلاعاتم ) همون طور که دوستان گفتن استفاده از یک پایگاه داده است
دوستان کسی می دونه همچین دیتا بیسی رو از کجا میشود گیر آورد

خوب دوست عزیز همون طور که آقای سعید معصومي فرمودند می تونید این بانکها رو با یه سرچ از تو اینترنت به راحتی پیدا کنید!!
به نظر من اگه می خواهید که یه بانک خوب و قوی داشته باشید حتما از Sql استفاده کنید و فیلد مربوط به کلمات رو حتما کلید کنید تا سرعت جستجوتون زیاد بشه!!

موفق باشید:چشمک:

M.GhanaatPisheh
پنج شنبه 08 بهمن 1388, 11:31 صبح
دوست عزیز
می تونید از Componentهای بسیار خوب موجو استفاده کنید. مثل http://www.telerik.com/products/aspnet-ajax/spell.aspx

Saeed.Masoumi
پنج شنبه 08 بهمن 1388, 19:13 عصر
دوست عزیز یه دیتابیس برای تشخیص املای کلمه رو نباید با دیتابیس دیکشنری مقایسه کرد یک تفاوت بزرگ اینه که معمولا اسامی تو دیتا بیس دیکشنری نیستن پس مثلا وقتی طرف بنویسه John یا این لغت تو دیتابیس نیست یا مجبورید تمام اسامی خاص رو هم برزید تو دیتا بیس (تازه اگر چیزی رو از قلم نندازید)
تفاوت مهم دیگه اینکه مثلا هر فعل تو زبان انگلیسی چندین حالت داره یه جای ed میگیریه یه جا ing میگیره حالت های خاص زیادی هست آیا تمام این حالت ها باید در املا لحاظ بشه یا نه ؟؟
مسلما باید لحاظ بشه کافیه همین دو مورد (اسامی خاص و حالت های مخالف افعال و سایر کلمات) رو به دیتا بیستون اضافه کنید تا ببینید نه تعداد کلمات یک زبان محدوده و نه حجم دیتا بیستون نزدیک 10 مگ خواهد بود شاید بشه در مورد دیکشنری محدود و خلاصش کرد ولی املا کاملا بحثش متفاوته .
سلام
آره من به این نکات توجه نکرده بودم الان تو خود پاسخ به سوالات تست کردم دیدم حرف شما کاملا درسته والا نمی دونم چجوری این کارو میشه بدون کامپوننت انجام دهیم.
شاید با یک دتا بیس در حد دتا بیس آفیس :لبخند:
موفق باشین :لبخند:

به نظر من استفاده از regular expersion بهترین راه هست
دوست عزیز میشه بگی چطوری این راه به ذهنتون رسید؟؟؟؟:متفکر::متفکر:یک مثلا بگین فک کنم خودتون متوجه شین مشکل کارتون چیه.

reza_Nazem
پنج شنبه 08 بهمن 1388, 19:36 عصر
به عبارت های منظم نمیشه
را جع به اون هم فکر کردن اول اینکه کارش تولید رشته های یک زبانه نه اینکه تشخیص بده یک رشته متعلق به یک زبان هست یا نه
واسه این کار باید یک پارسر یا آتاماتا طراحی شه که فکر نکنم عملی شه چون نمیشه برای ساخت تمام کلمات انگلیسی یک گرامر منظم تعریف کرد

دوم هم همون جور که کفتم محاله بشه برای این مورد یک گرامر تعریف کرد

باز هم خیلی خیلی ممنون از نظری که دادین دوست من و من رو کمک کردین

reza_Nazem
پنج شنبه 08 بهمن 1388, 23:59 عصر
من تونستم یه راه برای این صورت مسئله پیدا کنم Source براتون اینجا upload میکنم امیدوارم براتون مفید باشه