احسان ترک
احسان ترک
خواندن ۷ دقیقه·۴ سال پیش

مشکلات خط فارسی در نرم‌افزار متن به گفتار

از مشکلات خط فعلی زبان فارسی و مشکلاتی را که در خوانشِ آن وجود دارد تقریبا همه مطلع هستند. امّا از زمانی که تصمیم گرفتیم نرم‌افزاری را بنویسیم که نزدیک به زبان محاوره، متون فارسی را به گفتار تبدیل کند! فهمیدیم که تا چه میزان خوانایی زبان فارسی سخت است و برای فهمِ آن توسط کامپیوتر باید به هوش مصنوعی پناه برد.

خط زبان فارسی تشکیل شده است از حروف الفبایی که به جز چند آوا (آ،او،و و ...) ، برای نمایش حروف صدادار باید اعراب گذاشت. به دلیل آنکه نوشتن اعراب، خوانش خط فارسی را دشوار می‌سازد، پیشنهاد می‌شود از اعراب در زمانی استفاده شود که نیاز است (در عمل معمولا هیچ‌وقت نیاز نیست) پس اگر کسی بنویسد «حسن» بر اساس مفهوم متن باید آن را یا حَسَن بخواند یا حُسن.

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

«حُسنِ اخلاق حَسَن آوازه خاص و عام است، برای همین حُسن اخلاق است که شاید نامش را حَسَن گذاشته‌اند تا نشان‌دهندهٔ حسنات اخلاقی‌اش باشد. »

همانطور که می‌بینید اگر یک انسان این متن را بخواند بر اساس مفهوم درمی‌یابد کی حسن را حَسَن و کی حُسن بخواند. برای کسانی که نیازمند کدنویسی و درک مفهوم جملات فارسی نیستند، درک این مشکل سخت‌تر است. اگر همین جملهٔ بالا را در سرویس مترجم گوگل تِرَنسلِیت نیز وارد کنید! تمامی حَسَن‌ها را Good ترجمه می‌کند، که ترجمه ‌حُسن به زبان انگلیسی است. حال شاید تصور کنیم شاید گوگل تمامی اسم‌ها را هم ترجمه می‌کند! امّا اگر جای حسن‌ها را با احمد تغییر دهید، در ترجمه انگلیسی حسن اخلاق احمد می‌شود «Ahmed's good morality» . این را گفتم تا بگویم، حتی گوگل نیز راه‌حلی برای این مشکل نداشته و یکی از معانی حسن را انتخاب می‌کند.


خط ما، خطِ عربی است. به قول احمد کسروی من هم دوست داشتم که زبان ما صاحب خطی بود که تمامی دنیا هم از همان خط ما استفاده می‌کردند، امّا واقعیت آن است که خطی که با آن می‌نویسیم خطِ عربی است و دستور زبان عربی را پشتیبانی می‌کند. امّا در زبان فارسی که یک زبان هندواروپایی است، این خط نمی‌تواند کارایی لازم را از خود نشان دهد.

در زبان عربی همه افعال و ... دارای ریشه هستند. مثلا همین حسن که ریشه تمامی مواردی چون حسین، احسان، محسن و ... است! در زبان عربی دو کلمه که یک کلمه را بسازند و پیشوند و پسوند و ... وجود ندارد و اکثر افعال، مفعول و فاعل‌ها از یک ریشه تشکیل شده و صَرف می‌شوند. برای همین هم هست که هنوز هم که هنوز است عده‌ای نرم‌افزار را نرم افزار یا نرمافزار می‌نویسند، چون اعراب با خطشان مشکل ما را در زمینه نیم‌فاصله ندارند و این ما هستیم که چنین مشکلی داریم.

مثلا در عربی جملة «هذه هي قطعة اختبار تساعد المصممين والمبرمجين على استخدام رسائل الاختبار هذه لإثبات تصاميمهم وتصاميمهم التي تم إكمالها لصاحب العمل ، وذلك باستخدام نص الاختبار هذا الذي يمكن أن يسرع من تقدم المشروع. بدلاً من كتابة النص وكتابته ، يمكن للمصممين استبدال هذا النص في مربعات مختلفة بنسخة ورسالة واحدة. هذا الموضوع كتب في الفارسي من قبل لورم إيبسوم.»

در جمله بالا هیچ مشکلی در نحوه نوشتن ندارند، اما مشکل خوانایی را که در مورد حسن گفتم را به شکل بدتری دارند! زیرا هیچ راهی برای تشخیص نداریم که حسن را چگونه بخوانیم و صرف کنیم و با تغییر یک « َ » به « ِ » کل معنی تغییر می‌یابد. موضوع مهم همینجاست که اکثر کلمات اینچنین از اعراب وام گرفته شده و هم خط عربی و هم واژه‌های عربی وارده به زبان فارسی هستند که مشکلات اینچنین پدید آورده‌است.

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

Hosn e axhlâq e Hasan zabanzad e xâs va âm ast. Barây e hamin hosn e axlâq ast ke shâyad esmaš râ hasan gozâšteand, tâ nešân dahande ye hasanât e axlâqiaš bâšad.

اگر متعجب شدید که چرا Ketâb e Ali نه Ketâbe Ali، باید بگویم چون e در اینجا مثل of در زبان انگلیسی است. از آنجا که در خط فارسی حرفی برای نشان دادن واکه‌ها از جمله واکه‌ی e نیست، این حرف اضافه در نوشتار ظاهر نمی‌شود و ظاهرا به همین دلیل هم، تا این اندازه مهجور مانده و درست معرفی نمی‌شود؛ بر آن، نامهای گوناگونی گذاشته‌اند: اضافه، کسره‌ی اضافه، نقش‌نمای اضافه و ... در حالی که e هم یک حرف اضافه است مانند بقیه.

پس از واژه‌هایی که به واکه ختم می‌شوند، e تبدیل به ye می‌شود. در این صورت هم، تنها y آن نوشته می‌شود و خود e همچونان در نوشتار غایب است: «هوای تهران» havâ ye Tehrân.

اما نکته‌ی جالب این است که بنا به دستور خط فرهنگستان، باید بنویسیم «صدای فلانی، مانتوی فلانی، عموی فلانی» اما «بچهٔ فلانی»! چرا؟! مگر اینجا هم با همان حرف اضافه طرف نیستیم؟ چرا نباید این را هم مانند بقیه به صورت «بچه‌ی فلانی» بنویسیم؟ متأسفانه، این قانون بیجا باعث شده که در عمل، به صورت «بچه فلانی» بنویسیم چون به نظرمان آن همزه یا ی کوچک که در بالای «ه» می‌آید یک حرکت است مانند زیر و زبر و پیش (کسره، فتحه، ضمه) و ما در حالت عادی، هیچ گاه حرکتها را نمی‌نویسیم.

همان طور که می‌بینیم، پی‌آمد این قانون بیجا، یک اشتباه مسلم است در نگارش فارسی. نوشتن «بچه‌ی فلانی» به صورت «بچه فلانی»، درست مانند این است که به جای «صدای فلانی، مانتوی فلانی، عموی فلانی» بنویسیم «صدا فلانی، مانتو فلانی، عمو فلانی».

الگوی بهینه

در محیط دانشگاهی و کتابهای تخصصی زبان‌شناسی، همه‌ی همخوانهای زبان فارسی با تک‌حرف نشان داده می‌شوند:

واکه‌ی ā

در زبان‌شناسی رسم است که کشیدگی واکه‌ها را با حرکت ماکرون (macron) نشان بدهند. ماکرون شبیه یک خط صاف است و در بالای واکه‌ها قرار می‌گیرد: ā ē ī ō ū. اما این حرکت در زبانهایی که به خط لاتین نوشته می‌شوند رایج نیست و بیشتر، کاربرد زبان‌شناختی دارد. بنده به جای آن، حرکت سیرکون‌فلکس (فرانسه: circonflexe؛ انگلیسی: circumflex) را پیشنهاد می‌دهم که در زبانهای گوناگونی از جمله زبان فرانسه، برای نشان دادن کشیدگی واکه، به کار می‌رود. در الفبای لاتینی که برای نوشتن زبان کردی کرمانجی به کار می‌رود نیز، از حرکت سیرکون‌فلکس برای نشان دادن واکه‌های کشیده استفاده می‌گردد.

در فارسی رسمی ایران، واکه‌های â و i و u واکه‌های کشیده به حساب می‌آیند. در اصل، باید i و u را هم با سیرکون‌فلکس و به صورت î و û نوشت اما چون شکل کوتاه آنها در لهجه‌ی معیار ایران وجود ندارد، می‌توان از آن صرف نظر کرد.
خط فارسیلاتین‌نویسیتغییر خطنرم‌افزاربرنامه‌نویسی
برنامه‌نویس، توسعه‌دهنده وب| حامی نرم‌افزار آزاد و مقابله با انحصارطلبی. طرفدار محیط زیست، حقوق بشر و آزادی در انتخاب
شاید از این پست‌ها خوشتان بیاید