ابزارهای لازم برای پردازش متن در زبان فارسی
تشخيص دهنده ي جمله: اين ابزار بايد با توجه به کاراکترهاي جداکننده ي جمله در زبان فارسي، توانايي تشخيص جملات را در متن ورودي داشته باشد. براي ايجاد اين ابزار بايد ابتدا تمامي کاراکترها، نماد ها و احياناً قواعد دستوري که باعث شکسته شدن جملات مي شوند، شناسايي گردند. با توجه به پايه بودن جمله در بسياري از پردازش هاي زباني، خروجي دقيق اين ابزار از درجه ي اهميت بالايي برخوردار است. از نمونه هاي انگليسي آن مي توان به OpenNLP، Stanford NLP، NLTK و Freeling اشاره کرد.
Tokenizer: ابزاري براي شکستن يک متن بر اساس واحدهاي با معني مانند کلمه، پاراگراف، نمادهاي معنادار مانند space و tab و … . لازمه ي ايجاد اين ابزار جمع آوري واحد هايي است که در زبان فارسي به عنوان واحد هاي مستقل معنايي شناخته مي شوند. سپس بر اساس انتخاب هر کدام از اين واحدها متن بر اساس آن شکسته خواهد شد. از نمونه هاي انگليسي آن مي توان به Flex، JLex، JFLex، ANTLR، Ragel و Quex اشاره کرد.
Named entity recognition: ابزاري براي تشخيص اسامي و نوع آنها اعم از اسامي افراد، اماکن، مقادير عددي و … . براي تشخيص اينکه يک کلمه اسم است، راه هاي مختلفي وجود دارد که از جمله ي آنها مراجعه به لغتنامه، مراجعه به word-net، در نظر گرفتن ريشه ي کلمه، استفاده از قواعد نحوي ساخت واژه و … مي باشد. در اين ابزار پس از تشخيص اسم ها با استفاده يک لغتنامه از اسامي افراد، مکان ها، مقادير عددي و … نوع اسم تشخيص داده مي شود. به نظر مي رسد که اين لغتنامه در فارسي موجود نمي باشد.
از جمله نمونه هاي انگليسي اين ابزار مي توان به Stanford NER و Illinois NER اشاره کرد.
Word-net: مجموعه اي از لغات و ارتباط ميان آنها به لحاظ معنايي. ارتباطات معنايي در داخل اين مجموعه شامل 16 رابطه مي باشد. اين مجموعه به عنوان يک مرجع در بسياري از پردازش هاي زباني مورد استفاده قرار مي گيرد. ار نمونه هاي انگليسي آن مي توان به Princeton Wordnet و EuroWordnet اشاره کرد. آزمايشگاه فناوري وب دانشگاه فردوسي مشهد نيز يک نمونه از اين مجموعه با نام فردوس نت را توليد کرده است.
Stemmer: ابزاري براي ريشه يابي لغات و تشخيص نوع کلمه ساخته شده از آن ريشه (اسم مکان، اسم زمان، حالت فاعلي، مفعولي و …). معمولاً ريشه يابي لغات بر اساس قواعد ساخت واژه اي و سپس حذف پسوندها مي باشد. تاکنون روش مؤثري براي حذف پيشوندها ارائه نشده است. در تلاشي که در آزمايشگاه فناوري وب انجام شده است، سعي شده تا بر اساس آناليزهاي آماري و داده کاوي پسوندها حذف گردند، که اين روش هم مي تواند راهي براي تشخيص ريشه باشد.
معروفترين الگوريتم ريشه يابي در انگليسي porter مي باشد.
Similarity recognition: ابزاري براي تشخيص ميزان شباهت ميان دو عبارت بر اساس پارامترهاي مختلف مانند نوع اسامي مشابه به کار رفته، استفاده از word-net و… . در اين ابزار پس از تشخيص نوع کلمات به کار رفته در يک جمله و سپس بر اساس جايگاه آن کلمات در جمله، کلماتي که در جايگاه هاي يکسان قرار دارند، مورد مقايسه قرار مي گيرند. از نمونه هاي انگليسي آن مي توان به Illinois NESim و Illinois WNSim اشاره نمود.
Chunker: ابزاري براي تشخيص گروه هاي اسمي، فعلي و …. در يک جمله. جهت تقويت الگوريتم هاي وابسته به SRL لازم است نه تنها نقش هاي کلمات مشخص گردند، بلکه بايد وابستگي هاي کلمات به لحاظ نقشي در جمله مشخص گردند. از جمله نمونه هاي انگليسي آن مي توان به Illinois Chunker اشاره کرد.
Semantic role labeler: ابزاري براي تشخيص نقش گرامري کلمه در جمله. اين ابزار يکي از مهمترين نقش ها را در پردازش هاي زباني بر عهده دارد. دقت در اين ابزار بسيار حائز اهميت است. اين ابزار بايد نقش هاي گرامري کلمات در جمله ها مانند فعل، فاعل، مفعول مستقيم، مفعول غير مستقيم و …. را تشخيص دهد. از جمله نمونه هاي انگليسي آن مي توان به OpenNlP، Illinois SRL، Swirl و LTHSRL اشاره کرد. اين ابزارها از الگوريتم پارسينگ charniak استفاده مي کنند.
Annotator: ابزاري براي ايجاد يک نمونه از يک آنتولوژي در يک سند داده شده. از ابزارهاي موجود در انگليسي مي توان به Illinois Curator و Stanford Annotator اشاره کرد.
Coreference resolution: ابزاري براي تعيين مرجع اسمي يک اسم يا يک ضمير در جملات. اين ابزار در زبان انگليسي معادل ابزاري است که مرجع ضمير را که به صورت اسم در جمله هاي قبلي آمده است، مشخص مي کند. استفاده از ضماير به جاي اسامي در زبان انگليسي بسير رايج مي باشد. اما در زبان فارسي اين امر چندان رايج نيست. اما در زبان فارسي عنوان يک مفهوم اسمي با اصطلاحات مختلف بسيار رايج مي باشد. عملاً ما به دنبال ابزاري هستيم که مرجع خاص يک سري از عنوان ها ي مختلف اسمي را مشخص کند. از نمونه هاي انگليسي اين ابزار مي توان به Illinois Coreference package اشاره کرد.
Pos tagger: ابزاري براي مشخص کردن نوع کلمات از قبيل اسم، صفت، قيد، فعل و … . يکي از روش هاي کاري براي ايجاد اين ابزار، ايجاد يک rule base که معمولاً به صورت دستي تشکليل مي شود، براي تشخيص نوع کلمه است. از نونه هاي فارسي آن مي توان به ابزار آزمايشگاه آقاي دکتر بيجن خان، و ابزار آزمايشگاه فناوري وب دانشگاه فردوسي مشهد اشاره کرد. از نمونه هاي انگليسي آن مي توان به Illinois Part Of Speech Tagger و Stanford POS Tagger اشاره کرد.
————————————————————————-
نرمالسازی متن
در ابتدا بايستي همهي نويسههاي (کاراکترهاي) متن با جايگزيني با معادل استاندارد آن، يکسانسازي گردند. در اولين گام بايد متون براي استفاده در گامهاي بعدي به شکلي استاندارد درآيند. از آنجايي که متون مختلف ممکن است بسيار به هم شبيه باشند اما به دليل تفاوتهاي ساده ظاهري از نظر ماشين متفاوت باشند؛ به همين دليل سعي شده است اين تفاوتهاي سادهي ظاهري برطرف گردد. همچنين اصلاحات ديگري نيز به منظور پردازش دقيقتر متون در اين مرحله صورت ميگيرد.
در اولين گام بايد متون برای استفاده در گامهای بعدی به شکلي استاندارد درآيند. از آنجايي که متون مختلف ممکن است بسيار به هم شبيه باشند اما به دليل تفاوتهاي ساده ظاهري از نظرماشين متفاوت باشند؛ به همين دليل سعي شده است اين تفاوتهاي سادهي ظاهري برطرف گردد. براي رسيدن به اين هدف، قبل از مقايسه متون، پيشپردازشهايي روي آنها آنجام ميشود. طبيعتا هر چه اين پيشپردازشها قويتر باشد، نتايج حاصل ازمقايسه متون قابل اطمينانتر خواهد بود. لازم به ذکر است که از آن جايي که زبان فارسي جزو زبانهاي غير ساختيافته است با مشکلات بسيار بيشتري نسبت به ساير زبانها مواجه خواهيم شد. متون غيرساختيافته، متوني هستند که پيش فرض خاصي در مورد قالب آنها نداريم و آنها را به صورت مجموعهاي مرتب از جملات در نظر ميگيريم.
در ابتدا بايستي همهي نويسههاي (کاراکترهاي) متن با جايگزيني با معادل استاندارد آن يکسانسازي گردند. در پردازش رسم الخط زبان فارسي، با توجه به قرابتي که با رسم الخط عربي دارد، همواره در تعدادي از حرفها مشکل وجود دارد که از جمله آنها ميتوان به حروف “ک”، “ي”، همزه و … اشاره نمود. در اولين گام بايد مشکلات مربوط به اين حروف را برطرف ساخت. علاوه بر اين، اصلاح و يکسان سازي نويسهي نيمفاصله و فاصله در کاربردهاي مختلف آن و همچنين حذف نويسهي «ـ» که براي کشش نويسههاي چسبان مورد استفاده قرار ميگيرد و مواردي مشابه براي يکسانسازي متون، از اقدامات لازم قبل از شروع فازهای مختلف ميباشد. در اين فاز مطابق با يک سري قاعده دقيق و مشخص، فاصلهها و نيمفاصلههاي موجود در متن براي علاماتي نظير “ها” و “ي” غيرچسبان در انتهاي لغات و همچنين پيشوندها و پسوندهاي فعلساز نظير “مي”، “ام”، “ايم”، “ايد” و موارد مشابه جهت استفاده در فازهای بعدي، اصلاح ميگردند. در ادامه به چند نمونه از اين اصلاحات، اشاره شده است.
با استفاده از اين ويژگي نرمافزار ميتوان همهي نويسههاي (کاراکترهاي) متن را استاندارد نمود. اگر نويسهي غير استانداردي يافت شد، با معادل استاندارد آن جايگزين ميشود. برخی از این اصلاحات در ذیل آورده شده است:
- اصلاح انواع حرف «ک» به معادل فارسي آنان.
- اصلاح انواع حرف «ي» به معادل فارسي آنان.
- بررسي همزه و انواع مختلف املاهاي موجود و اصلاح هر کدام (به عنوان مثال تبديل ؤ به و ، ئ به ي ، أ به ا ، إ به ا و…)
- حذف شناسهي همزه از انتهاي واژههايي مثل شهداء
- حذف شناسه «آ» به «ا» مانند: آب به اب
- اصلاح نويسهي «طور» در واژههايي مانند به طور، آن طور، اين طور و …
- بررسي وجود حرف «ي» در انتهاي لغاتي مانند خانهي ما و اصلاح آنان
- حذف تشديد از واژهها
- تبديل ارقام عربي و انگليسي به معادل فارسي.
- اصلاح نويسهي نيمفاصله
- اصلاح اعراب و حذف فتحه، کسره و ضمه و همچنين تنوينها
- حذف نيمفاصلههاي تکراري
- حذف نويسهي «ـ» که براي کشش نويسههاي چسبان مورد استفاده قرار ميگيرد. مانند تبديل«بــــــــر» و «بـــر» به «بر»
- چسباندن پسوندهاي «تر»، «ترين» و … به آخر واژهها
- اصلاح فاصلهگذاري «ها» در انتهاي واژهها و همچنين پسوندهاي «هاي»، «هايي»، «هايم»، «هايت»، «هايش» و …
- اصلاح فاصلهگذاري «مي»، «نمي»، «درمي»، «برمي»، «بي» در ابتداي واژهها
- تبديل «ة» به «هي»
- تبديل «ب» متصل به ابتداي واژهها به «به»
- اصلاح فاصلهگذاري پسوندها
- حذف فاصلهها و نیمفاصلههای اضافه بکار رفته در متن
- تصحیح فاصلهگذاری در مورد علائم سجاوندی بدین صورت که علائم سجاوندی به لغات قبل از خود میچسبند و با لغت بعد از خود فاصله خواهند داشت.
برای اعمال اصلاحات اولیه قبل از هر عملیاتی، بایستی متون مورد پردازش توسط ابزار Normalizer طراحی شده، مورد اصلاح قرار گیرند.
——————————————————————–
ريشهيابی معنايی در زبان فارسی
هدف از انجام پروژه ریشه یابی معنایی در زبان فارسی، جداسازی کلمات از متن و بازگرداندن کلمات به ريشه اصلی تشکيل دهنده آنهاست. تفاوت اصلی اين پروژه با ساير پژوهشهای انجام شده در زمينه ريشهيابی، قابليت بازگرداندن کلمات به ريشه بدون از بين رفتن معنای آنها در جمله میباشد. بدين منظور به نقش کلمات در جمله توجه ويژهای شده است. در اين طرح از مجموعه افعال گرداوری شده توسط گروه دادگان و لغات پرکاربرد پيکره همشهری استفاده شده است.
——————————————————————–
برچسب گذار نقش کلمات فارسی
برچسب گذاری اجزای واژگانی کلام (Part of Speech tagging) عمل انتساب برچسب های واژگانی به کلمات و نشانه های تشکیل دهنده یک متن است؛ به صورتی که این برچسب ها نشان دهنده نقش کلمات و نشانه ها در جمله باشد. درصد بالایی از کلمات از نقطه نظر برچسب واژگانی دارای ابهام هستند، زیرا کلمات در جایگاههای مختلف برچسب های واژگنی متفاوتی دارند. بنابراین برچسب گذاری واژگانی عمل ابهام زدایی از برچسب ها با توجه به زمینه (متن) مورد نظر است. برچسب گذاری واژگانی عملی اساسی برای بسیاری از حوزه های دیگر پردازش زبان طبیعی(NLP) از قبیل ترجمه ماشینی، خطایاب و تبدیل متن به گفتار می باشد. تا کنون مدل ها و روش های زیادی برای برچسب گذاری در زبان های مختلف استفاده شده است. بعضی از این روش ها عبارتند از:
- مدل مخفی مارکوف (Markov Hidden Model)
- برچسب گذاری مبتنی بر تبدیل یا قانون (Transformation/Rule -based tagger)
- سیستم های مبتنی بر حافظه (Memory-basedSystem
- سیستم های ماکزیمم آنتروپی (Maximum Entropy System)
——————————————————————–
پارسر زبان فارسی
به موازات پیشرفت و تحولات نظری در زبانشناسی جدید، روشهای تحلیل متون و دستورات زبان بوسیلهی رایانه نیز تحول یافته است. منظور از گرامر هر زبان، در دست داشتن یک سری دستورات زبانی قابل فهم برای رایانه است که به کمک آنها بتوان اجزای نحوی یک جمله را به طور صحیح تفکیک نمود. تجزیه و تحلیل جمله و شکستن آن به اجزای تشکیل دهنده مانند گروه های اسمی، فعلی، قیدی و غیره توسط ابزاری به نام پارسر صورت می گیرد که نقش اساسی در طراحی و یا افزایش دقت سایر ابزارهای پردازش متن دارد.
پارسر طراحی شده برای زبان فارسی در این پروژه، از ساختار لغات، موقعیت و ترتیب لغات در جمله، حروف یا عبارات قبل و بعد از آنها و نوع لغات، درخت نحوی یا پارسینگ را برای جملات متن تشکیل می دهد. در واقع عملیات پارسینگ با توجه به ریختشناسی (مطالعه ساختار و حالتهای مختلف یک کلمه) و همچنین دستورات نحوی گرامر زبان فارسی صورت میگیرد. بدیهی است هر چقدر نگارش بکار رفته در جملات و همچنین رعایت علائم سجاوندی طبق اصول و با دقت بیشتری صورت گرفته باشد، عملیات پارسینگ با کیفیت بهتری صورت خواهد گرفت و اجزای تشکیل دهنده ی جمله با عملیات کمتر و ساده تری برچسب زده خواهند شد.
============================================
اگر به دنبال ابزار یا کدهای پیش پردازش متن هستید، حتما دو مطلب زیر را ملاحظه نمایید.
کد حذف ایست واژه ها (Stop Words Remover) در زبان فارسی
کد استفاده از کتابخانه های ابزارهای پردازش متن فارسی (نرمال سازی، تشخیص جملات، تشخیص کلمات، حذف ایست واژه ها و ریشه یابی) حذف کننده کلمات ایست (Stopword Remover) در این ابزار، کلمات کم اهمیت تر و یا ایست واژه ها در صورت تایید کاربر از متون مورد پردازش، حذف میگردند. ایست واژه ها لغاتی پرکاربرد و اغلب کم اهمیتی هستند که … ادامه مطلب »
کد استفاده از کتابخانه های ابزارهای پردازش متن فارسی
کد استفاده از کتابخانه های ابزارهای پردازش متن فارسی در این کد که به زبان سی شارپ نوشته شده است چگونگی استفاده از کتابخانه های ابزارهای پردازش متن فارسی زیر آورده شده است: – نرمالسازی متون فارسی – Normalizer – تشخیص جملات – Sentence Spliter – تشخیص کلمات – Tokenizer – ریشه یابی کلمات – Stemmer – برچسب زنی نحوی کلمات … ادامه مطلب »