پنجشنبه، آذر ۲۷، ۱۳۹۳

TF-IDF


امروز به مطلبی در مورد پیدا کردن کلمه‌های با اهمیت در یک پیکره برخورد کردم که خیلی ساده دلیل استفاده از TF-IDF را توضیح داده بود. اینکه TF   می‌تونه کمک کنه که واژه‌های مهم در سطح یک document را پیدا کنیم و IDF هم به ما نشون میده که از بین همه این کلمه‌های پرتکرار کدامیک مهمتر هستند. 


جمعه، آذر ۲۱، ۱۳۹۳

زبان عربی قدیم - بدون نقطه و اِعراب

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

نگارشهای مختلف بسم‌الله ارحمن الرحیم 

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


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

لینکهای مرتبط

چهارشنبه، شهریور ۱۲، ۱۳۹۳

مبدل متن به دست‌خط

من آقای خوش‌خطی هستم


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

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


تصور کنید که بتوانید متن خودتان را به دست‌خط فردی که دوست دارید بنویسید. مثلا متن نامه شما با دست‌خط شکسپیر.



چه کاربردهای دیگری برای این تکنولوژی می‌توانید تصور کنید؟

چهارشنبه، مرداد ۱۵، ۱۳۹۳

یک برنامه - تشخیص دهنده زبان - Language identification


یکی از اولین ابزارهای مورد نیاز پروژه‌های پردازش زبان طبیعی چند زبانه،  تشخیص زبان محتوای داده شده است. روشهای مختلفی برای اینکار می‌توان استفاده کرد، که ساده‌ترین آن استفاده از مدل ngram  است. در ادامه این نوشته این مدل را توضیح داده و در نهایت یک برنامه پرل (Perl) براي استفاده شما معرفي می‌كنم.

شنبه، مرداد ۰۴، ۱۳۹۳

مترجم ماشینی - شورای عالی اطلاع رسانی


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


سه‌شنبه، تیر ۳۱، ۱۳۹۳

لاتین نویسی زبان فارسی


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

چهارشنبه، تیر ۲۵، ۱۳۹۳

پیکره‌های فارسی

تعریف
پیکره  متنی (corpus) مجموعه‌ای بزرگ و بدون ساختار از متون تولید شده توسط انسان است. از پیکره برای آموزش یا ارزیابی مدلهای پردازش زبان طبیعی استفاده می‌شود. پیکره می‌تواند یک زبانه یا چند زبانه باشد. در صورتیکه در پیکره چند زبانه ارتباطی بین جملات زبانهای مختلف تعریف شده باشد، به آن پیکره موازی می‌گویند که کاربر بیشتر آن در ترجمه ماشینی است.

قبلا در مورد پیکره‌های موجود در زبانهای غیر از فارسی نوشته‌بودم (حافظه ترجمه، همشهری‌ آن‌لاین) . در این نوشته قصد دارم دو تا  از مهمترین پیکره‌های موجود در زبان فارسی را معرفی کنم.

شنبه، تیر ۲۱، ۱۳۹۳

پاورچین پاورچین - سلانه سلانه - بع بع - صورت صورت

بسی رنج بردم بدین سال سی
عجم زنده کردم بدین پارسی

در ادامه مباحث مربوط به پردازش پیکره فارسی، به یکی دیگه از مواردی که در پیکره‌های خبری فارسی به‌وفور دیده‌ام می‌پردازیم. و خواهیم دید که چطور میشه با یک مدل ساده چنین مشکلی را در پیکره حل کرد.

پنجشنبه، تیر ۱۹، ۱۳۹۳

یک منبع عالی برای حافظه ترجمه


یکی از منابع مهم برای تولید یک سیستم ترجمه ماشینی، داشتن پیکره‌های موازی است. به این معنی که در پیکره موازی جملات ترجمه شده بین دو زبان را داشته باشیم. با داشتن این پیکره . استفاده از ابزارهای آماده مانند موسی (moses) می‌توان یک برنامه ترجمه ماشینی را به سرعت آماده کرد.

در ادامه پروژه ترجمه ماشینی اتحادیه اروپا، جندی پیش مسئولان پروژه یکی از بزرگترین  پیکره‌های موازی را برای ۲۲ زیان و ۲۳۱ ترکیب زبانی منتشر کردند. این پیکره‌ها در درجه اول توسط مترجمان حرفه‌ای برای بالا بردن کیفیت و سرعت ترجمه استفاده شده است. اما در حال حاضر امکان استفاده از آنها برای آموزش یک سیستم ترجمه ماشینی برای همه افراد وجود دارد.


چهارشنبه، تیر ۱۸، ۱۳۹۳

بررسی وضعیت نیم‌فاصله در پیکره همشهری آنلاین


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

در اینجا به چند مورد از بیشترین اشتباهات صورت گرفته در سایت روزنامه همشهری آنلاین اشاره می‌کنم. این لیست پس از بررسی پیکره همشهری آنلاین تهیه شده است. این پیکره در حدود ۱۱۲ میلیون کلمه (شامل۶۳۰ هزار واژه) دارد.

جمعه، تیر ۱۳، ۱۳۹۳

نگارش فارسی و نیم‌فاصله از دید فرهنگستان زبان و ادب فارسی


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

همچنان به فیزیوتراپی و آب درمانی مشغول است.

نیم‌فاصله یا فاصله مجازی در زبان فارسی


فارسی شکر است

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