رفتن به نوشته‌ها

بازیابی اطلاعات بین زبانی – CLIR

شاید برای شما هم پیش آمده باشد که وقتی یک متن را به فارسی در گوگل جستجو می‌کنید، نتایجی که برای شما بازگردانده می‌شود به زبان انگلیسی است (اگر اتفاق نیافتاده کلمه مایکروسافت رو جستجو کنید :دی). اصلاحا به این قضیه بازیابی اطلاعات بین زبانی یا Cross lingual IR یا Multi-lingual IR یا Bilingual IR یا به طور خلاصه شده CLIR می‌گویند. یعنی شما به یک زبان مثلا فارسی (X) جستجو کردید ولی نتایجی که برای شما آورده شده به زبان دیگری مثلا انگلیسی (Y) بود (البته گوگل ترکیبی عمل می‌کند و بازیابی اطلاعات آن مختص Cross lingual IR نیست).

بازیابی اطلاعات بین زبانی

 

این نوع بازیابی اطلاعات کاربردهای بسیاری می‌تواند داشته باشد. مثلا فرض کنید در Ebay دنبال یک کالا می‌گردید و از قضا یک نفر ژاپنی آن را در سایت گذاشته است. شما به دنبال همون کالا به زبان فارسی در سایت میگردید (کوئری که برای جستجو میزنید به زبان فارسی است). با استفاده از این تکنیک Ebay میتواند کالایی که به زبان ژاپنی در سایت قرار داده شده است را به شما پیشنهاد دهد.

تعاریف مختلفی از CLIR ارائه شده است که در مقاله آقای Hull & Grefenstette به چند مورد آن اشاره شده و ماهم در پایین چند تعریف ارايه شده در این مقاله را بررسی می‌کنیم:

  • تعریف ۱: بازیابی اطلاعات به زبان غیر انگلیسی را Cross Lingual IR میگویند. اولین باری که بحث Cross lingual IR مطرح شد در مسابقات TREC بود. این مسابقه روی زبان اسپانیایی برگزار شد و به همین خاطر عده‌ای به بازیابی اطلاعات روی زبان غیر انگلیسی Cross lingual IR گفتند.
  • تعریف ۲: بازیابی اطلاعات روی اسناد چند زبانه را Cross Lingual IR میگویند. یک عده دیگر گفتند بازیابی اطلاعات بین زبانی به این معناست که اسناد ما به چندین زبان مختلف باشد (فارسی، عربی و ترکی) و با یک کوئری مثلا به زبان انلگیسی  بتوانیم تمام اسناد مرتبط را بازیابی کنیم.
  • تعریف ۳: بازیابی اطلاعات با کوئری چندزبانه روی اسناد تک زبانه را Cross Lingual IR میگویند. عده‌ای دیگر دقیقا برعکس تعریف بالا را ارائه کردند و گفتند کوئری میتواند به زبان‌های مختلف باشد ولی اسناد ما تک زبانه هستند.
  • و تعاریف دیگر…

یک سیستم بازیابی اطلاعات (تک زبانه) به صورت زیر است:

یک سیستم بازیابی اطلاعات

در این سیستم، تعدادی زیادی سند دارید که در ابتدا آنها را ایندکس می‌کنیم. هنگامی که کاربر یک کوئری فرستاد آن را ایندکس و سپس تبدیل به یک بردار می‌کنیم و با تمامی اسناد مطابقت میدهیم (matching) و بر اساس بیشترین شباهت،‌ اسناد را رتبه‌بندی (ranking) می‌کنیم (منظور از ایندکس در شکل بالا پیش پردازش‌هایی که روی متن انجام می‌شود) .

چون در بازیابی اطلاعات بین زبانی، زبان کوئری و زبان اسناد متفاوت هستند به همین خاطر Matching نمی‌تواند مانند سیستم تک زبانه انجام شود و درستی صورت نمیگیرد و هیچ سندی برای شما بازیابی نمی‌شود. در نتیجه ما باید یک ترجمه انجام دهیم. این ترجمه می‌تواند روی اسناد، یا کوئری یا هردو صورت بگیرد. از آنجایی که تعداد اسناد بسیار زیاد هستند عملا ترجمه سندها امکان پذیر نیست و اکثر روش‌های ارائه شده کوئری را ترجمه می‌کنند.
پس اگر بخواهیم یک نمای کلی از سیستم جدید با ماژول ترجمه ارائه کنیم به صورت زیر خواهد بود که یک ترجمه بر روی کوئری صورت می‌گیرد بعد Matching را انجام می‌دهیم.

بازیابی اطلاعات بین زبانی

اگر یک سیستم CLIR را به شکل دیگر نمایش دهیم میتوانیم بگوییم از چهار جز اصلی تشکیل شده است:

  • قبل از ترجمه: در واقع همان پیش‌پردازش‌هایی است که ما روی سند یا کوئری انجام می‌دهیم (حذف لغات پرتکرار، حذف کاراکترهای اضافی و stemming و…)
  • ترجمه: قسمت اصلی بازیابی اطلاعات بین زبانی که در قسمت بعدی به توضیح آن می‌پردازیم.
  • پس از ترجمه: معمولا این بخش را انجام می‌دهند تا کوئری ترجمه شده را بهبود دهند. مثلا ترجمه‌ای که در مرحله قبل انجام شده است را چک می‌کنند تا معنادار باشد.
  • بازیابی اطلاعات: این قسمت هم دقیقا مثل بازیابی اطلاعات تک زبانه است و فرقی ندارد. شما یک کوئری دارید و تعداد زیادی سند و قرار است که بر اساس شباهت اسناد را رتبه‌بندی کنید.

اجزای اصلی بازیابی اطلاعات بین زبانی

ماژول ترجمه:

قسمت اصلی یک سیستم بازیابی اطلاعات بین زبانی، ماژول ترجمه است و یک جورایی می‌توان گفت که قلب یک سیستم بازیابی اطلاعات بین زبانی ماژول ترجمه است. بر اساس اینکه ترجمه به چه روشی انجام می‌گیرد دسته بندی سیستم‌های بازیابی اطلاعات بین زبانی شکل می‌گیرد. شکل زیر، رویکردهای کلی ترجمه که معمولا در این سیستم‌ها انجام می‌شود را نشان میدهد:

 

روشهای ترجمه متن در بازیابی اطلاعات

همانطور که در شکل بالا مشاهده می‌کنید و احتمالا حدس میزنید روشهای مستقیم (direct translation) به این صورت است که زبان x را به زبان y ترجمه می‌کنند. ولی در روشهای غیرمستقیم (indirect translation) معمولا از یک زبان واسط برای ترجمه استفاده می‌کنند یا کوئری را به فضای معنایی دیگری می‌برند که مستقل از زبان باشد (بعدا با مثال این قسمت را بررسی میکنیم).

 

همانطور که در شکل بالا مشخص شده است روشهای مستقیم به سه دسته تقسیم میشوند:

  1. روشهای مبتنی بر دیکشنری: این ساده‌ترین روش برای پیاده سازی است. کافی است شما یک دیکشنری داشته باشید و تک تک کلمات کوئری را با استفاده از دیکشنری ترجمه کنید. همانطور که خب حدس می‌زنید این روش زیاد خوب عمل نمی‌کند و کارایی این روش ۴۰ تا ۶۰ درصد سیستمهای تک زبانه است.
  2. روشهای مبتنی بر یادگیری ماشین: میتوان گفت بهترین نتایجی که بدست آمده است در این قسمت بوده است. در سال ۲۰۰۹ گوگل در مسابقات CLEF به دقت ۹۹٪ درصدی دست یافت که همه رو متحیر کرد… و حتی بعضی‌ها گفتند که گوگل می‌تواند مشکل بازیابی اطلاعات بین زبانی را حل کند!
    روشهایی که در این گروه قرار می‌گیرند بسیار متنوع و گسترده هستند و در این پست نمیشه بحث‌اشون رو باز کرد ولی به طور خلاصه میشه گفت منظور از یادگیری ماشین این است که یک سیستم رو جوری آموزش بدهیم که با دادن یک جمله ورودی یک جمله ترجمه شده مناسب برای ما برگرداند. روشهای متنوعی برای این دسته بندی ارائه شده از جمله: Neural Machine translation یا Statistical Machine Translationiها و…
  3. روش‌های مبتنی بر پیکره: این روشها در سالهای اخیر کمرنگ تر شدند و یک جورایی زیر مجموعه یادگیری ماشین در نظر گرفته میشوند. ایده این روشها این است یک پیکره دو زبانه (bi lingual corpura) داشته باشیم و ترجمه کوئری را پیدا کنیم.

 

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

بازیابی اطلاعات بین زبانی به transitive translation: فرض کنید میخواهید از زبان آلمانی به زبان انگلیسی بازیابی اطلاعات انجام بدهیم. و فرض کنید هیچ دیکشنری برای زبان آلمانی به زبان انگلیسی وجود ندارد!!! ولی برای هردو زبان دیکشنری‌های اسپانیانی و هلندی وجود دارد. ابتدا کلمه مورد نظر در زبان آلمانی را به زبان اسپانیایی و هلندی ترجمه میکنیم. به ازای هر کلمه چندین ترجمه وجود دارد. خب حالا تک تک کلمات ترجمه شده به زبان اسپانیایی و هلندی را به انلگیسی ترجمه میکنیم و اشتراک آنها را به عنوان ترجمه انگلیسی در نظر میگیریم.

ترجمه بین زبانی با روش transitive

 

بیشتر مطالب فوق از مقاله  Translation techniques in cross-language information retrieval گفته شده است که برای جزییات بیشتر میتوانید به آن مراجعه کنید. اسلایدهای مطالب بالا هم گفته شده هم در slideshare هست.

 

منتشر شده در پردازش زبان طبیعی

یک دیدگاه

  1. ak ak

    ممنون از توضیحات ساده و شیواتون.
    خیلی خوب بود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *