زبانشناسی رایانهای یا زبانشناسی محاسباتی (Computational linguistics) حوزهای میانرشتهای است که سعی دارد با بهرهگیری از روشهای آماری و مبتنی بر قاعده(rule-based)، از منظر محاسباتی به مدلسازی زبان طبیعی بپردازد.
پردازش زبانهای طبیعی رهیافت بسیار جذابی برای ارتباط بین انسان و ماشین محسوب میشود و در صورت عملی شدنش به طور کامل میتواند تحولات شگفتانگیزی را در پی داشتهباشد.
از لحاظ ردهبندی، علم پردازش زبان طبیعی از شاخههای هوش مصنوعی به حساب میآید و خود این علم به پنج رده مختلف تقسیمبندی میشود:
* آوا شناسی و صداشناسی (phonetics and phonology) که به تشخیص آواها و صداها و بازشناسی گفتار میپردازد.
* ریختشناسی (morphology) که به ساختارهای کلمات و ریشهیابی واژگان میپردازد.
* نحو (syntax) که به ارتباط کلمات به همدیگر و مباحث دستوری آنها در گروهها و جملات میپردازد.
* معناشناسی (semantics) که به ارتباطات معنایی کلمات میپردازد.
* عملگرایی (pragmatics) که کاربردهای زبان برای رساندن یک مطلب به مخاطب یا مخاطبان، در حالت عملی یا در نوشتار و گفتار طبیعی میپردازد.
* مباحثه (discourse) که به ارتباطات کلی یک زبان فرای یک یا چند جمله خاص میپردازد.
پردازش زبانها و مکالمات طبیعی یکی از اموری است که با ورود فناوری رایانهای به زندگی بشر مورد توجه بسیاری از دانشمندان قرار گرفته است. حتی اندیشهای که تورینگ از ماشین هوشمند خود و تعریفی که او از هوش مصنوعی داشت، در مرحله اول مربوط به پردازش زبانهای طبیعی میشد.
تعریف دقیقتر پردازش زبانهای طبیعی عبارت است از استفاده از رایانه برای پردازش زبان گفتاری و نوشتاری.
پردازش زبانهای طبیعی یکی از زیرشاخههای بااهمیت در حوزه گسترده هوش مصنوعی و زبان های برنامه نویسی هوشمند در دانش زبانشناسی است. منظور از پردازش زبان طبیعی این است که رایانه ای داشته باشیم تا قادر باشد زبان انسان را تحلیل کند، بفهمد و بتواند زبان طبیعی تولید کند.
کاربردهای پردازش زبان طبیعی به دو دسته کلی قابل تقسیم است: کاربردهای نوشتاری و کاربردهای گفتاری. از کاربردهای نوشتاری آن می توان به استخراج اطلاعاتی خاص از یک متن، ترجمه یک متن به زبانی دیگر یا یافتن مستنداتی خاص در یک پایگاه داده نوشتاری (مثلا یافتن کتاب های مرتبط به هم در یک کتابخانه) اشاره کرد. نمونه هایی از کاربردهای گفتاری پردازش زبان عبارتند از: سیستم های پرسش و پاسخ انسان با رایانه، سرویس های اتوماتیک ارتباط با مشتری از طریق تلفن، سیستم های آموزش به دانش آموزان یا سیستم های کنترلی توسط صدا. در سال های اخیر این حوزه تحقیقاتی توجه دانشمندان را به خود جلب کرده و تحقیقات قابل ملاحظه ای در این زمینه صورت گرفته است. تلاش عمده در این زمینه ماشینی کردن فرآیند درک و برداشت مفاهیم بیان شده با یک زبان طبیعی انسانی است.
خلاصه سازی از زیرشاخه های علم هوش مصنوعی است. خلاصه سازی خودکار متن عبارت است از کوتاه کردن متن از طریق انتخاب جملات مهم ، به طوری که متن نهایی مهم ترین نکات متن اصلی را نیز در بر داشته باشد. تشخیص جملات کلیدی متن نیز نیاز به هوشمندی ای دارند که دستیابی به آن از طریق درک و فهمیدن متن اصلی ، تشخیص نقش کلمات و معانی آنها در جایگاه های مختلف و همچنین انتخاب مهم ترین قسمت ها امکان پذیر خواهد بود.
پس از این که متن مورد نظر برای خلاصه شدن در قسمت مشخص شده قرار گرفت با مشخص شدن عبارت های اشاره ، محدوده کلمات و جملات متن نیز مشخص می شود. در این مرحله که به اصطلاح مرحله پیش پردازش نام دارد، کلمات غیرضروری متن نیز حذف می شوند. در مرحله بعد، از یک پایگاه واژه برای یافتن ارتباط بین واژه ها استفاده و امتیاز دهی جملات به روش کلاسیک انجام می شود.برای هر عبارت منظم باید یک الگو و یک محتوای متنی داشته باشیم.
در زبان عبارات منظم تعدادی علامت خاص به نام لنگر است که نشاندهنده خواصی در یک الگوی رشتهای است. به عنوان مثال، علامت \b یک لنگر است که نشاندهنده پایان یک محدوده واژگانیست. در عبارات منظم عملگرها دارای اولویتهای مخصوص به خود هستند.
اولویت اول: کمانک ()
اولویت دوم: شمارندهها *؟+{}
اولویت سوم: تواترها و سپرها مثل \b و $
اولویت چهارم: علائم فصل | : یکی از مهمترین کاربردهای عبارات منظم در جایگزینی الگوهای رشتهای است .
عبارات منظم در یک زبان برای نشاندادن هر چه بهتر رشتههای واژگانی هستند.
(NLP) با استفاده از Prolog:
پرولوگ یک زبان برنامه نویسی منطقی است که اطلاعات منطقی (حقایق Facts، قوانین Rules) خودرا ذخیره میکنیم (پایگاه دانش Knowledge Base) و با دادن این اطلاعات به prolog میتوانیم سوالهای منطقی (Query) خود را از آن بپرسیم. Prolog سوالهای ما را تحلیل میکند و با توجه به اطلاعاتی که از قبل به آن دادیم، یک جواب منطقی به ما میدهد.
به نمونه مثال زیر توجه کنید:
Speaks. Pl
1 Speaks (Pooya, Russian).
2 Speaks (Pezhman, English).
3 speak (mary, Russian).
4 Speaks (mary, english).
5 understand (person l, person2): - speaks (person1, L). Speaks (person2, L).
در خط یک تابع speaks با دو آرگمان تعریف شده که رابطه بین Pooya و russion برقرار کرده است.
• در خط 2 رابطه Pezhman و English برقرار شده است.
• در خط 5 قانون تابع understand به این صورت تعریف شده است که اگر person l زبان متغیر L را صحبت کند، person2 نیز باید زبان متغییر L را صحبت کند تا رابطه understand بین person l و person
2 برقرار شود.برای امتحان این پایگاه داده آن را توسط برنامه prolog باز کنید و دستور زیر را وارد نمایید:
?:-speaks (who, russion).
دستور فوق نمایانگر عبارت «چه کسی روسی صحبت میکند؟» است. پس اززدن کلید enter برنامه prolog اولین جایی از پایگاه داده که نتیجه درست به این دستور میدهد نشان میدهد، اگر در ادامه روی کلید enter بزنیم اجرای این دستور متوقف میشود ولی اگر کاراکتر؛ را وارد کنید جای دیگر از پایگاه داده را که به این دستور اشاره میکند نشان میدهد. نتیجه اجرای دستور را در شکل زیر میبینید.
?- Speaks (who, russian).
Who= Pooya;
Who= mary;
No
?-
حال ببینیم چگونه برنامه Prolog این نتیجهگیریهای منطقی را انجام میدهد:
Understands (Pezhman, Pooya)
طبق نوار درختی فوق مشخص است که ابتدا برنامه عبارات سمت راست را پردازش میکند در صورت پیدا کردن یک جواب عبارات سمت چپ را مورد مقایسه قرار میدهد و به صورت بازگشتی این عمل را تکرار میکند تا به یک جواب درست برسد.
یکی از مهم ترین موانع پردازش زبان طبیعی درک مفهومی جملات بوده است. اگر یک انسان چند جمله ی مرتبط و پشت سرهم یک متن را مطالعه نکند، از درک مفهوم صحیح یک جمله عاجز است و در این مسئله برای یک رایانه به مراتب احتمال خطای بیشتری وجود دارد . ابداع روشی کامل و بی نقص برای این که یک رایانه بتواند همانند انسان و یا حتی قوی تر از انسان تفکر کرده و به معانی جملات بیندیشد، کاری بس مشکل یا حتی غیر ممکن است و تلاش های اخیر در این زمینه تنها برای کم کردن فاصله انسان و رایانه صورت گرفته است.
محمد حسین اژدست