چالشهای پردازش زبان طبیعی در زبان فارسی
بررسی چالشهای رایج برای استفاده از مدلهای هوشمند در زبان فارسی
توسط علی اشتهاردیان، کارشناس هوش مصنوعی مرکز نوآوری پلوینو
مقدمه
امروزه با توسعه فناوری هوش مصنوعی و افزایش قدرت و سرعت پردازشگرها استفاده از این فناوری با رشد قابل ملاحظهای روبرو میباشد و از روندها بسیار تأثیر گذار بر کسب و کارها شناخته شده است. هوشمندسازی از یک طرف میتواند سرعت بالایی به فعالیتها ببخشد، امنیت سامانههای موجود را افزایش دهد، و از طرف دیگر بسیاری از هزینههای موجود همانند هزینههای مرتبط با بکارگیری نیروی انسانی را کاهش دهد. به علاوه، یکی از اصلیترین مزیتهای هوش مصنوعی بالابردن کیفیت خدمات به مشتریان است، به گونهای که به کمک شخصیسازی این خدمات، میتواند تأثیر بسزایی در افزایش رضایت مشتریان داشته باشد. در نتیجه، استفاده صحیح از فناوری هوش مصنوعی میتواند برای بسیاری از سازمانها مفید و بهینه باشد. هوش مصنوعی زیرشاخههای زیادی دارد، که یکی از پرکاربردترین آنها پردازش زبان طبیعی است و به کمک آن میتوان باتهایی را، همانند چتباتها، طراحی کرد تا به جای نیروی انسانی بسیاری از فرایندهای تکراری و روزمره را به عهده گرفته و با بازدهی بالاتری انجام دهند، همانند فرایندهای پرسش و پاسخ در مراکز تماس سازمانها.
با وجود تمامی مزایای پردازش زبان طبیعی، باید توجه داشت چالشهای بسیار زیادی در این مسیر نیز وجود دارد[۱] که پیادهسازی عملی روشهای پردازش زبان طبیعی را تا حد زیادی پیچیده و حتی غیرممکن میکنند. بهطور خاص این چالشها در زبان فارسی، بهدلیل ماهیت پیچیده آن در مقایسه با بسیاری زبانهای دیگر بیشتر بوده و نیازمند یافتن راهحلهایی هوشمندانه است. در این گزارش هدف بررسی برخی از چالشهای رایج پردازش زبان طبیعی در زبان فارسی است.
برخی چالشهای اصلی پردازش طبیعی زبان فارسی:
- کمبود مجموعه داده[1] برای آموزش مدلهای یادگیری ماشین
- واژگانی که به یک شکل نوشته شده اما تلفظهای متفاوتی دارند[2]، همانند اَبْرْ و اَبَرْ
- واژگانی که همزمان با چند املای متفاوت نوشته میشوند، همانند باتری و باطری
در قسمت بعد هر یک از این چالشها بهطور دقیق شرح داده شده و راهحلهایی کلی برای آنها پیشنهاد داده خواهد شد:
چالش اول: کمبود مجموعه داده برای آموزش مدلهای یادگیری ماشین
در پردازش زبان طبیعی، یکی از مفیدترین ابزارها استفاده از مدلهای یادگیری ماشین است که به کمک یک مجموعه داده، الگوهای موجود در دادهها را استخراج کرده و سپس به کمک آن الگوها میتوانند ویژگیهای مشخصی را برای دادههای جدید پیشبینی کنند. بهعنوان مثال، برخی مدلهای یادگیری ماشین که در پردازش زبان طبیعی بهکار میروند میتوانند واژگانی که در برخی متون در دسترس نیست را به کمک واژگان اطراف آنها در جمله با دقت بالایی حدس بزنند.
اما استفاده از مدلهای یادگیری ماشین در زمینه پردازش زبان طبیعی متون فارسی خود با یک چالش بسیار بزرگ روبهرو میباشد. مدلهای یادگیری ماشین برای پیشبینی دقیق نیاز به آموزش دیدن به کمک یک مجموعه داده بسیار بزرگ دارند، یعنی حداقل چند ده هزار متن، مشابه متنی که قرار است پیشبینی در آن صورت گیرد، که یافتن چنین متونی در زبان فارسی کمی دشوار است. علت این امر آن است که تعداد متون فارسی موجود در اینترنت در مقایسه با بسیاری از زبانهای دیگر بسیار محدود بوده و تعداد فارسی زبانان در جهان کمتر از متکلمان زبانهای پرکاربردی همانند انگلیسی و فرانسوی است. در نتیجه، از آن جایی که یکی از مهمترین منابع جمعآوری داده برای آموزش مدلهای یادگیری ماشین اینترنت میباشد، میتوان اینگونه نتیجهگیری کرد که تعداد مجموعه دادههای موجود برای آموزش مدلهای مبتنی بر زبان فارسی بسیار محدود بوده است، که متأسفانه خود منتهی به دقت پایین برای مدلهای آموزش دیده میشود[۲].
برای یافتن راهحلی مناسب برای آمادهسازی مجموعه داده برای زبان فارسی، میتوان از روشهایی همانند استفاده از تکنولوژی OCR [3] بهره برد که به کمک آنها، بدون نیاز به جستوجو در اینترنت، میتوان متون مختلف را کند و کاو[4] کرد و دادههای بسیار سودمندی را از آنها استخراج کرد. برای تحقق این امر، میتوان از اسناد فارسی مجموعههایی همانند فرهنگستان زبان و ادب فارسی که شامل بسیاری از گویشهای زبان فارسی میباشد استفاده کرد تا طی یک همکاری تیمی بین متخصصان علم داده و کارشناسان زبان و ادبیات فارسی مجموعه دادههای عظیمی برای آموزش مدلهای پردازش زبان طبیعی مبتنی بر زبان فارسی گردآوری گردد.
چالش دوم: واژگانی که به یک شکل نوشته شده اما تلفظهای متفاوتی دارند[5]، همانند اَبْرْ و اَبَرْ
این قبیل واژگان یکی از چالشهای بسیار مهم در موتورهای تبدیل متن به گفتار[6] در زبان فارسی هستند. این موتورها، برای حروفی که تلفظی یکتا دارند به یک شکل عمل کرده و کار پیچیدهای نخواهند داشت، اما برای تلفظ واژگانی که چندین تلفظ دارند، بایستی ابتدا معنای درست آن واژه را در جمله شناسایی کرد و سپس بر اساس معنای صحیح، تلفظ متناسب با آن را استفاده کند. اما قسمت پیچیده کار شناسایی معنای صحیح واژگان است، بهویژه زمانی که واژهای یک شکل با دو تلفظ کاملاً متفاوت میتواند در یک جمله معنا داشته باشد، بهعنوان مثال:
- وی توانایی خرید مَسْکَنْ را ندارد.
- وی توانایی خرید مُسَکِنْ را ندارد.
همانطور که در دو جمله بالا ملاحظه میشود، واژه مسکن با دو تلفظ مختلف که معانی کاملاً متفاوتی دارند نوشته شده، اما هر دو جمله دارای معنی هستند. در نتیجه، یافتن راهحلی برای شناسایی معنای صحیح این واژگان، آن هم با وجود کمبود مجموعه داده برای آموزش مدلهای یادگیری ماشین که در قسمت پیشین ذکر شد، خود یک چالش بسیار بزرگ برای پردازش زبان طبیعی است.
یکی از راهحلهای تقریبی برای حل این چالش، میتواند مقایسه جمله دارای واژه با تلفظ نامشخص با جملاتی باشد که تلفظهای گوناگونی از همان واژه را داشته و به کمک چنین مقایسهای توسط یک سیستم هوشمند، میتوان با دقت مناسبی بر اساس محاسبه میزان شباهت توسط مدل دریافت کرد که معنای واژه نامشخص به کدام واژه در کدام جمله شباهت بیشتری داشته و بر آن اساس معنا و تلفظ آن را با دقت بالایی پیشبینی کرد. از آن جایی که مقایسه مستقیم این جملات با یکدیگر توسط کامپیوتر ممکن نیست، لذا پیشنهاد میشود از مدلهای هوشمندی که بردار جملات را استخراج میکنند، همانند مدل زبانی برت[7] استفاده کرد. این مدل میتواند بردار دقیقی را برای جملات و واژگان استخراج کرده و پس از آن، به کمک روشهای ریاضی بردارها میتوانند با دقت قابل قبولی با یکدیگر مقایسه شوند.
چالش سوم: واژگانی که همزمان با چند املای متفاوت نوشته میشوند، همانند باتری و باطری
یکی دیگر از مواردی که میتواند موتورهای پردازش زبان فارسی را دچار مشکل کند، عدم وجود استانداردی برای نوشتار برخی کلمات است که دارای چند املای صحیح به صورت همزمان هستند. بهعنوان مثال شهر تهران در گذشته به صورت طهران نوشته میشده که بعدها تغییر شکل داده است. لذا این امکان وجود دارد که برخی از کاربران املای قدیمی این قبیل واژگان را ترجیح داده و از آنجایی که غالباً یک استاندارد نوشتاری برای معانی مشخص هر واژه در موتور تعریف میشود، این احتمال وجود دارد که واژگان چند املایی موتور را در فرایند پردازش دچار مشکل کنند[۳]. البته لازم به ذکر است این چالش در مقایسه با دو چالش قبل چندان مشکلساز نبوده و پیچیده نیست، و میتوان با تعریف دو معنی کاملا یکسان برای هر دو نوشتار این واژگان آن را به سادگی حل کرد. به علاوه، در مورد برخی واژگان مثل طهران، از آن جایی که املای این واژه بسیار قدیمی میباشد، احتمال استفاده از آن بسیار پایین بوده و این نیز خود به مثابه یک راه حل از پیش نوشته شده برای این چالش میباشد.
مراجع:
- Ilya Zaihrayeu, L. S. (2007). From Web Directories to Ontologies: Natural Language Processing Challenges. International Semantic Web Conference. Springer
- Shamsfard, M. (2019). Challenges and Opportunities in Processing Low Resource Languages:A study on Persian
- Shamsfard, M. (n.d.). Challenges and Open Problems in Persian Text processing
-----------------------------------------------------------------
[1] Dataset
[2] Heteronyms
[3] Optical Character Recognition
[4] Crawl
[5] Heteronyms
[6] TTS
[7] Bert