نویسه‌گردانی انگلیسی به فارسی

نویسه‌گردانی یعنی تبدیل خودکار صورت یک کلمه از زبان مبدا به زبان مقصد، به طوری که تلفظ کلمه حفظ گردد. برای مثال هدف از نویسه گردانی تبدیل "salam" به "سلام" می‌باشد.

مقدمه

در اینترنت، در پاسپورت، در مکاتبات بین المللی، در مسابقات ورزشی و فرم ها و . . . ناگزیر هستیم تا نام خود را با حروف انگلیسی بنویسیم.همچنین گاه برخی در ارسال SMS کلمات فارسی را با حروف انگلیسی می نویسند.همواره نمایش شکل نوشتاری و تلفظی نام های خاص جغرافیایی و اشخاص و اصطلاحات فرهنگی فارسی در متن های غیرفارسی و به ویژه اروپایی مشکل و نابسامان بوده است. تنها نگاهی به چند دایره المعارف مانند ایرانیکا، اسلام، بریتانیکا و یا برخی از کتاب های تاریخ، تاریخ ادبیات و مانند اینها نشان می دهد که چه شیوه های متفاوتی وجود دارد. اغلب آنها آمیزه ی نامشخصی از نویسه گردانی و آوانویسی و نماینده ی مخلوطی از گونه های کهن و امروزی فارسی و حتی عربی هستند. در زمینه ی کتابداری و اطلاع رسانی که نام ها، عنوان ها و کلیدواژه ها در مرتب سازی، جستجو و بازیابی اطلاعات نقش اساسی دارند، مسئله جدی تر می شود و هنگامی که صحبت از رایانه و خودکارسازی این فعالیت ها به میان آید، این ناهماهنگی ها کار را ناممکن می سازد.
نویسه گردانی (حرف نگاری یا حرف نویسی) شیوه ای است که در آن یک حرف از یک نظام نوشتاری را با حرفی از نظام نوشتاری دیگر نشان می دهیم و آن در واقع نمایش یا نوشتن لغات و حروف یک زبان با حروف یا الفبای زبان دیگر است.سازمان بین المللی استاندارد transliteration را چنین تعریف می کند:« فرایند ضبط نمادهای نوشتاری یک نظام الفبایی با استفاده از نمادهای نوشتاری متناظر در دستگاه الفبای زبان دیگر».

در نویسه گردانی صورت نوشتاری کلمات و جملات مورد نظر است به طوری که در صورت لزوم به آسانی بتوان از روی نویسه گردانی شده صورت نوشتاری اصلی را بازسازی کرد و بنابراین ارزش آن در همان «برگشت پذیر» بودن آن است. همچنین مواردی یافت میشود که امکان نوشتن واژه مورد نظر به صورت‌های گوناگون در آن وجود دارد و چه بسا در جمله‌ها و اصطلاحات حالت تلفظ با شیوه نوشتن فرق کند و یا حروفی مشابه به نظر بیایند؛ اما از نظر تلفظ و مخارج حروف متفاوت باشند.

کارهای مرتبط

به طور کلی نویسه گردانی کلمات به سه روش عمده تقسیم بندی می شود.نویسه گردانی بر اساس حرف، بر اساس واج و تلفیقی از این دو روش. روش های بر اساس حرف نگاشت مستقیمی بین کلمات به زبان اصلی و نویسه آنها به زبان هدف برقرار می کنند مانند روش بیشترین بی نظمی و درخت های تصمیم. در حالی که روش های بر اساس واج از یک واسط به منظور به دست آوردن معادل در زبان هدف استفاده می نمایند مانند روش مارکوف(extended Markov window). در هر دو روش با شکستن کلمه اولیه، کلمه را به چند قسمت تقسیم نموده و عمل نگاشت را بین قسمت های به دست آمده انجام می دهند.متداول ترین روش در نویسه گردانی نگاشت حروف فارسی به انگلیسی است . در کنار آن می توان از روش مبتنی بر پیکره استفاده کرد که به روش تجربی معروف است و در آن از منبعی از اطلاعات که به طور عمده شامل لغات است جهت تبدیل استفاده می شود. به عنوان نمونه نحوه تبدیل متن در ویرایشگر به نویس به این صورت است:

1)برای نوشتن اکثر حروف میتوان از معادل انگلیسی طبیعی‌ آن استفاده کرد، مثلا ب را با b و گ را با g نوشت.

2) برای نگارش بقیهٔ حروف فارسی مثل ث در تثبیت یا ظ در ظاهر ابتدا کلمه را به صورت معمول با حروف لاتین بنویسید. مثل tasbit یا zaaher, سپس روی کلمهٔ تبدیل شده به فارسی کلیک کنید. پنجره‌ای باز خواهد شد که در آن میتوانید تمامی حروف کلمه را تصحیح فرمایید. تصحیح شما از این به بعد در خاطر این سایت خواهد ماند.
3) بهتر است پیشوند و پسوندها را به صورت جدا بنویسید. بطور مثال: نماینده‌ها = namayande ha و بی‌غرض = bi gharaz. بیشتر پسوند و پیشوند‌های فارسی بطور خودکار تشخیص داده شده و به کلمه به طور صحیح چسبانده میشوند.

4) کلمات دو قسمتی را با خط فاصله بنویسید: علی‌نژاد = ali-nezhaad، نو‌آوری = no-aavari, فوق‌العاده = fogh-alaadeh.

5) برای نوشتن کلمات لاتین در متن فارسی در ابتدای آن علامت \ یا / قرار دهید. مثلا برای نوشتن book از /book یا \book استفاده کنید. آدرس‌های اینترنتی و ایمیل (مثل www.google.com یا [email protected]) به صورت خودکار تشخیص داده میشوند و نیازی به افزودن این علامت‌ها به ابتدای آنها وجود ندارد.

در روش های پیشنهادی از مدل بیشترین بی نظمی که جزو روش های یادگیری تمایزی است استفاده شده است. این روش برای یادگیری از تعدادی ویژگی استفاده می کند مانند ویژگی های صدادار-بی صدا و n-gram. در ویژگی اول نوع دیگری از دسته بندی حروف به کار گرفته می شود مثلا حروف بیصدای فارسی را می توان به 6 گروه تقسیم بندی کرد. n-gram برای کلمه مبدا علاوه بر حرف جاری از دو حرف قبلی و دو حرف بعدی استفاده می کند.اما در کلمه مقصد تنها دو حرف قبلی قابل استفاده است.
مدل نویسه گردانی دارای یک مرحله هم ترازی است که با استفاده از آنها قوانین تبدیل به دست می آید.هم ترازی به معنی مشخص نمودن ارتباط بین واحدهای دو زبان در یک پیکره زبانی است که دارای دو رویکرد می باشد:
استفاده از نرم افزار ++GIZA و پیاده سازی مدل IBM که مستقل از زبان نتایج قابل قبولی تولید می کنند. و رویکرد دوم بر اساس رخداد کلمات و احتمال اتصال کلمات به یکدیگر می باشد.
یکی از روش های هم ترازی ارائه شده برای زوج کلمات،به منظور به دست آوردن بهترین نتیجه با ترکیب با ابزارهای ترجمه ماشینی مانند Moses است.

به عنوان نمونه طراحی نمودار دوبعدی که در یک بعد حروف کلمه مبدا و در بعد دیگر حروف نویسه اش قرار می گیرند.روش کار بدین صورت است که یک خط از مبدا تا نقطه ای که مختصاتش طول کلمه مبدا و طول نویسه اش است کشیده می شود. مربع هایی که قسمت بیشتری از خط را پوشانده اند هم ترازهای یکدیگر خواهند بود.
از دیگر کارهای مرتبط، مدل مبتنی بر برچسب زنی توالی است که از نوع روش های یادگیری ماشین با نظارت و دارای دو مرحله یادگیری و استخراج می باشند.در برچسب زنی توالی، یک سند به صورت کلمات متوالی دیده شده و برچسبهای متوالی برای نشان دادن ویژگی هر کلمه به آن منتسب می گردد.در این عمل، هر کلمه با یک تگ که نشان دهنده ادات سخن متناظرش می باشد برچسب زده می شود.یکی از روشهای متداول برای این نوع برچسب زنی، استفاده از مدل می باشد. مدل مخفی مارکوف نمونه ای از یک مدل مولد است که یک توزیع احتمالی اتصال (P(x,y)را که در آن x و y متغیرهای تصادفی که نشان دهنده توالی مشاهده و توالی برچسب متناظرش می باشند تعیین می گردد.

در لینک زیر جداول مصوت ها و صامت ها برای نویسه گردانی از انگلیسی به فارسی معرفی شده اند:`
[فنگیلیش]
(%5D%28http://fa.wikipedia.org/wiki/%D9%81%D9%86%DA%AF%DB%8C%D9%84%DB%8C%D8%B4%29)

آزمایش‌ها

روش به کار برده شده در این پروژه نویسه گردانی بر اساس حرف است(هم ترازی میان حروف دو زبان) که با نگاشت حروف دو زبان به یکدیگر انجام می گیرد.
به طور کلی چهار روش برای ارزیابی وجود دارد:

ACC: Accuracy in top-1, or word error rateFuzziness in Top-1: mean F-score

fuzziness

Mean Reciprocal Rank

MRR

Mean Average Precision MAP_ref

اما نتایج حاصل این پروژه بر اساس معیار دقت کلمه(روش اول) محک زده شده است.دقت کلمه نسبت تعداد کلماتی که درست نویسه گردانی شده اند به تعداد کل کلمات تست می باشد.. اما دقت کلمه دارای مشکلاتی است از جمله اینکه چندین نویسه قابل قبول می تواند برای یک کلمه وجود داشته باشد که همه آنها استاندارد نیستند.انتخاب نویسه مورد نظر به کاربر بستگی دارد. در این حالت از معیاری به نام دقت کاراکتر استفاده می کنیم که همان minimum edit distance برای مقایسه رشته هاست.این معیار کمترین مقدار درج،حذف و جایگذاری مورد نیاز کاراکترها را برای تبدیل یک کلمه تولید شده به فرم صحیح محاسبه می کند.

لازم به ذکر است Top-n بدین معناست که n نتیجه اول حاصل از سیستم به عنوان جواب در نظر گرفته شود .

دقت یک سیستم نویسه گردانی که ده نویسه برتر (Top-10) تولید می کند بسیار بهتر از سیستمی است که تنها یک نویسه (Top-1) تولید می کند.زیرا در Top-10 اگر نویسه درست کلمه مبدا در یکی از ده نویسه تولید شده باشد،دقت کلمه برای آن یک در نظر گرفته می شود. با این وجود یک سیستم کارا باید تنها یک نویسه و آن هم نویسه صحیح را تولید نماید.

نکته ای که ذکر آن ضروری است این است که ابزارهای ارزیابی ترجمه ماشینی برای نویسه گردانی نیز قابل استفاده می باشد. از جمله این ابزارها جایگزین ارزشیابی دوزبانه است که روشی است برای ارزیابی کیفی متن ترجمه شده توسط ماشین ترجمه یا دستگاه ترجمه ماشینی. کیفیت ترجمه با عددی بین ۰ و ۱ اندازه‌گیری می‌شود. این عدد نمایانگر میزان نزدیکی ترجمه به مجموعه‌ای از ترجمه‌های انسانی با کیفیت خوب است.

کارهای آینده

نرم افزار حاضر به طور کامل پاسخگوی نیاز کاربران عادی می باشد. اما در ابعاد بزرگتر لازم است نرم افزاری توسعه داده شود که قراردادهای مختلف لاتین نویسی و فونت های مختلف عربی را هم انجام دهد.به علاوه از آنجا که مهم ترین کاربرد نویسه گردانی تبدیل کلمات خارج از دامنه لغات یا معادل آواییشان در زبان مقصد است، تمرکز در جهت بالا بردن دقت و کاهش خطا در این زمینه ضروری می باشد و می بایست تلفظ اصلی کلمه مبدا تا آنجا که قواعد املایی و آوایی زبان مقصد اجازه می دهد حفظ شود. این امر در مورد جفت زبان هایی که نظام الفبایی و آوایی آنها تفاوت های بسیار دارند اهمیت بیشتری می یابد.

فاز دوم

این فاز در واقع پیاده سازی پروژه بوده است ، در این پروژه از روش حرف به حرف استفاده شده است ، یعنی به ازای هر حرف انگلیسی معادل آن در زبان فارسی درنظر گرفته شده است که در فاز قبلی توضیحات داده شده است . کد پروژه در GitHub قرار داده شده است که کد آن در لینک زیر قابل مشاهده است .
کد پروژه
این برنامه بدین صورت است که به ازای هر حرف معادل آن درنظر گرفته شده است و به صورت حرف به جای حرف اجرا میشود . با اجرای برنامه پنجره ای مشاهده میگردد که میتوان در فیلد بالای آن کلمه انگلیسی را وارد کرد و به صورت هم زمان و حرف به حرف در فیلد پایین کلمه فارسی را برنامه به ما به عنوان خروجی خواهد داد .به عنوان مثال با وارد کردن کلمه "salam" به صورت همزمان کلمه " سَلام " نوشته میشود . میتوان کلمات انگلیسی از فایل انتخابی نیز خوانده شوند .

مراجع

  1. Nasser Sharify. Cataloging of Persian Works: Including Rules for Transliteration, Entry andDescription. Chicago, ALA, 1959.

  2. Aman, Mohammed. ``Use of Arabic in Computerized Information Interchange' ', Journal of theAmerican Society for Information Science, 33 (4) July 1984.

  3. Karimi, Sarvnaz, Falk Scholer, and Andrew Turpin. "Machine transliteration survey." ACM Computing Surveys (CSUR) 43.3 (2011): 17.

  4. Jagadeesh Jagarlamudi,Hal Daumé III."Regularized Interlingual Projections: Evaluation on Multilingual Transliteration "

  5. Peter Nabende."An Evaluation of n-gram Correspondence Models for Transliteration Detection".

  6. Pushpak Bhattacharyya,Mitesh M. Khapra."Improving transliteration accuracy using word-origin detection &lexicon lookup"

  7. Waleed Ammar,Chris Dyer,Noah A. Smith."Transliteration by Sequence Labeling with Lattice Encodings and Reranking

    • پاکزاد،عاطفه.(1392)"سمینار کارشناسی ارشد".دانشگاه علم و صنعت ایران. استاد راهنما: دکتر بهروز مینایی بیدگلی.

  8. ملایی،نیما.عبداله زاده،احمد و شیرازی،حسین.(1390)"WI&CRF :روش پیشنهادی برای استخراج اطلاعات مورد نیاز از متون نظامی".دانشگاه تهران.

  9. صدیق بهزادی،ماندانا. ٬ شیوه نامه ضبط اعلام انگلیسی در فارسی ٬ تهران ٬ مرکز نشر دانشگاهی ٬ کتاب خانه.١٣٧٥ ملی جمهوری اسلامی ایران.

  10. عظیما،پرناز. ٬ دگرنویسی کلمات و اسامی از فارسی به انگلیسی و از انگلیسی به فارسی ٬ پایان نامه کارشناسی.١٣٥٢ ارشد ٬ دانشگاه تهران ٬ دانشکده علوم تربیت.

  11. میرعمادی، سیدعلی؛(1379)، مجموعه مقالات چهارمین کنفرانس زبانشناسی نظری و کاربردی(جلد اوّل)، تهران: انتشارات دانشگاه علامه طباطبایی، چاپ اوّل.

  12. فرحزاد، فرزانه. و تجویدی، غلامرضا ( 1385). فرهنگ توصیفی اصطلاحات مطالعات ترجمه. تهران: انتشارات یلداقلم.

  13. موسوی نژاد،نجمه. و خدیوی،شهرام(1389).ارائه یک روش نوین برای نویسه گردانی اسامی.دانشگاه صنعتی شریف.

  14. حق اللهی،زهره.زارع بیدکی،علی محمد و حاجی مرادی،مهدی.نویسه گردانی اسامی افراد با استفاده از ویژگیهای محتوای وب فارسی.

  15. فاز اول طرح جامع پیکره زبان فارسی با موضوع فاز اول مطالعاتی ایجاد پیکره متنی زبان فارسی(1388).دانشگاه علم و صنعت ایران.

  16. حسینی معصوم،سید محمد. و کمیلی دوست،هایده.(1389)بررسی شیوه های معادل یابی واژگانی در ترجمه متون تبلیغاتی و تجاری از انگلیسی به فارسی.

  17. Karimi, Sarvnaz, Falk Scholer, and Andrew Turpin. "Machine transliteration survey." ACM Computing Surveys (CSUR) 43.3 (2011): 17.

پیوندهای مفید

نیما همتی

با سلام و خسته نباشید از تلاش شما بابت این پروژه. اما در گزارشی که برای این فاز ارائه نمودید مشکلات و نکاتی هست که امید است در گزارشات آینده برطرف شوند.

  • به عنوان یک گزارش علمی، انتظار می‌رود که شما نکات درست نگارشی را در آن به درستی رعایت کنید. برای مثال در متن فوق، نکاتی همچون رعایت نیم‌فاصله‌ها و یا استفاده از معادل‌های مناسب فارسی برای کلمات انگلیسی مثلا بجای استفاده از SMS باید از کلمه "پیامک" استفاده کرد.

  • در این متن ارجاعات به درستی داده نشده است. برای مثال تعریف سازمان بین‌المللی استاندارد را از نویسه‌گردانی بیان کردید. انتظار می‌رفت پس از آن ارجاع مناسب به این تعریف داده می‌شد.

  • در فهرست مراجع مرجع شماره 3 و شماره 17 دقیقاً یکی است!!

  • توضیحی درباره اینکه ویرایشگر "به‌نویس" چیست و اصولاً برای چه چیزی طراحی شده است داده نشده است و بدون مقدمه قوانین و قواعد آن بیان شده است.

  • با توجه به اینکه ویرایشگر "به‌نویس" بیشتر جنبه تجاری دارد و پشتوانه علمی برای قواعد در نظر گرفته شده در آن نیست، بهتر است در این گزارش علمی از بکاربردن و تکیه کردن به آن پرهیز کرد. در نظر داشته باشید که قواعد بکارگرفته شده در این ویرایشگر منظبق بر ساختار آواشناسی و ... زبان فارسی نیست!

  • همانطور که در متن بیان شده مشخص است لینک‌ها به درستی داده نشده‌اند و در قسمت‌هایی به خوانایی و زیبایی نوشته آسیب رسانیده‌اند.

  • متن ارائه شده خوانایی کافی را ندارد. این بدان معناست که خواننده در صورتی که تسلط کافی بر روی موضوع نداشته باشد دچار سردرگمی و پیچیدگی ذهنی می‌شود.

  • اشتباهات علمی موجود در متن زیادست! این موضوع ظاهراً ناشی از ترجمه مستقیم متن از مقالات انگلیسی به فارسی می‌باشد!

  • مشخص نشده است که هدف نویسنده از این پروژه چیست. در واقع نویسنده قرار است در فازهای بعدی چه کارهایی را انجام دهد. یا آزمایشاتی که قرار است توسط نویسنده گرفته شود بیان نشده و ...

موفق باشید.

نیما همتی

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

  • انتظار ما در این فاز این بود که حداقل اشکالات موجود در فاز قبلی را بر طرف می‌کردید. که متاسفانه این امر محقق نشده است.

  • با توجه به مقالاتی که معرفی کردید انتظار این می‌رفت که کار انجام شده بیشتر از پیاده سازی یک نگاشت مستقیم باشد. در این روش در جاهایی مانند ashoub و ashab به نظر سیستم تولید شده دارای نقض خواهد بود.

با سلام
پس از مطالعه پروژه نکات زیر قابل ذکر بود :
1 - لینک قرارداده شده برای جداول مصوت و صامت که حاوی اطلاعات کلیدی در انجام و بهبود عملکرد برنامه می باشد خالی است .
2 - (پیشنهاد) استفاده از یک سیستم stemmer برای یافتن ریشه کلمات به صورتی که بتوان ریشه ی کلمه را از کلمه ی فینگلیش تشخیص داد ُ این سیستم به ما امکان می دهد در تشخیص اصوات و همچنین برگردانی با املای صحیح متکی به برگردانی حرف به حرف نباشیم . زیرا :
a) پس وندها و پیش وندها در زبان فارسی مشخص است . برای مثال : ( ات', 'ان', 'ترین', 'تر', 'م', 'ت', 'ش', 'یی', 'ی', 'ها', 'ٔ', '‌ا ) و شکل انگلیسی مشخصی نیز دارند .
این وندها همواره شکل و اصواتی ثابت دارند پس برگردانی همواره به شکلی بسیار ساده و همواره (100٪) صحیح است . مثلا :
کلمه ای به شکل روبه رو : ketabha -> ketab--ha حال با استفاده از دادگانی بسیار کمتر ( فقط ریشه کلمات ) می توان نتیجه ای بسیار بهتر حاصل کرد .
b) به راحتی با یک map کردن می توان برگردانی صحیح را به دست آورد .
3 - در تایپ به زبان فینگلیش بسیاری از کلمات چندگانه تایپ می شود ُ یک تعدد رایج ُ تعدد حروف است برای مثال ketaab فیلتر کردن این تعدد به کارایی کمک خواهد کرد .
4 - حروف ترکیبی مثل gh-> ق aa->ع و... حتما نیازمند مدل سازی می باشند زیرا برای مثال اگر aa=ع باشد saat->سعت .

در ابتدا بهتر است یک شرح مسئله درست و کامل را مینوشتید و بیشتر در مورد پروژه توضیح میدادید.
و همچنین در متن مشخص می کردید که هر قسمت مربوط به کدام مراجع میشود.
خروجی و نتایج کد خود را حداقل در چند خط شرح میدادید که مشخص شود این برنامه تا چه حدی موفق بوده و کار هایی که برای بهدود دادن به آن میشود چه است و چند در صد درست عمل میکند.