18 KiB
قدرتی زبان کی پروسیسنگ کا تعارف
یہ سبق قدرتی زبان کی پروسیسنگ، جو کہ کمپیوٹیشنل لسانیات کا ایک ذیلی شعبہ ہے، کی مختصر تاریخ اور اہم تصورات کا احاطہ کرتا ہے۔
لیکچر سے پہلے کا کوئز
تعارف
این ایل پی، جیسا کہ عام طور پر جانا جاتا ہے، مشین لرننگ کے ان مشہور شعبوں میں سے ایک ہے جہاں اسے پروڈکشن سافٹ ویئر میں لاگو اور استعمال کیا گیا ہے۔
✅ کیا آپ کسی ایسے سافٹ ویئر کے بارے میں سوچ سکتے ہیں جو آپ روزانہ استعمال کرتے ہیں اور جس میں شاید کچھ این ایل پی شامل ہو؟ آپ کے ورڈ پروسیسنگ پروگرامز یا موبائل ایپس کے بارے میں کیا خیال ہے جو آپ باقاعدگی سے استعمال کرتے ہیں؟
آپ سیکھیں گے:
- زبانوں کا تصور۔ زبانیں کیسے ترقی کرتی ہیں اور مطالعہ کے اہم شعبے کیا رہے ہیں۔
- تعریف اور تصورات۔ آپ کمپیوٹرز کے متن کو پروسیس کرنے کے طریقے، بشمول پارسنگ، گرامر، اور اسم اور فعل کی شناخت کے بارے میں تعریفیں اور تصورات سیکھیں گے۔ اس سبق میں کچھ کوڈنگ کے کام ہیں، اور کئی اہم تصورات متعارف کرائے گئے ہیں جنہیں آپ اگلے اسباق میں کوڈ کرنا سیکھیں گے۔
کمپیوٹیشنل لسانیات
کمپیوٹیشنل لسانیات کئی دہائیوں پر محیط تحقیق اور ترقی کا ایک شعبہ ہے جو یہ مطالعہ کرتا ہے کہ کمپیوٹرز زبانوں کے ساتھ کیسے کام کر سکتے ہیں، انہیں سمجھ سکتے ہیں، ترجمہ کر سکتے ہیں، اور ان کے ساتھ بات چیت کر سکتے ہیں۔ قدرتی زبان کی پروسیسنگ (این ایل پی) ایک متعلقہ شعبہ ہے جو اس بات پر مرکوز ہے کہ کمپیوٹرز 'قدرتی' یا انسانی زبانوں کو کیسے پروسیس کر سکتے ہیں۔
مثال - فون پر ڈکٹیٹ کرنا
اگر آپ نے کبھی اپنے فون پر ٹائپ کرنے کے بجائے ڈکٹیٹ کیا ہو یا کسی ورچوئل اسسٹنٹ سے سوال پوچھا ہو، تو آپ کی تقریر کو متن کی شکل میں تبدیل کیا گیا اور پھر اس زبان سے پارسیڈ کیا گیا جو آپ نے بولی۔ پھر معلوم شدہ کلیدی الفاظ کو ایک ایسے فارمیٹ میں پروسیس کیا گیا جسے فون یا اسسٹنٹ سمجھ سکے اور اس پر عمل کر سکے۔
حقیقی لسانی سمجھنا مشکل ہے! تصویر: Jen Looper
یہ ٹیکنالوجی کیسے ممکن ہوئی؟
یہ اس لیے ممکن ہوا کیونکہ کسی نے اس کام کے لیے کمپیوٹر پروگرام لکھا۔ چند دہائیوں پہلے، کچھ سائنس فکشن لکھنے والوں نے پیش گوئی کی تھی کہ لوگ زیادہ تر اپنے کمپیوٹرز سے بات کریں گے، اور کمپیوٹرز ہمیشہ بالکل سمجھیں گے کہ وہ کیا کہنا چاہتے ہیں۔ بدقسمتی سے، یہ مسئلہ اتنا آسان نہیں نکلا جتنا کہ بہت سے لوگوں نے سوچا تھا، اور حالانکہ آج یہ مسئلہ بہت بہتر طور پر سمجھا جاتا ہے، جملے کے معنی کو سمجھنے کے معاملے میں 'کامل' قدرتی زبان کی پروسیسنگ حاصل کرنے میں اہم چیلنجز موجود ہیں۔ خاص طور پر جب کسی جملے میں مزاح یا جذبات جیسے طنز کو سمجھنے کی بات آتی ہے۔
اس وقت، آپ کو اسکول کی کلاسیں یاد آ سکتی ہیں جہاں استاد نے جملے میں گرامر کے حصے کا احاطہ کیا تھا۔ کچھ ممالک میں، طلباء کو گرامر اور لسانیات ایک مخصوص مضمون کے طور پر پڑھائی جاتی ہیں، لیکن بہت سے ممالک میں، یہ موضوعات زبان سیکھنے کا حصہ ہوتے ہیں: یا تو آپ کی پہلی زبان پرائمری اسکول میں (پڑھنا اور لکھنا سیکھنا) اور شاید دوسری زبان پوسٹ پرائمری یا ہائی اسکول میں۔ اگر آپ اسم اور فعل یا اڈورب اور ایڈجیکٹیو کے درمیان فرق کرنے میں ماہر نہیں ہیں تو پریشان نہ ہوں!
اگر آپ سادہ حال اور حال جاری کے فرق کے ساتھ جدوجہد کرتے ہیں، تو آپ اکیلے نہیں ہیں۔ یہ بہت سے لوگوں کے لیے ایک مشکل چیز ہے، یہاں تک کہ کسی زبان کے مقامی بولنے والوں کے لیے بھی۔ اچھی خبر یہ ہے کہ کمپیوٹرز رسمی قواعد کو لاگو کرنے میں واقعی اچھے ہیں، اور آپ کوڈ لکھنا سیکھیں گے جو جملے کو انسان کی طرح پارسی کر سکتا ہے۔ بڑا چیلنج جس کا آپ بعد میں جائزہ لیں گے وہ جملے کے معنی اور جذبات کو سمجھنا ہے۔
ضروریات
اس سبق کے لیے، بنیادی ضرورت یہ ہے کہ آپ اس سبق کی زبان کو پڑھ اور سمجھ سکیں۔ کوئی ریاضی کے مسائل یا مساوات حل کرنے کی ضرورت نہیں ہے۔ حالانکہ اصل مصنف نے یہ سبق انگریزی میں لکھا ہے، یہ دیگر زبانوں میں بھی ترجمہ کیا گیا ہے، لہذا آپ ترجمہ پڑھ رہے ہو سکتے ہیں۔ ایسے مثالیں ہیں جہاں مختلف زبانوں کا استعمال کیا گیا ہے (مختلف زبانوں کے گرامر کے قواعد کا موازنہ کرنے کے لیے)۔ یہ ترجمہ نہیں کیے گئے ہیں، لیکن وضاحتی متن ترجمہ کیا گیا ہے، لہذا مطلب واضح ہونا چاہیے۔
کوڈنگ کے کاموں کے لیے، آپ Python استعمال کریں گے اور مثالیں Python 3.8 استعمال کر رہی ہیں۔
اس سیکشن میں، آپ کو ضرورت ہوگی اور استعمال کریں گے:
-
Python 3 کی سمجھ۔ Python 3 میں پروگرامنگ زبان کی سمجھ، یہ سبق ان پٹ، لوپس، فائل ریڈنگ، اور ارے استعمال کرتا ہے۔
-
ویژول اسٹوڈیو کوڈ + ایکسٹینشن۔ ہم ویژول اسٹوڈیو کوڈ اور اس کے Python ایکسٹینشن کا استعمال کریں گے۔ آپ Python IDE کا انتخاب بھی کر سکتے ہیں۔
-
TextBlob۔ TextBlob Python کے لیے ایک سادہ ٹیکسٹ پروسیسنگ لائبریری ہے۔ اپنے سسٹم پر اسے انسٹال کرنے کے لیے TextBlob سائٹ پر دی گئی ہدایات پر عمل کریں (جیسا کہ نیچے دکھایا گیا ہے، کارپورا بھی انسٹال کریں):
pip install -U textblob python -m textblob.download_corpora
💡 ٹپ: آپ Python کو براہ راست ویژول اسٹوڈیو کوڈ کے ماحول میں چلا سکتے ہیں۔ مزید معلومات کے لیے docs دیکھیں۔
مشینوں سے بات کرنا
کمپیوٹرز کو انسانی زبان سمجھنے کے قابل بنانے کی تاریخ کئی دہائیوں پرانی ہے، اور قدرتی زبان کی پروسیسنگ پر غور کرنے والے ابتدائی سائنسدانوں میں سے ایک ایلن ٹورنگ تھے۔
'ٹورنگ ٹیسٹ'
جب ٹورنگ 1950 کی دہائی میں مصنوعی ذہانت پر تحقیق کر رہے تھے، تو انہوں نے غور کیا کہ آیا ایک گفتگو کا ٹیسٹ دیا جا سکتا ہے جس میں ایک انسان اور کمپیوٹر (ٹائپ شدہ خط و کتابت کے ذریعے) شامل ہوں، جہاں گفتگو میں شامل انسان کو یقین نہ ہو کہ وہ کسی دوسرے انسان یا کمپیوٹر سے بات کر رہا ہے۔
اگر ایک خاص مدت کی گفتگو کے بعد، انسان یہ تعین نہ کر سکے کہ جوابات کمپیوٹر سے ہیں یا نہیں، تو کیا کمپیوٹر کو سوچنے کے قابل کہا جا سکتا ہے؟
تحریک - 'امیٹیشن گیم'
اس خیال کی تحریک ایک پارٹی گیم امیٹیشن گیم سے آئی، جہاں ایک انٹروگیٹر ایک کمرے میں اکیلا ہوتا ہے اور اسے یہ تعین کرنے کا کام دیا جاتا ہے کہ دوسرے کمرے میں موجود دو افراد میں سے کون مرد اور کون عورت ہے۔ انٹروگیٹر نوٹس بھیج سکتا ہے، اور ایسے سوالات سوچنے کی کوشش کرتا ہے جن کے تحریری جوابات پراسرار شخص کی جنس ظاہر کریں۔ ظاہر ہے، دوسرے کمرے میں موجود کھلاڑی انٹروگیٹر کو گمراہ یا الجھانے کی کوشش کرتے ہیں، جبکہ ایمانداری سے جواب دینے کا تاثر بھی دیتے ہیں۔
ایلیزا کی ترقی
1960 کی دہائی میں، ایم آئی ٹی کے ایک سائنسدان جوزف ویزن بام نے ایلیزا نامی ایک کمپیوٹر 'تھراپسٹ' تیار کی، جو انسان سے سوالات پوچھتی اور ان کے جوابات کو سمجھنے کا تاثر دیتی۔ تاہم، حالانکہ ایلیزا جملے کو پارس کر سکتی تھی اور کچھ گرامر کے ڈھانچے اور کلیدی الفاظ کی شناخت کر سکتی تھی تاکہ مناسب جواب دے سکے، اسے جملے کو سمجھنے کے قابل نہیں کہا جا سکتا تھا۔ اگر ایلیزا کو ایک جملہ دیا جاتا جس کا فارمیٹ "میں ہوں اداس" ہوتا، تو وہ جملے کے الفاظ کو دوبارہ ترتیب دے کر اور کچھ الفاظ شامل کر کے جواب بنا سکتی تھی "آپ کب سے ہیں اداس"۔
یہ تاثر دیتا کہ ایلیزا نے بیان کو سمجھا اور ایک فالو اپ سوال پوچھا، جبکہ حقیقت میں، وہ صرف زمانہ تبدیل کر رہی تھی اور کچھ الفاظ شامل کر رہی تھی۔ اگر ایلیزا کسی ایسے کلیدی لفظ کی شناخت نہ کر سکتی جس کے لیے اس کے پاس جواب ہو، تو وہ اس کے بجائے ایک بے ترتیب جواب دیتی جو کئی مختلف بیانات پر لاگو ہو سکتا تھا۔ ایلیزا کو آسانی سے دھوکہ دیا جا سکتا تھا، مثال کے طور پر اگر کوئی صارف لکھتا "آپ ہیں ایک سائیکل" تو وہ جواب دے سکتی تھی "میں کب سے ہوں ایک سائیکل؟"، بجائے اس کے کہ زیادہ معقول جواب دے۔
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ ایلیزا کے اصل پروگرام کے بارے میں ویڈیو دیکھ سکیں
نوٹ: آپ 1966 میں شائع ہونے والے ایلیزا کے اصل بیان کو پڑھ سکتے ہیں اگر آپ کے پاس ACM اکاؤنٹ ہے۔ متبادل کے طور پر، ایلیزا کے بارے میں ویکیپیڈیا پر پڑھیں۔
مشق - ایک بنیادی گفتگو کرنے والے بوٹ کو کوڈ کرنا
ایک گفتگو کرنے والا بوٹ، جیسے ایلیزا، ایک پروگرام ہے جو صارف کی ان پٹ حاصل کرتا ہے اور سمجھنے اور ذہانت سے جواب دینے کا تاثر دیتا ہے۔ ایلیزا کے برعکس، ہمارا بوٹ کئی قواعد نہیں رکھے گا جو ذہین گفتگو کا تاثر دیتے ہیں۔ اس کے بجائے، ہمارا بوٹ صرف ایک صلاحیت رکھے گا، کہ گفتگو کو بے ترتیب جوابات کے ساتھ جاری رکھے جو تقریباً کسی بھی معمولی گفتگو میں کام کر سکتے ہیں۔
منصوبہ
گفتگو کرنے والے بوٹ بنانے کے لیے آپ کے اقدامات:
- صارف کو بوٹ کے ساتھ بات چیت کرنے کے طریقے کے بارے میں ہدایات پرنٹ کریں
- ایک لوپ شروع کریں
- صارف کی ان پٹ قبول کریں
- اگر صارف نے باہر نکلنے کو کہا ہے، تو باہر نکلیں
- صارف کی ان پٹ کو پروسیس کریں اور جواب کا تعین کریں (اس صورت میں، جواب ممکنہ عمومی جوابات کی فہرست سے بے ترتیب انتخاب ہے)
- جواب پرنٹ کریں
- مرحلہ 2 پر واپس لوپ کریں
بوٹ بنانا
آئیے اگلے مرحلے میں بوٹ بناتے ہیں۔ ہم کچھ جملے متعین کرنے سے شروع کریں گے۔
-
Python میں خود اس بوٹ کو بنائیں، درج ذیل بے ترتیب جوابات کے ساتھ:
random_responses = ["That is quite interesting, please tell me more.", "I see. Do go on.", "Why do you say that?", "Funny weather we've been having, isn't it?", "Let's change the subject.", "Did you catch the game last night?"]
یہاں کچھ نمونہ آؤٹ پٹ ہے جو آپ کی رہنمائی کرے گا (صارف کی ان پٹ ان لائنز پر ہے جو
>
سے شروع ہوتی ہیں):Hello, I am Marvin, the simple robot. You can end this conversation at any time by typing 'bye' After typing each answer, press 'enter' How are you today? > I am good thanks That is quite interesting, please tell me more. > today I went for a walk Did you catch the game last night? > I did, but my team lost Funny weather we've been having, isn't it? > yes but I hope next week is better Let's change the subject. > ok, lets talk about music Why do you say that? > because I like music! Why do you say that? > bye It was nice talking to you, goodbye!
اس کام کا ایک ممکنہ حل یہاں ہے۔
✅ رکیں اور غور کریں
- کیا آپ کو لگتا ہے کہ بے ترتیب جوابات کسی کو دھوکہ دے سکتے ہیں کہ بوٹ واقعی انہیں سمجھتا ہے؟
- بوٹ کو زیادہ مؤثر بنانے کے لیے اسے کن خصوصیات کی ضرورت ہوگی؟
- اگر بوٹ واقعی جملے کے معنی کو 'سمجھ' سکتا ہے، تو کیا اسے گفتگو میں پچھلے جملوں کے معنی کو 'یاد' رکھنے کی ضرورت ہوگی؟
🚀چیلنج
اوپر دیے گئے "رکیں اور غور کریں" عناصر میں سے ایک کا انتخاب کریں اور اسے کوڈ میں نافذ کرنے کی کوشش کریں یا کاغذ پر ایک حل لکھیں جس میں پیسوڈو کوڈ استعمال کریں۔
اگلے سبق میں، آپ قدرتی زبان کو پارس کرنے اور مشین لرننگ کے کئی دیگر طریقوں کے بارے میں سیکھیں گے۔
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
نیچے دیے گئے حوالہ جات کو مزید مطالعہ کے مواقع کے طور پر دیکھیں۔
حوالہ جات
- شوبیرٹ، لینہارٹ، "کمپیوٹیشنل لسانیات"، دی اسٹینفورڈ انسائیکلوپیڈیا آف فلاسفی (اسپرنگ 2020 ایڈیشن)، ایڈورڈ این زالٹا (ایڈ)، URL = https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/.
- پرنسٹن یونیورسٹی "ورڈ نیٹ کے بارے میں۔" ورڈ نیٹ. پرنسٹن یونیورسٹی۔ 2010۔
اسائنمنٹ
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔