Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

اشکال ریشه‌یابی کلمات سه‌حرفی #57

Open
M-Hatami opened this issue May 8, 2023 · 4 comments
Open

اشکال ریشه‌یابی کلمات سه‌حرفی #57

M-Hatami opened this issue May 8, 2023 · 4 comments

Comments

@M-Hatami
Copy link

M-Hatami commented May 8, 2023

سلام و ممنون برای برنامه خوبتون،

علیرغم اینکه این برنامه ریشه اکثر کلمات را بدرستی درمی‌آورد، اما تعداد زیادی از کلمات (غالباً اسامی) سه‌حرفی که حرف آخر آنها یکی از حروف م، ی، ت، یا ش هستند تغییر کرده و یک نتیجه دو حرفی بی معنی تحویل میدهد، مثلاً آدم به آد و رزم به رز تبدیل میشوند. چند مثال:

آدم
آلی
برش
بزم
بنی
بوم
پخت
پخش
پرت
پری
پشت
پشم
ترش
تقی
تنش
جرم
رزم
ملی

البته مثالهای بیشتری هست، ولی به همین بسنده میکنم.

@b00f
Copy link
Owner

b00f commented May 8, 2023

سلام.

ممنونم که وقت گذاشتی و لیلک را بررسی کردی. مسلما با کمک شما این برنامه بهتر هم خواهد شد. اما در مورد این مسئله:

میتونی بیشتر توضیخ بدی که چطور این کلمات را در آوردی؟ چطوری از «آدم» به «آد» رسیدی؟ و سوال مهمتر، راه حلی براش تو ذهنت هست؟

@M-Hatami
Copy link
Author

M-Hatami commented May 9, 2023

سلام از ماست، ممنون برای پاسختون.

چطور این کلمات را در آوردی؟ چطوری از «آدم» به «آد» رسیدی؟

۱. یک متن رو با هانسپل برای یافتن ریشه‌های کلماتش بوسیله دستور زیر پردازش و استخراج کردم:

hunspell.exe -d fa_IR -i utf-8 -s <vorodi.txt >khoroji.txt

۲. خروجی آن را که فکر میکنم حدود یک میلیون ردیف بود را در دو ستون (یک ستون کلمه اصلی، ستون دوم ریشه پردازش) با اکسل بصورت زیر تحلیل کردم:
۲.۱. در اکسل یک ستون اضافه کرده و کلماتی را که قبل و بعد از هانسپل تغییر کرده بودند را پیدا کرده و مشخص کردم.
۲.۲. یک ستون دیگر افزوده و تعداد حروف، کلمات اصلی قبل از پردازش را پیدا کردم
۲.۳. یک ستون دیگر افزوده و تعداد تکرار هر کلمه را محاسبه کردم

۳. با مرتب کردن ستونها بصورت صعودی و نزولی و ترتیبی، به منظور اطمینان از دقت و صحت تغییرات شروع به بررسی آنها کردم و متوجه اشکالات زیادی در کلمات سه حرفی شدم، بعد با جدا کردن آنها و تحلیل بیشتر به نتیجه فوق رسیدم.

راه حلی براش تو ذهنت هست؟

۱. در حال حاضر ساده‌ترین راهی (که البته فکر خودم نیست بلکه در مقاله یک الگوریتم ریشه‌یابی برای فارسی دیدم) به نظر میرسد این است که بجای حل مشکل، کلاً سوال را حذف کنیم. یعنی یک محدودیت حداقل تعداد حروف ریشه که سه حرف باشد در نظر گرفته شود و تنها کلمات دارای تعداد حروف بیش از سه حرف پردازش شوند.

۲. راه بهتر شاید این باشد که اول نوع کلمات که اسم، فعل، یا حرف هستند مشخص شوند، سپس اگر کلمه‌ای سه حرفی بوده و از نوع اسم نیز بود و حرف آخر آن یکی از حروف م، ی، ت، یا ش بود، پردازش نشود.

مخلصم

@b00f
Copy link
Owner

b00f commented May 9, 2023

خیلی کارت عالی بوده و امیدوارم که بتونی این کاری که انجام دادی را مستند کنی و منتشرش کنی. خیلی زحمت کشیدی و تبریک میگم.
چند تا نکته به ذهن من رسید:
اول اینکه نرخ خطا چقدر بوده؟ حدس من اینکه نرخ خطا احتمالا با تعداد حروف ارتباط مستقیم داره. احتمالا نرخ خطا برای کلمات چهار حرفی بیشتر از پنج حرفی است و علی هذا.

اما در مورد راه حل‌ها:

خوب راه حل اول بنظر مطلوب نیست اما اگر کمک کنه که نرخ خطامون کم بشه راه حل ممکنی است. البته من الان حضور ذهن ندارم که آیا میشه با هانسپل گفت که کلمات سه حرفی را در نظر نگیرد یا نه؟

راه حل دوم منطقی‌تر است و ما تا حد خوبی به نوع کلمات دسترسی داریم.

من یکم زمان می‌خواهم که بیشتر روی این موضوع فکر کنم. در عین حال تشویقت میکنم که روی راه حلهایی که داری کار کنی و اینجا اعمال کنی.

آرزوی سلامتی و نشاط

@M-Hatami
Copy link
Author

سلام علیکم،

ببخشید، یکم مشغول بودم، نتونستم جواب بدم. هنوز نرخ خطاء رو بررسی نکردم یعنی واقعاً علیرغم میلم وقت نکردم چون روی این موضوع بین کارهام و آخر هفته‌ها کار میکنم. گفتم فعلاً جوابی داده باشم که بی‌ادبی نباشه. ان شاء الله به مجردی که بررسی کردم حتماً در جریانت میگذارم.

مخلصم و آرزوی بهترین‌ها رو برات میکنم.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants