بخشی از مقاله
چکیده
مهمترین اشکال در اغلب روشهای بازشناسی بیتوجهی به بافت جمله است که باعث میگردد در مواردی که کلمهی ورودی، اشتباه بازشناسی میشود، واژهای با ظاهر درست در جملهای نابجا به کار رود. در این مقاله روش جدیدی برای بازشناسی کلمات برخط فارسی ارائه شده است که با استفاده از بافت جمله سعی در بهبود بازشناسی دارد. فرآیند روش معرفی شده به این صورت است که در مرحلهی بازشناسی مجموعهای از واژگان به عنوان فرضیه در نظر گرفته میشوند، به هر فرضیه بر اساس میزان شباهت آن به دستنوشته ورودی امتیازی تعلق میگیرد و بر اساس امتیاز حاصله محتملترین فرضیات مشخص میشوند.
سپس این رویه توسط مدل زبانی برای یافتن فرضیات محتملتر، هدایت میشود . در واقع، مدل زبانی نیز به هر فرضیه یک امتیاز نسبت میدهد و با تلفیق امتیازهای هر فرضیه، امتیاز نهایی فرضیه حاصل میگردد. با بهره جستن از مدل زبانی علاوه بر کاهش خطا، تکنیکی ارائه شده است که با بهکارگیری آن تمامی واژگان زبان فارسی توسط سامانه قابل بازشناسی هستند. با بهکارگیری روش ارائه شده، دقت بازشناسی در مرحله اولیه در سطح حروف %95,9 و پس از بازشناسی به کمک مدل زبانی دقت بازشناسی به %99,3 ارتقاء یافت.
-1 مقدمه
امروزه با پیشرفت تکنولوژی و گسترش روزافزون فناوری، ابزارهای تجاری بسیاری همچون رایانههای لوحی و موبایلهای هوشمند توسعه یافته است، این ابزارها از ابتدای ورودشان به بازار با استقبال چشمگیری از سوی کاربران مواجه شدند و هر لحظه هم به محبوبیت آنها بین کاربران افزوده میشود. یکی از حوزههای تحقیقاتی که با ظهور و توسعهی این ابزارها بسیار مورد توجه قرار گرفت بازشناسی برخط دستنوشته بود.
در بازشناسی برخط، مختصات نقاط مسیر حرکت قلم، تعداد حرکات قلم و فشار قلم در دسترس هستند. بازشناسی برخط نوشتار به دلیل راحت تر بودن نوشتن از تایپ کردن، عدم امکان تایپ در بعضی از موقعیت ها، عدم وجود یک صفحه کلید کامل روی کامپیوترهای کوچک و سخت بودن تایپ حروف در بعضی زبانها به دلیل تعداد زیاد حروف آنها، مورد توجه خاصی قرار گرفته است
تحقیقات زیادی در این زمینه برای بازشناسی دستنوشتههایی به زبانهای مختلف از جمله لاتین-پایه، چینی، ژاپنی و عربی انجام شده است .[13,19,20,22,23] زبان فارسی نیز از این قاعده مستثنی نبوده و پژوهش های انجام گرفته در این حوزه به دو دسته کلی تقسیم میشوند که عبارتند از بازشناسی حروف مجزا و بازشناسی کلمات پیوسته. در [4] برای بازشناسی حروف مجزای فارسی از شبکههای عصبی استفاده شده است که در آن میزان بازشناسی درست برای 4144 حرف %93,9 گزارش شده است.
در تحقیق دیگری [8] مدل مخفی مارکوف برای بازشناسی حروف مجزای فارسی به کار گرفته شد که در آن با ارائه یک روش مبتنی بر گروهبندی 25,63 درصد خطای بازشناسی کاهش یافت. در [3,12] برای بازشناسی برخط کلمات فارسی از روش قطعهبندی استفاده شده است. البته فرآیند قطعهبندی بسیار مستعد خطاست و میتواند دقت نهایی سیستم را بسیار پایین آورد
لذا پژوهشگران این حوزه به دنبال نوآوریهایی بودند که کارایی سامانههای بازشناسی برخط کلمات را بهبود بخشد. برای مثال در روشی برای بازشناسی زیرکلمات و در [5] برای بازشناسی کلمات فارسی ارائه شده است. نوآوری این روش علاوه بر جدید بودن، در اهمیت ویژهای است که به بازشناسی علائم کلمات میدهند.
در این مقاله روشی ارائه شده است که طی آن مدل زبانی فرآیند بازشناسی کلمات دستنویس برخط را هدایت میکند و به این ترتیب سعی در کاهش خطای بازشناسی دارد.
-2 پردازش زبانهای طبیعی
پردازش زبانهای طبیعی، یک حوزه میانرشتهایاست که معمولاً با مباحث زبانشناسی و علوم رایانهای - به ویژه هوش مصنوعی ، چرا که در پردازش زبانهای طبیعی نیازمند روشهای هوشمندانه هستیم - سروکار دارد. این حوزه به مباحث روانشناسی ، علوم شناختی و فلسفه هم مرتبط است که در این مباحث به چگونگی یادگیری زبان توسط انسان، چگونگی درک زبان، چگونگی نمود پیدا کردن معانی شکل گرفته در ذهن انسان در قالب کلمات - گفتار یا نوشتار - و مسائلی از این قبیل پرداخته میشود. در یک نگاه کلی میتوان پردازش زبان را در سطوح مختلفی مورد بررسی قرار داد که عبارتاند از: واجشناسی و آواشناسی ، تحلیل ساختواژی ، نحو ، معنا ، کاربرد و گفتمان
توجه به این نکته حائز اهمیت است که زبان طبیعی، پدیده پیچیدهای است و فهم آن را نمیتوان در هیچ یک از این سطوح متوقف دانست. به عبارتی ارائهی این سطوح برای فهم زبان طبیعی، به معنای جدا کردن کامل سطوح پردازش زبان از هم نیستند
چند نمونه از کاربردهای پردازش زبان طبیعی عبارتند از: ترجمه ماشینی، خلاصهسازی خودکار متن، داده کاوی و به ویژه در وب کاوی، بازیابی متن، استخراج اطلاعات، سیستمهای پرسش و پاسخ انسان با رایانه، سرویسهای اتوماتیک ارتباط با مشتری از طریق تلفن، سیستمهای کنترلی توسط صدا و...
-3 پیکره متنی زبان فارسی
طبق تعریف، پیکره حجم زیادی از دادههای زبانی است که بر اساس معیارهای مشخص برای هدف معینی جمعآوری و ذخیره شده به طوری که نماینده زبان یا گویش مورد مطالعه باشد
در این پژوهش برای تولید مدل زبانی از پیکره بیجنخان [17] که یک پیکره متنی استاندارد است، استفاده کردهایم. این پیکره تقریباً شامل 2,6 میلیون 937 - ،597، - 2 کلمه برچسب خورده است. مجموعه برچسب بهکار رفته در این پیکره متنی، در ابتدا 550 برچسب و سپس به 40 برچسب مختلف کاهش یافت که هر یک از آنها بیانکننده یک گونه صرفی است. این پیکره شامل متون رسمی، غیررسمی و محاورهای است.
-1-3 یکدستسازی املایی پیکره متنی
یکدستسازی املایی از آن جهت لازم است که بعضی کلمات با دو یا چند املای مختلف در پیکره متنی نوشته شدهاند. مثلاً پیشوند »می« و پسوند »ها« در ابتدا و انتهای کلمات، به سه صورت - جدول - 1 ممکن است در متن فارسی دیده شود
جدول :1 چنداملایی نوشتن پسوندها و پیشوندها در زبان فارسی
یا کلمات » مسئول«، »مجموعه« و »پاییز« به صورتهای مختلفی در پیکره متنی دیده میشود. بنابراین کاراکترهای بهکاررفته در دو کلمه یکسان ممکن است متفاوت باشند؛ این باعث میشود که هنگام شمردن کلمات، دو کلمه یکسان ولی با املای متفاوت به عنوان دو کلمه مختلف در نظر گرفته شوند .[2] در ادامه موارد مختلفی از یکدستسازی املایی آمده است که به صورت دستی یا با استفاده از نرمافزار »واژه آرا« انجامگرفته آمده است.
. تبدیل کاراکترهای »ی« به »ی« و »ک« به »ک.«
. حذف »ی« اضافه از کلماتی مانند »کلمه ی.«
. حذف فتحه - کاراکترَ - و کسره - کاراکترِ - و ضمه - کاراکترُ - .
. حذف تنوینهای از نوع ٍ«»، در مواردی نیز به صورت »ا"« دیدهشدهاند که آنها را حذف نمودیم.
. چسباندن پیشوندها به اول کلمه. مانند »می«، »بی«، »نمی. «
-2-3 تصحیح غلطهای املایی
در بررسی پایگاه داده تعداد زیادی غلطهای املایی مشاهده شد که اصلاح گردید. چند نمونه از غلطهای املایی پیکره متنی در جدول 2 آمده است.
جدول :2 نمونههایی از غلطهای املایی پیکره متنی
لازم به ذکر است که تمامی اصلاحات بر اساس دستور زبان خط فارسی [9] مصوب فرهنگستان زبان و ادب فارسی صورت گرفته است.
-4 استخراج اطلاعات آماری از پیکره متنی
آمار های مورد نیاز برای طراحی مدل زبانی به شرح زیر است
- 1 تعداد رخداد هر کدام از کلمات.
- 2 تعداد رخداد هر دوتایی از کلمات پیکرهی متنی.
این آمار فقط برای 12000 کلمه پرکاربرد به دست میآید. سایر کلمات به صورت یک کلمه »خارج از واژگان« در نظر گرفته میشوند. لذا آمار استخراجشده در یک ماتریس 12001× 12001 ذخیره میگردد.
- 3 تعداد رخداد هر سهتایی از کلمات موجود در پیکره متنی.
مانند آمار تعداد رخداد دوتایی کلمات، این آمار نیز فقط برای 12000 کلمه پرکاربرد به دست میآید. از آنجا که بسیاری از ترکیبهای سهتایی از این کلمات در پیکره متنی موجود نیست فقط آمار ترکیبهای سهتایی موجود به صورت یک لیست ذخیره میگردد.
- 4 تعداد رخداد هر برچسب در پیکره متنی.
- 5 تعداد رخداد هر دوتایی از برچسبهای موجود در پیکره متنی. این آمار به صورت یک ماتریس40×40 ذخیره میشود.
- 6 تعداد رخداد هر سهتایی از برچسبهای پیکره متنی. این آمار به صورت یک ماتریس 40×40×40 ذخیره میشود. - 7 تعداد رخداد هر برچسب به ازای هر کلمه.
هر کلمه میتواند بنا به نقشی که در جمله دارد برچسبهای متفاوتی بگیرد، لذا آمار برچسبهای مختلف برای هر کلمه از پیکره متنی استخراج میشود و در ماتریس Lexical Generation با ابعاد 40×12001 ذخیره میشوند.
-5 مدلهای زبانی
سادهترین و پرکاربردترین مدل زبانی آماری، مدلهای − هستند. به صورت کلی این مدلها بر اساس احتمال رخداد یک کلمه پس از دنبالهای از − 1 کلمه عمل میکند. احتمال دنباله لغات در حالت کلی برابر است با = 1, 2, 3, … , این احتمال با رابطهی زیر تعریف میشود:
در عمل تعداد کلمات قبلی به − 1 کلمه محدود میشود و مدل حاصل − نامیده میشود. وقتی بزرگ باشد، محاسبه احتمال فوق بسیار مشکل و در عمل غیرممکن است. مقادیر معمولاً بین 1 تا 5 است و با نامهای زیر شناخته میشوند.
مدلهای − با استفاده از شمارش دنباله کلمات در یک پیکره متنی بزرگ به دست میآیند:
ابتدا تمام انواع کلمات پیکره شمارش میشود و یک مجموعه واژگان شامل کلمه از کلمات پرکاربرد - و سایر کلمات مورد نظر - تعیین میگردد. سایر کلمات همگی با یک نماد مشخص به عنوان کلمه خارج از واژگان - OOV - جایگزین میشوند. سپس پیکره از ابتدا تا انتها پیمایش شده و تمام ترکیبات دوتایی، سهتایی، ... و تایی از کلمات واژگان - و همچنین نماد - OOV شمارش میشود.
معمولاً از مرتبه چند هزار است بنابراین تعداد پارامترهای مدل − بسیار زیاد است. در زبانهایی مانند فارسی به دلیل کمبود حجم داده آموزشی، به 1، 2 و یا به 3 محدود میشود. ولی در زبانهایی که حجم دادهها بسیار زیاد است − های بزرگتری هم تولید شده است، مثلاً شرکت »گوگل« برای زبان انگلیسی موفق به تولید 5 − شده است. بسته به این که احتمالهای مذکور از بین کلمات یا از بین کلاسهایی از کلمات استخراج شوند، مدلهای − متفاوتی خواهیم داشت.
مدل monogram، بر اساس خود کلمات استخراج شده است ولی مدلهای bigram و trigram، هم میتوان مدل را از کلمات استخراج کرد و هم میتوان کلمات را دستهبندی نموده و مدل را بر اساس دستههای کلمات استخراج نمود .[2] در این نوشتار دستهبندیها بر اساس پارهگفتار است.
-1-5 مدل n-gram مبتنی بر کلمه
سادهترین مدل زبانی − مدل − مبتنی بر کلمه میباشد. در این مدل، احتمال شرطی رخداد هر کلمه پس از هر رشته − 1 کلمهای مورد توجه قرار میگیرد. مدلهای monogram، bigram و trigram مبتنی بر کلمه به ترتیب با روابط زیر به دست میآیند
در روابط فوق به ترتیب آمارهای monogram، bigram و trigram کلمات و تعداد کل کلمات پیکره متنی میباشد.
در عمل بسیاری از این پارامترها صفر هستند، یعنی دنباله کلمات مربوط به آنها در پیکره متنی رخ نداده است. این اتفاق به دو دلیل رخ میدهد: یکی به دلیل کم بودن حجم پیکره متنی و دیگری اینکه بعضی از دنباله کلمات در زبان مجاز نمیباشند. بنابراین نحوه ذخیره مدلهای − در حافظه رایانه به صورت ماتریس sparse میباشد.
-2-5 مدل n-gram مبتنی بر پارهگفتار
برای استخراج آمار bigram و trigram معتبر نیاز به حجم عظیمی از دادههای متنی داریم. پیکره متنی هرچقدر هم که بزرگ باشد باز هم بسیاری از ترکیبات دوتایی و سهتایی کلمات را پوشش نمیدهد به همین دلیل بسیاری از آمارهای bigram و trigram صفر و یا خیلی کوچک میباشند.
برای برطرف کردن نسبی این مشکل و به دست آوردن آمارهایمعتبرتر، معمولاً کلمات مورد دستهبندی قرار میگیرند و آمار bigram و trigram بین دستههای کلمات استخراج میشود. ساده ترین روش برای دستهبندی کلمات، دسته بندی بر اساس پارهگفتار آنها میباشد. از آنجا که هر کلمه ممکن است بر اساس موقعیت و نقشی که در جمله دارد پارهگفتارهای مختلفی بگیرد پس هر کلمه عضو چند کلاس خواهد بود