مفاهیم و مباحث مطرح در پردازش زبان طبیعی به شرح ذیل است:
- آواشناسی و واجشناسی (phonology and phonetics)؛
- تحلیل لغوی (lexical analysis)؛
- تحلیل ساختواژی (morphology)؛
- تجزیه نحوی (syntax)؛
- پردازش معنایی (semantics)؛
- تحلیل کاربردشناسی (pragmatics)؛
- تحلیل گفتمان (discourse) .
بر همین مبنا، الگوریتمهای بسیاری برای رسیدن به برنامههایی هوشمندتر توسط دانشمندان و متخصصان علوم رایانه، زبانشناسی و ریاضیدانان، طراحی و پیشنهاد شده است؛ به عنوان مثال، میتوان به الگوریتمهای مدل مارکوف و مدل مخفی مارکوف و نیز تلاشهای چندین ساله نوام چامسکی اشاره نمود.
با توجه به ضرورت فعالیت در عرصه پردازش محاسباتی زبان و گسترش تلاشهای محققان، روزبهروز بر این پیشرفتها افزوده میشود و پژوهشگران در سراسر دنیا سعی در بهبود و پیادهسازی این روشها در زبانهای بومی خود دارند. افزایش چشمگیر اطلاعات در اشکال مختلف، مانند: منابع اینترنتی، روزنامهها، کتب و ... لزوم استخراج و ساماندهی دادهها را بیش از پیش نمایان میسازد. یکی از مهمترین مشکلات در سیستمهای استخراج اطلاعات(IE)، شناسایی و سازماندهی واحدهای اطلاعاتی است.
سیستمهای IE، به دو گروه اصلی: نگرشهای دانش مهندسی (که عموماً از سیستمهای نقشمحور استفاده میکنند) و نگرشهای یادگیری ماشینی تقسیم میشوند. در این نگرشها از فهرست اسامی جهت کمک به شناسایی واحدهای اسمی(1) (NE) استفاده میشود. البته سیستمهای نقشمحور معمولاً بیش از سیستمهای یادگیری ماشینی، به این فهرستهای اسامی متکی هستند. چنین فهرستهایی، نه تنها شامل مدخلهای جغرافیایی از قبیل: نام شهرها، کشورها و غیرهاند، بلکه نام افراد (بهویژه نام کوچک)، سازمانهای بزرگ، ماههای سال، روزهای هفته، اعداد را نیز در بر میگیرند.
در حال حاضر، کار شناسایی واحدهای اسمی به طور گستردهای استفاده میشود و نقش بسیار مهمی در حوزههای مختلف پردازش زبان بهخصوص در سیستم پاسخ به سوال، خلاصهسازی متون، بازیابی اطلاعات، سیستم استخراج و ترجمه ماشینی دارد.
واحدهای اسمی (NE)، ماهیتی است که نامگذاری آن بر اساس اطلاق نام خاص مانند: شخص (جعفر)، سازمان (مرکز تحقیقات کامپیوتری)، مکان (قم)، واحد پولی (ریال)، تاریخ (10 ذی حجه)، اعداد (1389) و ... صورت میپذیرد. شناسایی واحدهای اسمی (NER)، فرآیند شناسایی واحدهای اسمی در متون مختلف همچون: متون اینترنتی، روزنامه و ... میباشد.
در دهههای اخیر تلاشهای فراوانی صورت گرفته است تا عملکرد و شناسایی واحدهای اسمی بهبود یابد. وظیفه فرآیند شناسایی واحدهای اسمی، جمعآوری فهرست اسامی یک متن است که با بسیاری از چالشهای زبان عربی از قبیل املای صحیح، پیچیدگی و ابهام زبان سر و کار دارد.
در این مقاله، پس از مقدمه ای که در بالا ذکر شد، به بررسی پیشینه کارِ شناسایی واحدهای اسمی پرداخته، سپس به ساختار اسم در زبان عربی و مشکلات شناسایی آن میپردازیم. در بخش بعد، به روشهای شناسایی واحدهای اسمی و در نهایت، به نتیجهگیری از مباحث مطروحه خواهیم پرداخت.
پیشینه کار
اصطلاح واحدهای اسمی، نخستین بار در سال 1995 در قالب برگزاری ششمین کنفرانس درک پیام(2) (MUC-6)، مطرح شد. در این کنفرانس برای کار شناسایی واحدهای اسمی سه زیرشاخه به نامهای: ENAMEX (برای اسامی خاص)، NUMEX (برای عبارات عددی و ارقام) و TIMEX (برای مضامین در بر گیرنده زمان) تعیین شد. در زیرشاخه ENAMEX کار پردازش واحدهای اسمی در سه گروه: اشخاص (آلبرت انیشتین)، اماکن جغرافیایی (پاریس) و سازمانها (شرکت کوکاکولا) تقسیمبندی شد[1]. تحقیقات در این زمینه ادامه یافت تا در سال 2003-2002 در کنفرانس یادگیری زبان طبیعی (CoNLL)، طبقهبندی اسامی خاص به چهار گروه ارتقا یافت. در این طبقهبندی جدید، علاوه بر سه گروه قبلی (اشخاص، اماکن، سازمانها) نمادها یا اماکن تاریخی مانند برج ایفل نیز اضافه گردید.
این طبقهبندی تداوم چندانی نیافت و در کنفرانس استخراج خودکار اطلاعات (ACE)(3) که در سال 2003 برگزار شد، محققان بر سر طبقهبندی جدیدی به توافق رسیدند، که در آن واحدهای اسمی به شش گروه: اشخاص، ماهیتهای جغرافیایی و سیاسی، سازمانها، تسهیلات و اماکن، وسایل نقلیه و اسلحه تقسیم شد.
در سالهای اخیر، سیستمهای تشخیص و استخراج خودکار واحدهای اسمی، به یکی از محدودههای پرطرفدار تحقیقاتی تبدیل شدهاند. این سیستمها را میتوان به سه کلاس اصلی تقسیمبندی کرد: روشهای مبتنی بر قوانینی که به صورت دستی مشخص شدهاند، سیستمهای مبتنی بر یادگیری ماشینی و سیستمهایی که ترکیبی از دو روش قبل هستند[2].
رهیافتهای مبتنی بر قوانین، روی استخراج نامها با استفاده از تعداد زیادی از مجموعه قوانین ساخته شده به صورت دستی تمرکز نمودهاند. به طور کلی، این سیستمها مجموعهای از الگوها هستند که از مشخصههای: گرامری (مانند ادات سخن)، نحوی (مانند تقدم کلمات) و املایی (مانند بزرگی و کوچکی حروف) در کنار ترکیبی از لغتنامهها استفاده میکنند. این رهیافتها بر پایه استفاده از قوانین کد شده به صورت دستی و مستندات تفسیر شده به صورت دستی کار میکنند. این نوع از مدلها، برای دامنههای خاص نتایج بهتری را حاصل کردهاند و توانایی تشخیص واحدهای پیچیدهای را دارند که روشهای مبتنی بر یادگیری ماشین بهسختی میتوانند آنها را تشخیص دهند. به هر حال، روشهای مبتنی بر قوانین، مشکل غیر قابل حمل بودن و نیز کمبود قابلیت اطمینان را دارند. علاوه بر آن، هزینه بالای ایجاد قوانین نیز به مشکلات این روش اضافه میشود؛ حتی اگر تغییر کوچکی در دادههای ما ایجاد شود، این هزینه افزایش مییابد.
در سیستمهای مبتنی بر یادگیری ماشین، هدف از رهیافت تشخیص واحدهای اسمی، تبدیل مسأله تشخیص به مسأله ردهبندی و از یک مدل آماری ردهبندی برای حل این مسأله استفاده میشود. در این روش، مدل به دنبال تشخیص الگوها و یافتن رابطه آنها با متن و ساختن یک مدل آماری و الگوریتمهای یادگیری ماشین است. این سیستمها نامها را یافته و آنها را بر اساس مدل به دست آمده با استفاده از روشهای یادگیری ماشین به کلاسهای از پیش تعیین شده مانند: اشخاص، مکانها، زمانها و غیره تقسیم میکنند. دو نوع مدل یادگیری ماشین وجود دارند که برای تشخیص واحدهای اسمی مورد استفاده قرار میگیرند؛ یادگیری با ناظر از برنامهای استفاده میکند که با استفاده از یک مجموعه از مثالهای برچسبگذاری شده ردهبندی کردن را یاد میگیرد. این روند آموزش، با «ناظر» (Supervised) نامیده میشود؛ زیرا افرادی که مثالها را برچسبگذاری کردهاند، تفاوتهای درست را به برنامه آموزش دادهاند. روشهای با ناظر به آماده کردن دادههای برچسبگذاری شده برای ساخت یک مدل آماری نیاز دارند؛ اما به دلیل مشکل جدا افتادگی دادهها تا هنگامی که از تعداد زیادی داده استفاده نشود، کارایی خوبی به دست نخواهد آمد. در سالهای اخیر، تعداد زیادی از روشهای آماری بر پایهی روش آموزش با ناظر ارائه شدهاند.
روشهای آموزش بدون ناظر، نوع دیگری از مدل یادگیری ماشین هستند که در آنها، مدل بدون ناظر، بدون هیچ بازخوردی آموزش میبیند. در روش بدون ناظر، هدف اصلی ساختن یک نمایش از دادهها است. این نمایش بعدها میتواند برای فشردهسازی، ردهبندی، تصمیمگیری و اهداف دیگری مورد استفاده قرار گیرد. آموزش بدون ناظر، یک روش پرطرفدار برای سیستمهای تشخیص واحدهای اسمی نیست و سیستمهایی که از این روش استفاده میکنند، اغلب کاملاً بدون ناظر نیستند. بر خلاف رهیافتهای مبتنی بر قوانین، روشهای یادگیری ماشین بهراحتی به حوزهها و زبانهای دیگر منتقل میشوند[2]. به طور خلاصه، در مورد استفاده از روشهای یادگیری ماشین میتوان روشهایی مانند: مدل مخفی مارکوف[3, 4]، روش بیشترین آنتروپی[5-7]، درختهای تصمیم، میدانهای تصادفی شرطی[8]، ماشین بردار پشتیبانی[9-11] و استفاده از جداکننده بیز را برشمرد.
در سیستمهای ترکیبی، رهیافت اصلی، ترکیب کردن روشهای مبتنی بر قوانین و روشهای مبتنی بر یادگیری ماشین و تولید روشهای جدیدی است که از نقاط قدرت هر کدام از این روشها بهره میبرند. عملاً در بسیاری از موارد، از روش های ترکیبی استفاده می شود. مخصوصاً برای زبان هایی مثل عربی به دلیل ساختار این زبان، استفاده از قوانینی که به یادگیری ماشینی کمک کنند، بسیار مفید است. با این حال، پیاده سازی های مختلفی بر روی زبان های عربی و هندی با کمک گرفتن از روشهای مستقل از زبان نیز وجود دارد که به نوعی روش های مبتنی بر یادگیری ماشین صرف تلقی می شوند.
در مورد تشخیص واحدهای اسمی در زبان فارسی، هیچ تحقیق قابل ذکری انجام نشده است. در زبان های شبیه به فارسی با تأکید بر تشخیص واحدهای اسمی، می توان از زبان های اردو، هندی و عربی نام برد. در زبان اردو، مانند فارسی تحقیقات کافی روی این زمینه انجام نشده است؛ اما تلاش های قابل ذکری در زبان-های هندی و عربی انجام شده است. اما در هر دوی این زبان ها، در آخرین مقالات ارائه شده، معیار بازخوانی به بالاتر از 85 درصد آن هم در شرایط خاص نمی رسد. از مهمترین تحقیقات انجام شده در زبان هندی می توان به تحقیقات عاصف اکبال و سیواجی باندیپازیای اشاره کرد.
به دلیل اهمیت استخراج اطلاعات در زبانهای غیر انگلیسی، این فرآیند به حوزه فعالیتهای زبانهایی چون: آلمانی، اسپانیایی، چینی، کرهای، ژاپنی، هندی و همچنین عربی نیز راه یافت. این کاوشها در زبان عربی توسط دانشمندانی چون: ابراهیم الخراشی[12]، الشلابی[13-15] و ... در زمینه فرآیند شناسایی واحدهای اسمی در زبان عربی و یاسین بن عجیبا [5, 6, 8, 16-21]، منا دیاب [17-19, 21]، پائلو روسو [5, 6, 8, 17-21] در ارائه روشهای شناسایی واحدهای اسمی توسعه یافت. [4-8, 17-19, 21].
ساختار واحدهای اسمی در زبان عربی
اسامی اشخاص در زبان عربی مانند اسامی اشخاص در زبانهای دیگر، از ترکیب اسم و فامیل تشکیل نشده؛ بلکه دنبالهای از اسامی است که هر کدام نشانگر مفهوم خاصی است. اسامی اشخاص در زبان عربی متشکل از: اسم، کنیه، نسب، لقب و نسبت میباشد:
- • اسم: مربوط به عنوان حقیقی اشخاص میباشد که حاوی مفاهیم خاصی است، مانند: کریم به معنای بخشنده.
• کنیه: به واسطه فرزند اول (دختر یا پسر) فرد مورد استفاده قرار می گیرد، مانند: ام هاشم و ابوتراب.
• نسب: به واسطه دختر یا پسر یک فرد بودن، به اسم اضافه میشود، مانند: ابن خلدون و بنت عمیر.
• لقب: توصیفی از موقعیت یا جایگاه اعتباری یک فرد میباشد، مانند: ملک عبدالله و شیخ سعدی.
• نسبت: نشاندهنده تعلق فرد به یک شهر (زادگاه)، خانواده و ... میباشد، مانند: بصری و محمد هاشمی.[15]
در یک دسته بندی دیگر، می توانیم اسامی اشخاص در زبان عربی را به سه بخش تقسیم کنیم: 1. ساده، مانند: محمد؛ 2. همراه یک وند، مانند: الحسین و ام محمد؛ 3. مرکب، مانند: محمد بن عبدالله.
چالش های شناسایی واحدهای اسمی در زبان عربی
یکی از چالش های شناسایی واحد های اسمی در زبان عربی نسبت به زبان انگلیسی، به یک تفاوت در رسم الخط زبان عربی و زبان انگلیسی برمی گردد. در رسم الخط زبان انگلیسی، اسامی خاص با حروف بزرگ (Capital) مشخص میشوند. بدین ترتیب، شناسایی واحدهای اسامی بسیار مشکل است و نشانه رسم-الخطیِ خاصی برای تشخیص اسامی از کلمات دیگر وجود ندارد.[15]
صرف در زبان عربی بسیار زیاد است؛ به نحوی که ممکن است یک کلمه ساده بیش از یک وند داشته باشد و از آن به پیشوند و پسوند تعبیر میشوند. پیشوندها حروف تعریف، حرفهای اضافه و قیود ربط میباشند و پسوندها معمولاً مفعولها و صفات ملکی هستند. متون عربی معانی و ابهامهای متفاوتی دارند؛ به عنوان مثال، رجب، ممکن است اسم شخص، ماه یا فعل ترس باشد.
مشکل دیگر در شناسایی اسامی خاص در زبان عربی، نداشتن مصوتهای کوتاه میباشد. هرچند این قابلیت در رسم الخط عربی موجود است، اما مورد استفاده قرار نمیگیرد. ضرورت این موضوع هنگامی احساس میشود که نوشتار بسیاری از اسامی نزدیک به هم بوده، در حالی که معنای متفاوتی دارند و این تفاوتها از طریق مصوتها از یکدیگر متمایز میشوند؛ به عنوان مثال، «حَسَن» و «حُسن» و «حَسِن» هر کدام به صورت «حسن» نوشته میشوند و حال آنکه معانی مختلفی دارند.[12]
پس از ظهور اسلام و گسترش زبان عربی در کشورهای مختلف غیر عربی، اسامی و کلمات مختلفی از زبانهای مختلف وارد زبان عربی شد که خارج از قوانین مرسوم عربی در ساخت اسامی و لغات بود، مانند: الکساندر، الاسکندر، اسکندر.
پیکره های متنی مورد نیاز در شناسایی واحدهای اسمی در زبان عربی، از قبیل: اطلاعات، فهرست اسامی و ابزارهای پردازش زبان طبیعی، نایاباند و رایگان نیستند. البته همان طور که در قسمت های بعدی توضیح خواهیم داد، چنین منابعی در مرکز تحقیقات کامپیوتری علوم اسلامی، به بهترین شکل ممکن در طول سالها جمع آوری و برچسب گذاری شده اند. این منابع بسیار ارزشمند، راه را برای استفاده هرچه بهتر از تکنیک های ماشینی شناسایی واحدهای اسمی در زمینه علوم انسانی فراهم می سازد.
روشهای شناسایی واحدهای اسمی
پس از معرفی واحدهای اسمی و بیان مقدمه بسیار ابتدایی برای شناسایی آنها در زبان عربی، نوبت به معرفی روشهای شناسایی میرسد. این روشها بسته به ویژگیهای متون و نیز امکانات در دسترس، متفاوت است و میتوان آنها را به سه دسته زیر تقسیم نمود:
1.شناسایی به کمک فهرست اسامی (Gazetteers (GAZ)):
در متونی که به یک حوزه و موضوع ویژه اختصاص دارند (مقالات خبری یک منبع خاص، متون حدیثی، متون تاریخی)، واحدهای اسمی خاص (محمود احمدی نژاد در یک مقاله خبری، ابی عبدالله در یک متن حدیثی، هرقل در یک متن تاریخی) به طور متناوب و مشترک مورد استفاده قرار میگیرند. بنابراین، اگر فقط از یک دسته از دادهها و دستور زبان مربوط به آنها استفاده شود، کار شناسایی واحدهای اسمی تا حد ممکن تسهیل میگردد. آزمایشها نشان دادهاند که استفاده مجدد از واحدهای اسمی در متون خاص زیاد اتفاق میافتد. بدین ترتیب، با تهیه فهرستی از اسامی خاص بهراحتی میتوانیم به یک مبنای بسیار خوب دست یابیم[3]. این روش، ما را در تهیه سریع یک سیستم NER که بتوان روشهای دیگر را بر اساس آن اندازهگیری و ارزیابی کرد، یاری میرساند. فهرست اسامی، روشی به دست میدهد که از طریق آن میتوان با استفاده از حجم اندکی از متون (اطلاعات)، به دادههای خوبی جهت استفاده در تحقیق دست یافت. این روش برای ارزیابی و سنجش اهداف نیز مفید است؛ زیرا هرگونه ارزیابی نیازمند در نظر گرفتن میزان دشواری کار است، تا از این طریق بتوان به یک نتیجه رضایتبخش دست یافت. استفاده از این روش در مرکز تحقیقات کامپیوتری علوم اسلامی به طور گستردهای صورت میگیرد. فهرست اسامی تهیه شده، بر اساس جمعآوری دستی و یا به کمک ابزارهای نرمافزاری در طی سالها گردآوری شده است.
اگرچه استفاده از روش فهرست اسامی موجب تحصیل اطمینان نسبت به صحت واحدهای اسمی شناساییشده میشود، اما استفاده از این روش دارای محدودیتهای متعددی است. از جمله این محدودیتها میتوان به فرآیند دشوار، زمانبر و پر هزینه برچسبگذاری متون و نیز عدم توانایی این روش در شناسایی اسامی خارج از فهرست موجود، اشاره نمود.
2. استفاده از قوانین (Rule base):
با استفاده از قوانین ساده گرامری، نه تنها میتوانیم نمونههایی از واحدهای اسمی را از دادههای نوشتاری اولیه جمعآوری کنیم، بلکه اطلاعاتی از قبیل گروههای دستوری کلماتی که قبل یا بعد از واحدهای اسمی قرار میگیرند، مانند: اسم، فعل، صفت، ضمیر و... را نیز میتوانیم به دست آوریم. تجزیه و تحلیل چنین گروههای دستوری، ما را قادر میسازد تا الگوهای بهتری برای شناسایی واحدهای اسمی بنویسیم. با توجه به ساختار اسم در زبان عربی و ویژگیهای خاص این زبان که به قسمتی از آن در بالا اشاره شد، میتوان به الگوهای مفیدی برای شناسایی واحدهای اسمی خاص دست یافت؛ برای مثال، میتوان به شناسایی واحدهای اسمی از طریق استخراج اوزان و تطبیق با بابهای مهم در ساخت اسامی مانند مُفَعَّل (محمد، مظفر) و یا فاعل (صادق، قاسم، کاظم)، ریشهیابی و تطبیق آن با ریشههایی که بیشتر در کار ساخت اسامی خاص دخیل هستند، مانند: حمد (محمد، حامد، حمید)، یا استفاده از ارتباطدهندهها، مثل «ابن» و پیشوندها، مانند «ام» اشاره نمود. [12]
در شکل زیر مهمترین باب ها، ریشه و وندهایی که در اسامی عربی به کار می روند، آورده شده است[12]:
اگرچه روش مبتنی بر قاعده، قدرت عمل بیشتری نسبت به روش فهرست اسامی در اختیار ما قرار میدهد و صرفهجویی قابل توجهی از زمان و هزینه را در بر دارد، اما استفاده از این روش دارای محدودیتهایی است. یکی از محدودیتهایی که در استفاده از روش مبتنی بر قاعده به آن برخورد میکنیم، نسبی بودن الگویهای شناخت میباشد؛ برای مثال، باید به بابها اشاره نمود. برخی از بابها علاوه بر ساخت اسامی خاص، در ساخت مشتقات دیگر زبان عربی سهیم هستند؛ مثلاً در این زمینه از وزن اَفعَل، «احمد» به عنوان اسم ساخته شده است؛ ولی «اَسرَع» نیز که جز اسامی خاص نیست، از همین باب ساخته شده است. در ریشهها نیز وضع به همین منوال میباشد. تعیین قاعدهای که از جامعیت برای شناخت واحد اسمی برخوردار باشد، کار دشواری است. یکی دیگر از مشکلات شناخت اسامی خاص در روش مذکور، شناسایی نامهایی است که از زبانهای دیگر وارد زبان عربی شده و یا به طور بیقاعده ساخته میشوند.
3. به کارگیری الگوریتم های یادگیری ماشین برای شناسایی واحدهای اسمی:
روشهای مختلفی برای به کارگیری راه حل یادگیری ماشین(4) در کار شناسایی واحدهای اسمی وجود دارند، مانند: میدانهای تصادفی شرطی، حداکثر آنتروپی، مدل مخفی مارکوف(5)، شبکه نویزی(6)، ماشین بردار پشتیبانی(7). در این مقاله، به طور خاص مثالی از کاربرد میدان های تصادفی شرطی، که خود به تعبیری مدل بسط داده شده مدل مخفی مارکوف است، در شناسایی واحدهای اسمی را معرفی می-کنیم. طی سالهای اخیر، میدانهای تصادفی شرطی مورد توجه محققان قرار گرفته و نتایج قابل قبولی هم از استفاده این مدل دریافت شده است.[16, 21, 22]
میدانهای تصادفی شرطی
میدانهای تصادفی شرطی، یک بستر برای ساخت مدلهای آماری برای جداسازی و برچسبزنی دادههای ترتیبی است. میدانهای تصادفی شرطی، برتریهای زیادی را نسبت به مدلهای مشابه مانند مدل مخفی مارکوف و گرامرهای تصادفی برای چنین کارهایی پیشنهاد میدهد. از جمله، توانایی کمکردن فرض مستقل بودن که در آن مدلها وجود دارد.[23]
میدانهای تصادفی شرطی همچنین از محدودیتهای پایهای مدلهای بیشترین آنتروپی، مدل مخفی مارکوف و دیگر مدلهای مشابه بر پایه مدلهای گرافیکی مستقیم جلوگیری میکند. برای معرفی اجمالی این مدل، تفاوت آن با مدلهای مخفی مارکوف و بیشترین آنتروپی، بیان میشود:
همانطور که قبلاً نیز اشاره شد، مدل مخفی مارکوف، یک مدل تولیدی(8) است که هدف آن پیدا کردن پارامترهایی برای بهینه کردن یک مقدار احتمالی است. در این مدل فرض میشود که خصیصهها از یکدیگر مستقل هستند. مدل بیشترین آنتروپی، مانند مدل میدانهای تصادفی شرطی، یک مدل جداسازی(9) است. هدف همه این مدلها، بهینهکردن یک مقدار احتمالی است؛ اما در مدل بیشترین آنتروپی، خصیصهها دیگر مستقل فرض نمیشوند. از طرفی، مشاهدات آینده در انتخاب خصیصه دخالت داده نمیشوند. در مدل میدانهای تصادفی شرطی نیز، شرط استقلال وجود ندارد. اما وقتی برچسبگذاری میشود، مشاهدات آینده به شیوهای خاص در آن دخالت داده میشوند. در مقام مقایسه، سرعت مدل مخفی از همه بالاتر است و مدل میدانهای تصادفی شرطی نسبتاً کند محسوب میشود.[23, 24]
معیارهای ارزیابی
واحد اسمی، یک شیئ اسمی مورد توجه مانند یک شخص، سازمان یا مکان است. این عملیات شامل سه زیروظیفه با نامهای: اسامی نهادی، عبارات زمانی و عبارات عددی است. عباراتی که باید نشانهگذاری شوند، شناسههای غیرتکراری از واحدها هستند (سازمانها، اشخاص، مکانها)، زمانها (تاریخها، زمانها) و کمیتها (مقادیر پولی، درصدها)[1]. این وظیفه متشکل از شناختن همه نمونههای این سه نوع از عبارات در هر متن، از مجموعه تست و ردهبندی آنها است.
از آنجایی که سیستم یا روش باید یک خروجی منحصر به فرد و بدون ابهام برای هر یک از رشتههای مربوطه در متن بیابد، ارزیابی نمیتواند بر اساس دیدی از معماری سیستم خط لوله که در آن تشخیص واحدهای اسمی باید به طور کامل مانند یک پیشپردازش جملهای و تحلیل کلامی کنترل شود، پایهگذاری گردد. در این عملیات، سیستم باید تشخیص دهد یک رشته چه چیزی را نمایش میدهد؛ نه اینکه فقط ظاهر صوری آن چیست. گاهی اوقات جواب درست، ظاهر صوری است؛ حتی میتوان گفت در اکثر مواقع همینطور است؛ اما نه همواره و میتوان از طریق تطبیق الگوی محلی، به این هدف دست یافت. در موارد دیگر، جواب صحیح، ظاهر صوری نیست، مانند یک کلمه که با حرف بزرگ شروع شده است و نشانگر یک مکان، شخص یا سازمان است و پاسخ باید با استفاده از تکنیکهایی که اطلاعات را از یک متن بزرگتر یا لیستهای ارجاع بیرون میکشند، به دست آید.
یک مدل امتیازدهی که برای ارزشیابی کنفرانس درک پیام و عملیات واحدهای چندزبانی مورد استفاده قرار میگیرد، دو معیار «دقت»(10) یا اختصاراً P و «بازخوانی»(11) یا اختصاراً R است. این معیارها در حقیقت از تعاریف موجود در حوزه بازیابی اطلاعات گرفته شدهاند و تعریف آنها به صورت زیر است:از ترکیب این دو معیار از کارایی، یک معیار دیگر حاصل میشود که در حقیقت متوسط میانگین همساز(12) این دو معیار است و به آن معیارF یا F-measure میگویند:همچنین در این فرمولها، اصطلاح «پاسخ»(13) در فرمولهای بالا، اشاره به جوابهای تحویل داده شده توسط یابنده اسامی میکند و اصطلاح «کلید»(14) یا «فایل کلید»(15) به معنای یک فایل نشانگذاری شده که حاوی پاسخهای صحیح میباشد، به کار رفته است[10].
برای مثال، در مقالات شرکت کننده در کنفرانس درک پیام، یک پاسخ صحیح از یک یابنده نام، پاسخی است که هم برچسب آن و هم هر دو محدودههای آن درست باشند.
سه نوع از برچسبها وجود دارند که هر کدام از آنها از یک صفت(16) برای مشخص کردن یک واحد خاص استفاده میکنند. انواع برچسبها و واحدهایی که به آنها اشاره میکنند، در زیر آورده شدهاند:
- - هویت یا "Entity" یا "ENAMEX": اشخاص، سازمانها و مکانها.
- عبارت زمانی یا "Time expression"یا "TIMEX": تاریخ، زمان.
- عبارت عددی یا "Numeric expression"یا "NUMEX": زمان، درصد.
یک پاسخ نیمهصحیح، پاسخی است که برچسب (هم نوع و هم صفت) درست است، اما فقط یکی از محدودهها صحیح است؛ به گونهای دیگر، یک پاسخ نیمهصحیح است، اگر فقط نوع برچسب (و نه صفت آن) و هر دو محدودهها صحیح باشد.[10]
نرمافزار ارزیاب
برای ارزیابی تحقیقات انجام شده بر اساس معیارهای استاندارد که در بخش قبل معرفی شده اند، یک نرم-افزار ارزیاب در مرکز طراحی شده است. هدف اصلی از پیادهسازی این سامانه، فراهم آوردن نرم افزاری است که بتواند به عنوان ارزیاب در هر سیستم نشانهگذاری عمل کند. هرچند در این نسخه، محدودیتهایی بر روی سیستم نشانهگذاری اعمال شده است، اما این محدودیتها در اکثر قریب به اتفاق سیستمها رعایت میشود.
• بخشهای سیستم: سامانه ارزیاب ارائهشده دارای یک برنامه کاربردی برای تولید فایل تنظیمات، هسته اصلی سامانه و یک برنامه کاربردی برای نشان دادن چگونگی استفاده از سامانه است.
در برنامه تولید فایل تنظیمات، مشخصاً تنظیماتی برای سیستم ارزیاب صورت میپذیرد. این تنظیمات عبارتاند از تعریف تعداد دلخواه برچسب که به دو صورت موجودند:
- برچسبهایی که با یک رشته ابتدایی و یک رشته انتهایی مشخص میشوند؛ مثلاً به صورت زیر:
<n>Majid</n> is a boy who lives in <l>Tehran</l>.
در اینجا دو برچسب وجود دارند که یکی از آنها با <l> شروع شده و با <l/> پایان میپذیرد.
- برچسبهایی که با یک رشته شروع شده و به تعداد n کلمه بعد ادامه پیدا میکنند؛ برای مثال:
#NMajid is a boy who lives in #LTehran.
با این تفاصیل، سیستم ارزیاب میتواند در هر سیستمی با محدودیتهایی که در آینده به آنها خواهیم پرداخت، کار کند.
هسته اصلی، با دریافت فایل تنظیمات که در مرحله قبل ساخته شد، به ارزیابی سیستم بر روی یکی از برچسبها میپردازد.
برای تست هسته سیستم نیز یک برنامه کاربردی نوشته شده است که با دریافت ورودیهای لازم، عملیات ارزیابی را روی تک تک برچسبها انجام میدهد.
• پیادهسازی: مهمترین بخش های سامانه ارزیاب به این شرح است:
- - یک ساختار اطلاعاتی که برای نگهداری اطلاعات مربوط به یک برچسب مورد استفاده قرار میگیرد.
- - یک ساختار اطلاعاتی که برای نگهداری اطلاعات مربوط به تنظیمات ارزیاب مورد استفاده قرار میگیرد. در این نسخه، تنها همان برچسبها اطلاعات ارزیاب را تشکیل میدهند. پس ماژول شامل فهرستی از برچسبها است.
- - هسته ارزیاب، که مهمترین قسمت سیستم است. ورودی آن، یک شیئ از نوع تنظیمات ارزیاب است. این کلاس دارای دو تابع مهم است؛ نخست، تابعی که با گرفتن فایل برچسب گذاری شده، میتواند تعدادی از برچسبهای موجود در ماژول را از آن حذف کند. این تابع بسیار کاربردی است؛ زیرا میتواند فایل بدون برچسب را از فایل برچسبگذاری شده تولید کند و فایل تولید شده میتواند به الگوریتم مورد نظر ارسال شود. تابع دوم، تابعی است که یک برچسب، فایل برچسبگذاری شده معیار و فایل برچسبگذاری شده توسط الگوریتم را گرفته و سه پارامتر اصلی دقت (precision)، بازخوانی (recall) و معیار F را برای آن برچسب محاسبه میکند.
- - یک بخش کاربردی که توابعی برای بازخوانی و ذخیره فایل دارد و به طور مستقیم با ارزیابی هیچ ارتباطی ندارد.
الگوریتم پیادهسازیشده نیز بسیار ساده است.
ابتدا کاراکترهایی که ممکن است خللی در کار ایجاد کنند، مانند نقطه و ویرگول به کلی از دو متن حذف میشوند. سپس همه برچسبها غیر از برچسبی که میخواهیم ارزیابی روی آن صورت پذیرد، از متنها حذف میشوند؛ البته این دو عملیات در یک پویش متن و همزمان انجام میشوند. تا اینجا رشتهای داریم که حاوی کلمات، فاصلهها و برچسب مورد نظر است. کلمات با حایل فاصله جدا میشوند و فاصلههای اضافی حذف میگردند. سپس همه کلمات برچسب گذاری میشوند (یا آن برچسب را دارند یا ندارند) و برچسبها بهسادگی مقایسه میشوند. بعد از به دست آمدن چهار پارامتر اصلی (17)tp، (18)tn، (19)fp، (20)fn، مقادیر مورد نظر ارزیابی محاسبه میشوند. برای اینکه بتوان پارامترهای دیگری را هم محاسبه کرد، چهار پارامتر پایهای نیز به فراخواننده ارزیاب پاس میشوند.
• محدودیتهای سیستم: در این سیستم چند محدودیت اصلی وجود دارد که همان طور که خواهید دید، برای سامانه ما محدودیت های بزرگی تلقی نمی شوند:
- کاراکترهای نقطه، ویرگول و دو نقطه، نمیتوانند برای مشخص کردن شروع و پایان برچسبها مورد استفاده قرار گیرند.
- برچسبهای تو در تو به صورتی که یک برچسب داخل همان برچسب باشد، پشتیبانی نمیشود؛ برای مثال، مورد زیر پشتیبانی میشود:
<d>asddsada<f>das dsadsag</f>dsadsahdsagjdsa</d>
اما مورد بعدی، پشتیبانی نمیشود:
<d>asddsada<d>das dsadsag</d>dsadsahdsagjdsa</d>
زیرا یک برچسب d داخل یک برچسب d دیگر آمده است. این نوع برچسبگذاری در بیشتر کاربردها نیز وجود ندارد و در مورد دوم، همه عبارت یک برچسب می خورد و یا برچسب داخلی حالت خاصی از برچسب بیرونی است.
- در صورتی که برچسبگذاری درست انجام نشده باشد، مثلاً برچسب d شروع شده باشد، اما پایان نیافته باشد و یا برچسب 4 کلمهای f در انتهای فایل واقع شود که سه کلمه بیشتر بعد از آن وجود نداشته باشد، عملکرد الگوریتم قابل پیشبینی نیست؛ البته در بعضی موارد خاص ممکن است خطایی نمایش داده نشود، اما جوابها غلط باشند.
نتیجهگیری و آینده کار
در این مقاله ما به آزمایشهای مقدماتی در مورد بهبود عملکرد سیستم شناسایی واحدهای اسمی زبان عربی پرداختیم. دامنه آزمایشها در زمینه متون اسلامی است که در تحقیقات انجامشده توسط محققان این حوزه، استفاده از مدل میدانهای تصادفی شرطی، عملکرد بهتری را نسبت به مدل مخفی مارکوف حاصل نموده است. با توجه به ریخت شناسی پیچیده زبان عربی، تقطیع بر روی داده ها بسیار مشکل است.
در آینده، قصد داریم تا با افزایش نظم پیکره متنی نشانه گذاری شده قدرتمندی که در اختیار ما است و با ترکیب آن با روشهای یادگیری ماشین، به عملکرد بالاتری نسبت به سیستم های مشابه دست پیدا کنیم. همچنین طرحی برای آزمایش مجموعه مشخصات مختلف، برای استخراج هر چه دقیق تر در کلاس های مختلف تعبیه کنیم. علاوه بر این، ما برنامه ای برای انجام یک مطالعه مقایسه ای بین روش ما و سایر روش های یادگیری ماشین (ماشین بردار پشتیبان، مدل مخفی مارکوف، حداکثر آنتروپی، میدانهای تصادفی شرطی و غیره) داشته باشیم و به یک مدل ترکیبی دست پیدا کنیم.
سپاسگزاری
در پایان لازم میدانم از زحمات مهندس حسین جوزی و مهندس مجید عسگری بیدهندی و نیز سرکار خانم منصوره فریدونی تقدیر و تشکر نمایم.
پی نوشت ها:
1. Name Entity.2. Message Understanding Conference.
3. Arizona Church Equipping Conference.
4. Machine learning.
5. Hidden Markov Model (HMM).
6. Noisy Network (NN).
7. Support Vector Machine (SVM).
8. Generative.
9. Discriminative.
10. Precision.
11. Recall.
12. Harmonic Mean .
13. Response .
14. Key .
15. Key file .
16. Attribute .
17. True Positive.
18. True Negative.
19. False Positive.
20. False Negative.
منابع:
[1]R. Grishman and B. Sundheim, "Message Understanding Conference - 6: A Brief History," 1995.[2]W. Anwar, et al., "A Survey of Automatic Urdu Language Processing," in 5th International Conference on Machine Learning and Cybernetics, Dalian, Chine, 13-16 August 2006.
[3]R. Ageishi and T. MIURA, "Named Entity Recognition Based on Hidden Markov Model in Part-Of-Speech Tagging," in 1st International Conference on the Applications of Digital Information and Web Technologies (ICADIWT 2008), Czech Republic, 4–6 August, 2008.
[4]A. Ekbal and S. Bandyopadhyay, "A Hidden Markov Model Based Named Entity Recognition System: Bengali and Hindi as Case Studies."
[5]Y. Benajiba, et al., "ANERsys: An Arabic Named Entity Recognition System Based on Maximum Entropy," in CICLing, 2007.
[6]Y. Benajiba and P. Rosso, "ANERsys 2.0: Conquering the NER Task for the Arabic Learning by Combinig the Maximum Entropy with POS-tag Information," in 3rd Indian International Conference on Artificial Intelligence, 2007.
[7]S. K. Saha, et al., "Named Entity Recognition in Hindi using Maximum Entropy and Transliteration."
[8]Y. Benajiba and P. Rosso, "Arabic Named Entity Recognition using Conditional Random Fields," in 6th Int. Conf. on Language Resources and Evaluation, LREC-2008, Marrakech, Morocco, May 26-31 of 2008.
[9]Y.-C. Wu, et al., "Extracting Named Entites Using Support Vector Machines," in Knowledge Discovery in Life Science Literature. vol. 3886, ed Heidelberg: Springer Berlin, 2006, pp. 91-103.
[10]A. Mansouri, et al., "A New Fuzzy Support Vector Machine Method for Named Entity Recognition," in International Conference on Computer Science and Information Technology, Singapore, 25 August-2 September, 2008.
[11]A. Ekbal and S. Bandyopadhyay, "Named Entity Recognition using Support Vector Machine: A Language Independent Approach," International Journal of Electrical, Computer, and Systems Engineering, Cape town, 2-8 May 2010.
[12]I. A. Alkharashi, "Person Named Entity Generation and Recognition for Arabic Language."
[13]R. Al-Shalabi and G. Kanaan, "Constructing An Automatic Lexicon for Arabic Language," Interantional Journal of Computing and Information Sciences, August 2004.
[14]R. Al-Shalabi, et al., "Proper Noun Extracting Algorithm for Arabic language."
[15]R. Al-Shalabi, et al., "Proper Noun Extracting Algorithm for Arabic Language," presented at the International Conference on IT to Celebrate S. Charmonman's 72nd Birthday, 2009.
[16]Y. Benajiba, "Arabic Named Entity Recognition," Sociedad Espa?ola para el Procesamiento del Lenguaje Natural, 2010.
[17]Y. Benajiba, et al., "ARABIC NAMED ENTITY RECOGNITION: AN SVM APPROACH," 2004.
[18]Y. Benajiba, et al., "Arabic Named Entity Recognition using Optimized Feature Sets," in 2008 Conference on Empirical Methods in Natural Language Processing, Honolulu, 2008, pp. 284-293.
[19]Y. Benajiba, et al., "Arabic Named Entity Recognition: A Feature Driven Study," IEEE Transactions on Audio, Speech, and Language Processing, vol. 10, July 2009.
[20]Y. Benajiba and P. Rosso, "Arabic Named Entity Recognition using Conditional Random Fields."
[21]Y. Benajiba, et al., "Using Language Independent and Language Specific Features to Enhance Arabic Named Entity Recognition," International Arab Journal of Information Technology, vol. 6, November 2009.
[22]S. AbdelRahman, et al., "Integrated Machine Learning Techniques for Arabic Named Entity Recognition," IJCSI International Journal of Computer Science Issues, vol. Vol. 7, No 3, July 2010.
[23]J. Lafferty, et al., "Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data," in Eighteenth International Conference on Machine Learning, 2001.
[24]J. R. Finkel, et al., "Incorporating non-local information into information extraction systems by Gibbs sampling," in 43rd Annual Meeting on Association for Computational Linguistics, 2005