ورڈ ایمبیڈنگ ٹیوٹوریل: Word2vec with Gensim [مثال]

ورڈ ایمبیڈنگ کیا ہے؟

ورڈ ایمبیڈنگ۔ ایک لفظ کی نمائندگی کی قسم ہے جو مشین لرننگ الگورتھم کو اسی طرح کے معنی والے الفاظ کو سمجھنے کی اجازت دیتی ہے۔ یہ زبان کی ماڈلنگ اور فیچر سیکھنے کی تکنیک ہے جس میں الفاظ کو اعصابی نیٹ ورکس ، امکانی ماڈلز ، یا لفظ کی موجودگی کے میٹرکس پر جہت میں کمی کا استعمال کرتے ہوئے حقیقی اعداد کے ویکٹر میں نقشہ بنانا ہے۔ کچھ لفظ سرایت کرنے والے ماڈل ہیں Word2vec (Google) ، Glove (Stanford) ، اور تیز ترین (Facebook)۔

ورڈ ایمبیڈنگ کو تقسیم شدہ سیمنٹک ماڈل یا تقسیم شدہ نمائندگی یا سیمنٹک ویکٹر اسپیس یا ویکٹر اسپیس ماڈل بھی کہا جاتا ہے۔ جیسا کہ آپ ان ناموں کو پڑھتے ہیں ، آپ کو لفظی معنی ملتے ہیں جس کا مطلب ہے ملتے جلتے الفاظ کو ایک ساتھ درجہ بندی کرنا۔ مثال کے طور پر سیب ، آم ، کیلے جیسے پھلوں کو قریب رکھنا چاہیے جبکہ کتابیں ان الفاظ سے بہت دور ہوں گی۔ وسیع معنوں میں ، لفظ سرایت پھلوں کا ویکٹر بنائے گا جسے کتابوں کی ویکٹر نمائندگی سے بہت دور رکھا جائے گا۔

اس ورڈ ایمبیڈنگ ٹیوٹوریل میں ، آپ سیکھیں گے۔

ورڈ ایمبیڈنگ کہاں استعمال ہوتا ہے؟

ورڈ ایمبیڈنگ فیچر جنریشن ، ڈاکومنٹ کلسٹرنگ ، ٹیکسٹ کی درجہ بندی اور قدرتی زبان پراسیسنگ کے کاموں میں مدد کرتا ہے۔ آئیے ہم ان کی فہرست بنائیں اور ان میں سے ہر ایک ایپلی کیشن پر کچھ بحث کریں۔

  • اسی طرح کے الفاظ کا حساب لگائیں: ورڈ ایمبیڈنگ کا استعمال پیشن گوئی ماڈل کے تابع ہونے والے لفظ سے ملتے جلتے الفاظ تجویز کرنے کے لیے کیا جاتا ہے۔ اس کے ساتھ یہ مختلف الفاظ کے ساتھ ساتھ عام الفاظ بھی تجویز کرتا ہے۔
  • متعلقہ الفاظ کا ایک گروپ بنائیں: یہ سیمنٹک گروپنگ کے لیے استعمال کیا جاتا ہے جو کہ ایک جیسی خصوصیت کی چیزوں کو ایک دوسرے کے ساتھ گروپ کرے گا اور بہت دور۔
  • متن کی درجہ بندی کے لیے فیچر: متن کو ویکٹروں کی صفوں میں نقشہ بنایا گیا ہے جو ماڈل کو تربیت کے ساتھ ساتھ پیشن گوئی کے لیے بھی کھلایا جاتا ہے۔ متن پر مبنی درجہ بندی کرنے والے ماڈلز کو سٹرنگ پر ٹریننگ نہیں دی جا سکتی ، لہذا یہ ٹیکسٹ کو مشین ٹرین ایبل فارم میں تبدیل کر دے گا۔ مزید یہ کہ متن کی بنیاد پر درجہ بندی میں معنوی مدد کی تعمیر کی خصوصیات۔
  • دستاویز کلسٹرنگ۔ ایک اور ایپلی کیشن ہے جہاں ورڈ ایمبیڈنگ ورڈ 2 ویک بڑے پیمانے پر استعمال ہوتا ہے۔
  • قدرتی زبان پروسیسنگ: بہت سی ایسی ایپلی کیشنز ہیں جہاں ورڈ ایمبیڈنگ مفید ہے اور فیچر نکالنے کے مراحل جیسے کہ تقریر ٹیگنگ کے کچھ حصوں ، جذباتی تجزیہ اور نحوی تجزیہ پر فتح حاصل کرتی ہے۔

    اب ہمیں لفظ سرایت کا کچھ علم مل گیا ہے۔ ورڈ ایمبیڈنگ کو لاگو کرنے کے لیے کچھ روشنی مختلف ماڈلز پر بھی پھینکی جاتی ہے۔ یہ پورا ورڈ ایمبیڈنگ ٹیوٹوریل ایک ماڈل (Word2vec) پر مرکوز ہے۔

Word2vec کیا ہے؟

Word2vec بہتر لفظ کی نمائندگی کے لیے لفظ سرایت کرنے کے لیے ایک تکنیک/ماڈل ہے۔ یہ ایک قدرتی زبان پروسیسنگ کا طریقہ ہے جو بڑی تعداد میں عین مطابق نحوی اور لفظی رشتوں کو حاصل کرتا ہے۔ یہ ایک اتلی دو تہوں والا عصبی نیٹ ورک ہے جو مترادف الفاظ کا پتہ لگاسکتا ہے اور تربیت کے بعد جزوی جملوں کے لیے اضافی الفاظ تجویز کرسکتا ہے۔

اس ورڈ 2 ویک ٹیوٹوریل میں مزید جانے سے پہلے ، براہ کرم اتلے اور گہرے اعصابی نیٹ ورک کے درمیان فرق دیکھیں جیسا کہ ذیل میں ورڈ ایمبیڈنگ مثال ڈایاگرام میں دکھایا گیا ہے۔

اتلی نیورل نیٹ ورک ان پٹ اور آؤٹ پٹ کے درمیان صرف ایک پوشیدہ پرت پر مشتمل ہوتا ہے جبکہ ڈیپ نیورل نیٹ ورک ان پٹ اور آؤٹ پٹ کے درمیان متعدد پوشیدہ تہوں پر مشتمل ہوتا ہے۔ ان پٹ کو نوڈس کا نشانہ بنایا جاتا ہے جبکہ پوشیدہ پرت کے ساتھ ساتھ آؤٹ پٹ پرت میں نیوران ہوتے ہیں۔

تصویر: اتلی بمقابلہ گہری تعلیم۔

ورڈ 2 ویک دو پرتوں والا نیٹ ورک ہے جہاں ایک پوشیدہ پرت اور آؤٹ پٹ ہے۔

Word2vec گوگل میں ٹامس میکولوف کی سربراہی میں محقق کے ایک گروپ نے تیار کیا تھا۔ ورڈ 2 ویک بہتر اور زیادہ موثر ہے جو کہ سمندری تجزیاتی ماڈل ہے۔

Word2vec کیا کرتا ہے؟

Word2vec ویکٹر اسپیس نمائندگی میں الفاظ کی نمائندگی کرتا ہے۔ الفاظ کو ویکٹر کی شکل میں پیش کیا جاتا ہے اور جگہ کا تعین اس طرح کیا جاتا ہے کہ ایک جیسے معنی والے الفاظ ایک ساتھ دکھائی دیتے ہیں اور مختلف الفاظ بہت دور واقع ہوتے ہیں۔ اسے ایک معنوی تعلق بھی کہا جاتا ہے۔ اعصابی نیٹ ورک متن کو نہیں سمجھتے بلکہ وہ صرف اعداد کو سمجھتے ہیں۔ ورڈ ایمبیڈنگ متن کو عددی ویکٹر میں تبدیل کرنے کا ایک طریقہ فراہم کرتا ہے۔

Word2vec الفاظ کے لسانی سیاق و سباق کی تشکیل نو کرتا ہے۔ آگے جانے سے پہلے ہمیں سمجھنے دیں ، لسانی سیاق و سباق کیا ہے؟ عام زندگی کے منظر نامے میں جب ہم بات کرتے ہیں یا بات چیت کے لیے لکھتے ہیں ، دوسرے لوگ یہ جاننے کی کوشش کرتے ہیں کہ جملے کا مقصد کیا ہے۔ مثال کے طور پر ، 'ہندوستان کا درجہ حرارت کیا ہے' ، یہاں سیاق و سباق یہ ہے کہ صارف 'ہندوستان کا درجہ حرارت' جاننا چاہتا ہے جو کہ سیاق و سباق ہے۔ مختصر یہ کہ کسی جملے کا بنیادی مقصد سیاق و سباق ہوتا ہے۔ لفظ یا جملے کے ارد گرد بولی یا تحریری زبان (انکشاف) سیاق و سباق کے معنی کا تعین کرنے میں مدد کرتا ہے۔ Word2vec سیاق و سباق کے ذریعے الفاظ کی ویکٹر نمائندگی سیکھتا ہے۔

Word2vec کیوں؟

ورڈ ایمبیڈنگ سے پہلے۔

یہ جاننا ضروری ہے کہ ورڈ ایمبیڈنگ سے پہلے کون سا اپروچ استعمال کیا جاتا ہے اور اس کے نقصانات کیا ہیں اور پھر ہم اس موضوع کی طرف جائیں گے کہ ورڈ ایمبیڈنگ کے ذریعے ورڈ 2 ویک اپروچ کا استعمال کرتے ہوئے خامیوں پر کیسے قابو پایا جاتا ہے۔ آخر میں ، ہم منتقل کریں گے کہ Word2vec کیسے کام کرتا ہے کیونکہ یہ سمجھنا ضروری ہے کہ یہ کام کر رہا ہے۔

لیٹنٹ سیمنٹک تجزیہ کے لیے اپروچ

یہ وہ نقطہ نظر ہے جو لفظ سرایت سے پہلے استعمال ہوتا تھا۔ اس نے الفاظ کے بیگ کے تصور کو استعمال کیا جہاں الفاظ کو انکوڈ ویکٹر کی شکل میں پیش کیا جاتا ہے۔ یہ ایک ویرل ویکٹر کی نمائندگی ہے جہاں طول و عرض الفاظ کے سائز کے برابر ہے۔ اگر لغت میں لفظ آتا ہے تو اسے شمار کیا جاتا ہے ، ورنہ نہیں۔ مزید سمجھنے کے لیے ، براہ کرم ذیل کا پروگرام دیکھیں۔

[[1 2 1 1 1 1 1 1 1 1]]

آؤٹ پٹ:

[u'best', u'on2vhf', u'is', u'love', u'online', u'sitefor', u'the', u'to', u'tutorials', u'visit'] nltk(nltk.download('all'))

کوڈ کی وضاحت

  1. کاؤنٹ ویکٹرائزر وہ ماڈیول ہے جو الفاظ کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔ یہ سکلرن سے درآمد کیا جاتا ہے۔
  2. کلاس CountVectorizer کا استعمال کرتے ہوئے آبجیکٹ بنائیں۔
  3. فہرست میں وہ ڈیٹا لکھیں جو کاؤنٹ ویکٹرائزر میں لگانا ہے۔
  4. کلاس CountVectorizer سے بنائی گئی چیز میں ڈیٹا فٹ ہے۔
  5. الفاظ کا استعمال کرتے ہوئے ڈیٹا میں الفاظ کی گنتی کے لیے ایک بیگ آف ورڈ اپروچ لگائیں۔ اگر الفاظ میں لفظ یا ٹوکن دستیاب نہیں ہے ، تو اس طرح کی انڈیکس پوزیشن صفر پر سیٹ ہے۔
  6. لائن 5 میں متغیر جو کہ x ہے ایک صف میں تبدیل ہو جاتا ہے (طریقہ x کے لیے دستیاب ہے)۔ یہ جملے یا لائن 3 میں فراہم کردہ فہرست میں ہر ٹوکن کی گنتی فراہم کرے گا۔
  7. یہ وہ خصوصیات دکھائے گا جو الفاظ کا حصہ ہیں جب اسے لائن 4 میں ڈیٹا کا استعمال کرتے ہوئے لگایا گیا ہے۔

لیٹینٹ سیمنٹک اپروچ میں ، قطار منفرد الفاظ کی نمائندگی کرتی ہے جبکہ کالم اس وقت کی تعداد کی نمائندگی کرتا ہے جب یہ لفظ دستاویز میں ظاہر ہوتا ہے۔ یہ دستاویز میٹرکس کی شکل میں الفاظ کی نمائندگی ہے۔ ٹرم فریکوئینسی الٹا دستاویز فریکوئنسی (TFIDF) دستاویز میں الفاظ کی تعدد کو گننے کے لیے استعمال کیا جاتا ہے جو کہ دستاویز میں اصطلاح کی تعدد/ پورے کارپورس میں اصطلاح کی تعدد ہے۔

بیگ آف ورڈز کے طریقہ کار کی کمی۔

  • یہ لفظ کی ترتیب کو نظر انداز کرتا ہے ، مثال کے طور پر ، یہ برا ہے = برا یہ ہے۔
  • یہ الفاظ کے سیاق و سباق کو نظر انداز کرتا ہے۔ فرض کریں اگر میں یہ جملہ لکھوں 'اسے کتابیں پسند تھیں۔ تعلیم کتابوں میں بہترین پائی جاتی ہے۔ یہ دو ویکٹر بنائے گا ایک 'وہ کتابوں سے محبت کرتا تھا' اور دوسرا 'تعلیم کتابوں میں بہترین پائی جاتی ہے'۔ یہ ان دونوں کو آرتھوگونل کا علاج کرے گا جو انہیں آزاد بناتا ہے ، لیکن حقیقت میں ، وہ ایک دوسرے سے متعلق ہیں۔

ان حدود پر قابو پانے کے لیے لفظ ایمبیڈنگ تیار کیا گیا اور Word2vec اس کو نافذ کرنے کا ایک طریقہ ہے۔

Word2vec کیسے کام کرتا ہے؟

ورڈ 2 ویک اپنے آس پاس کے سیاق و سباق کی پیش گوئی کرکے لفظ سیکھتا ہے۔ مثال کے طور پر ، ہم لفظ 'وہ' لیتے ہیں۔ محبت کرتا ہے فٹ بال۔ '

ہم لفظ کے لیے Word2vec کا حساب لگانا چاہتے ہیں: محبت کرتا ہے۔

فرض کریں | _+_ |

لفظ۔ محبت کرتا ہے کارپس کے ہر لفظ پر حرکت کرتا ہے۔ الفاظ کے مابین نحوی اور معنوی تعلق انکوڈ ہے۔ اس سے مماثل اور تشبیہی الفاظ تلاش کرنے میں مدد ملتی ہے۔

لفظ کی تمام بے ترتیب خصوصیات۔ محبت کرتا ہے حساب کیا جاتا ہے یہ خصوصیات بیک پروپیگنڈے کے طریقہ کار کی مدد سے پڑوسی یا سیاق و سباق کے الفاظ سے متعلق تبدیل یا اپ ڈیٹ ہوتی ہیں۔

سیکھنے کا ایک اور طریقہ یہ ہے کہ اگر دو الفاظ کا سیاق و سباق یکساں ہو یا دو الفاظ میں ایک جیسی خصوصیات ہوں تو ایسے الفاظ متعلقہ ہوتے ہیں۔

ورڈ 2 ویک فن تعمیر

Word2vec کے زیر استعمال دو فن تعمیرات ہیں۔

  1. الفاظ کا مسلسل بیگ (CBOW)
  2. چنا چھوڑ دو

اس Word2vec ٹیوٹوریل میں مزید جانے سے پہلے ، آئیے اس بات پر تبادلہ خیال کریں کہ یہ فن تعمیر یا ماڈل لفظ نمائندگی کے نقطہ نظر سے کیوں اہم ہیں۔ لفظ کی نمائندگی سیکھنا بنیادی طور پر زیر نگرانی ہے ، لیکن ماڈل کو تربیت دینے کے لیے اہداف/لیبل کی ضرورت ہے۔ اسکیپ گرام اور CBOW غیر تربیت یافتہ نمائندگی کو ماڈل ٹریننگ کے لیے زیر نگرانی فارم میں تبدیل کرتے ہیں۔

CBOW میں ، موجودہ لفظ کے ارد گرد کے سیاق و سباق کی کھڑکیوں کا استعمال کرتے ہوئے پیش گوئی کی جاتی ہے۔ مثال کے طور پر ، اگر ڈبلیوi-1، میںi-2، میںi+1، میںi+2۔الفاظ یا سیاق و سباق دیے جاتے ہیں ، یہ ماڈل w فراہم کرے گا۔میں

اسکیپ گرام CBOW کے برعکس انجام دیتا ہے جس سے یہ ظاہر ہوتا ہے کہ یہ لفظ سے دیئے گئے تسلسل یا سیاق و سباق کی پیش گوئی کرتا ہے۔ آپ اسے سمجھنے کے لیے مثال کو پلٹ سکتے ہیں۔ اگر ڈبلیومیںدیا گیا ہے ، یہ سیاق و سباق کی پیش گوئی کرے گا۔i-1، میںi-2، میںi+1، میںi+2۔

Word2vec CBOW (مسلسل الفاظ کا بیگ) اور سکم گرام کے درمیان انتخاب کرنے کا آپشن فراہم کرتا ہے۔ اس طرح کے پیرامیٹرز ماڈل کی تربیت کے دوران فراہم کیے جاتے ہیں۔ کسی کے پاس منفی نمونے لینے یا درجہ بندی کی سافٹ میکس پرت استعمال کرنے کا اختیار ہوسکتا ہے۔

الفاظ کا مسلسل بیگ۔

آئیے ورڈ آرکیٹیکچر کے مسلسل بیگ کو سمجھنے کے لیے ایک سادہ Word2vec مثال ڈایاگرام کھینچتے ہیں۔

ورڈ آرکیٹیکچر کا فگر کنٹینیوس بیگ۔

آئیے ہم مساوات کا حساب کتاب کریں فرض کریں کہ V الفاظ کا سائز ہے اور N پوشیدہ پرت کا سائز ہے۔ ان پٹ کی وضاحت {x ہے۔i-1، ایکسi-2 ،ایکسمیں+1 ،ایکسi+2۔}. ہم V * N کو ضرب دے کر وزن کا میٹرکس حاصل کرتے ہیں۔ ایک اور میٹرکس وزن کے میٹرکس کے ساتھ ان پٹ ویکٹر کو ضرب دے کر حاصل کیا جاتا ہے۔ یہ مندرجہ ذیل مساوات سے بھی سمجھا جا سکتا ہے۔

h = xi۔tIN

جہاں xit؟ W بالترتیب ان پٹ ویکٹر اور ویٹ میٹرکس ہیں ،

سیاق و سباق اور اگلے لفظ کے مابین مماثلت کا حساب لگانے کے لیے ، براہ کرم نیچے دی گئی مساوات سے رجوع کریں۔

u = پیش گوئی کی نمائندگی * x۔

پیش گوئی کی گئی نمائندگی ماڈل حاصل کی گئی ہے؟

اسکیپ گرام ماڈل

اسکیپ گرام اپروچ ان پٹ ورڈ دیئے گئے جملے کی پیش گوئی کرنے کے لیے استعمال ہوتا ہے۔ اسے بہتر طور پر سمجھنے کے لیے آئیے ڈایاگرام کھینچیں جیسا کہ ذیل میں Word2vec مثال میں دکھایا گیا ہے۔

فگر اسکیپ-گرام ماڈل۔

کوئی اسے لفظ ماڈل کے مسلسل بیگ کے الٹ سمجھ سکتا ہے جہاں ان پٹ لفظ ہے اور ماڈل سیاق و سباق فراہم کرتا ہے۔ ہم یہ بھی نتیجہ اخذ کر سکتے ہیں کہ ٹارگٹ ان پٹ کو کھلایا جاتا ہے اور سیاق و سباق کے الفاظ کی منتخب تعداد کو ایڈجسٹ کرنے کے لیے آؤٹ پٹ پرت کو کئی بار نقل کیا جاتا ہے۔ تمام آؤٹ پٹ لیئر سے ایرر ویکٹر کا خلاصہ بیک پروپیگریشن طریقہ کے ذریعے وزن کو ایڈجسٹ کرنے کے لیے کیا گیا ہے۔

کون سا ماڈل منتخب کرنا ہے؟

CBOW اسکیپ گرام سے کئی گنا تیز ہے اور بار بار الفاظ کے لیے بہتر فریکوئنسی فراہم کرتا ہے جبکہ سکپ گرام کو تھوڑی مقدار کے ٹریننگ ڈیٹا کی ضرورت ہوتی ہے اور یہاں تک کہ نایاب الفاظ یا جملے کی نمائندگی کرتا ہے۔

Word2vec اور NLTK کے درمیان تعلق۔

این ایل ٹی کے قدرتی زبان کا ٹول کٹ ہے۔ یہ متن کی پری پروسیسنگ کے لیے استعمال ہوتا ہے۔ کوئی مختلف آپریشن کر سکتا ہے جیسے کہ تقریر کے کچھ حصے ٹیگ کرنا ، لیمیٹائزنگ ، سٹیمنگ ، الفاظ کو ہٹانا روکنا ، نایاب الفاظ یا کم استعمال ہونے والے الفاظ کو ہٹانا۔ یہ متن کو صاف کرنے میں مدد کرتا ہے اور ساتھ ہی موثر الفاظ سے خصوصیات کو تیار کرنے میں بھی مدد کرتا ہے۔ دوسرے طریقے سے ، Word2vec سیمنٹک (قریب سے متعلقہ اشیاء کو ایک ساتھ) اور نحوی (ترتیب) ملاپ کے لیے استعمال کیا جاتا ہے۔ ورڈ 2 ویک کا استعمال کرتے ہوئے ، کوئی ایک جیسے الفاظ ، مختلف الفاظ ، جہتی کمی ، اور بہت سے دوسرے تلاش کرسکتا ہے۔ Word2vec کی ایک اور اہم خصوصیت متن کی اعلی جہتی نمائندگی کو ویکٹر کے نچلے جہتی میں تبدیل کرنا ہے۔

NLTK اور Word2vec کہاں استعمال کریں؟

اگر کسی کو کچھ عمومی مقاصد کے کاموں کو پورا کرنا ہے جیسا کہ اوپر ذکر کیا گیا ہے جیسا کہ ٹوکنائزیشن ، پی او ایس ٹیگنگ اور تجزیہ کرنے کے لیے این ایل ٹی کے استعمال کرنا ضروری ہے جبکہ کچھ سیاق و سباق ، ٹاپک ماڈلنگ ، یا دستاویز کی مماثلت کے مطابق الفاظ کی پیشن گوئی کے لیے ورڈ 2 ویک استعمال کرنا ضروری ہے۔

کوڈ کی مدد سے NLTK اور Word2vec کا رشتہ۔

NLTK اور Word2vec کو مل کر اسی طرح کے الفاظ کی نمائندگی یا نحوی ملاپ تلاش کرنے کے لیے استعمال کیا جا سکتا ہے۔ NLTK ٹول کٹ کو NLTK کے ساتھ آنے والے بہت سے پیکجوں کو لوڈ کرنے کے لیے استعمال کیا جا سکتا ہے اور Word2vec کا استعمال کرتے ہوئے ماڈل بنایا جا سکتا ہے۔ اس کے بعد اسے ریئل ٹائم الفاظ پر آزمایا جا سکتا ہے۔ آئیے مندرجہ ذیل کوڈ میں دونوں کا مجموعہ دیکھیں۔ مزید کارروائی کرنے سے پہلے ، براہ کرم کارپورا پر ایک نظر ڈالیں جو NLTK فراہم کرتا ہے۔ آپ کمانڈ کا استعمال کرتے ہوئے ڈاؤن لوڈ کرسکتے ہیں | _+_ |

فگر کارپورا NLTK کا استعمال کرتے ہوئے ڈاؤن لوڈ کیا گیا۔

براہ کرم کوڈ کے لیے اسکرین شاٹ دیکھیں۔ | _+_ |

آؤٹ پٹ: | _+_ |

کوڈ کی وضاحت۔

  1. nltk لائبریری درآمد کی گئی ہے جہاں سے آپ abc corpus ڈاؤن لوڈ کرسکتے ہیں جسے ہم اگلے مرحلے میں استعمال کریں گے۔
  2. Gensim درآمد کیا جاتا ہے۔ اگر Gensim Word2vec انسٹال نہیں ہے تو ، براہ کرم اسے 'pip3 install gensim' کمانڈ کے ذریعے انسٹال کریں۔ براہ کرم نیچے سکرین شاٹ دیکھیں۔

پی آئی پی کا استعمال کرتے ہوئے جینسم انسٹال کرنا۔

  1. کارپورس abc درآمد کریں جو nltk.download ('abc') کا استعمال کرتے ہوئے ڈاؤن لوڈ کیا گیا ہے۔
  2. فائلوں کو ماڈل Word2vec میں منتقل کریں جو Gensim کو بطور جملے درآمد کیا جاتا ہے۔
  3. الفاظ کو متغیر کی شکل میں محفوظ کیا جاتا ہے۔
  4. نمونہ لفظ سائنس پر ماڈل کا تجربہ کیا جاتا ہے کیونکہ یہ فائلیں سائنس سے متعلق ہیں۔
  5. یہاں 'سائنس' کے اسی لفظ کی پیش گوئی ماڈل نے کی ہے۔

ایکٹیویٹرز اور ورڈ 2 ویک۔

نیوران کا ایکٹیویشن فنکشن اس نیورون کے آؤٹ پٹ کی وضاحت کرتا ہے جس میں آدانوں کا ایک سیٹ دیا جاتا ہے۔ حیاتیاتی طور پر ہمارے دماغ کی ایک ایسی سرگرمی سے متاثر ہوتی ہے جہاں مختلف نیوران مختلف محرکات کے ذریعے چالو ہوتے ہیں۔ آئیے مندرجہ ذیل ڈایاگرام کے ذریعے ایکٹیویشن فنکشن کو سمجھیں۔

فگر انڈرسٹینڈنگ ایکٹیویشن فنکشن۔

یہاں x1 ، x2 ، .. x4 نیورل نیٹ ورک کا نوڈ ہے۔

ڈبلیو 1 ، ڈبلیو 2 ، ڈبلیو 3 نوڈ کا وزن ہے ،

؟ تمام وزن اور نوڈ ویلیو کا مجموعہ ہے جو ایکٹیویشن فنکشن کے طور پر کام کرتا ہے۔

ایکٹیویشن فنکشن کیوں؟

اگر کوئی ایکٹیویشن فنکشن استعمال نہیں کیا جاتا ہے تو آؤٹ پٹ لکیری ہوگا لیکن لکیری فنکشن کی فعالیت محدود ہے۔ پیچیدہ فعالیت حاصل کرنے کے لیے جیسے آبجیکٹ کا پتہ لگانا ، امیج کی درجہ بندی ، آواز کا استعمال کرتے ہوئے ٹائپنگ ٹیکسٹ اور کئی دیگر غیر لکیری آؤٹ پٹ کی ضرورت ہوتی ہے جو کہ ایکٹیویشن فنکشن کے ذریعے حاصل کی جاتی ہے۔

ورڈ ایمبیڈنگ (Word2vec) میں ایکٹیویشن لیئر کا حساب کیسے لیا جاتا ہے

سافٹ میکس لیئر (نارملائزڈ ایکسپونینشل فنکشن) آؤٹ پٹ لیئر فنکشن ہے جو ہر نوڈ کو ایکٹیویٹ یا فائر کرتا ہے۔ ایک اور نقطہ نظر استعمال کیا جاتا ہے ہیرارکیکل سافٹ میکس جہاں پیچیدگی کا حساب O (لاگ۔V) جس میں سافٹ میکس O (V) ہے جہاں V الفاظ کا سائز ہے۔ ان کے درمیان فرق درجہ بندی سافٹ میکس پرت میں پیچیدگی میں کمی ہے۔ اس کی (درجہ بندی سافٹ میکس) فعالیت کو سمجھنے کے لئے ، براہ کرم ذیل میں ورڈ ایمبیڈنگ کی مثال دیکھیں:

شکل ساخت کی طرح درجہ بندی کا سافٹ میکس درخت۔

فرض کریں کہ ہم لفظ کے مشاہدے کے امکان کا حساب لگانا چاہتے ہیں۔ محبت ایک خاص سیاق و سباق دیا جڑ سے لیف نوڈ کی طرف بہاؤ پہلے نوڈ 2 اور پھر نوڈ 5 میں ہوگا۔ لہذا اگر ہمارے پاس الفاظ کا سائز 8 ہے تو صرف تین حساب کی ضرورت ہے۔ تو یہ ایک لفظ کے احتمال کے تخفیف ، حساب کی اجازت دیتا ہے ( محبت ).

درجہ بندی سافٹ میکس کے علاوہ اور کیا اختیارات دستیاب ہیں؟

اگر لفظ کے سرایت کے لیے عام معنوں میں بات کی جائے تو دستیاب سافٹ میکس ، سی این این-سافٹ میکس ، اہمیت کے نمونے لینے ، اڈاپٹیو اہمیت کے نمونے لینے ، شور کے متضاد تخمینے ، منفی نمونے لینے ، خود کو معمول پر لانے ، اور معمولی نارملائزیشن ہیں۔

خاص طور پر Word2vec کے بارے میں بات کرتے ہوئے ہمارے پاس منفی نمونے دستیاب ہیں۔

منفی نمونے لینے کا طریقہ تربیت کے اعداد و شمار کا نمونہ ہے۔ یہ کسی حد تک اسٹاکسٹک میلان نزول کی طرح ہے ، لیکن کچھ فرق کے ساتھ۔ منفی نمونے لینے صرف منفی تربیتی مثالوں کے لیے نظر آتے ہیں۔ یہ شور متضاد تخمینہ اور تصادفی الفاظ پر مبنی ہے ، سیاق و سباق میں نہیں۔ یہ ایک تیز تربیت کا طریقہ ہے اور تصادفی طور پر سیاق و سباق کا انتخاب کرتا ہے۔ اگر پیش گوئی شدہ لفظ تصادفی طور پر منتخب سیاق و سباق میں ظاہر ہوتا ہے تو دونوں ویکٹر ایک دوسرے کے قریب ہوتے ہیں۔

کیا نتیجہ اخذ کیا جا سکتا ہے؟

ایکٹیویٹرز نیوران کو اس طرح نکال رہے ہیں جس طرح ہمارے نیوران بیرونی محرکات کا استعمال کرتے ہوئے نکالے جاتے ہیں۔ سافٹ میکس لیئر آؤٹ پٹ لیئر فنکشن میں سے ایک ہے جو ورڈ ایمبیڈنگ کی صورت میں نیوران کو آگ لگاتی ہے۔ ورڈ 2 ویک میں ہمارے پاس اختیارات ہیں جیسے درجہ بندی سافٹ میکس اور منفی نمونے لینے۔ ایکٹیویٹرز کا استعمال کرتے ہوئے ، کوئی لکیری فنکشن کو نان لائنر فنکشن میں تبدیل کرسکتا ہے ، اور اس طرح کے استعمال سے ایک پیچیدہ مشین لرننگ الگورتھم نافذ کیا جاسکتا ہے۔

Gensim کیا ہے؟

جینسم۔ ایک اوپن سورس ٹاپک ماڈلنگ اور نیچرل لینگویج پروسیسنگ ٹول کٹ ہے جو ازگر اور سائتھون میں نافذ ہے۔ Gensim ٹول کٹ صارفین کو اجازت دیتا ہے کہ وہ ورڈ 2 ویک کو ٹاپک ماڈلنگ کے لیے ٹیکسٹ باڈی میں پوشیدہ ڈھانچہ دریافت کریں۔ Gensim نہ صرف Word2vec کا نفاذ فراہم کرتا ہے بلکہ Doc2vec اور FastText کے لیے بھی۔

یہ سبق Word2vec کے بارے میں ہے لہذا ہم موجودہ موضوع پر قائم رہیں گے۔

Gensim کا استعمال کرتے ہوئے Word2vec کا نفاذ۔

اب تک ہم نے بحث کی ہے کہ Word2vec کیا ہے ، اس کے مختلف فن تعمیرات ، الفاظ کے بیگ سے Word2vec میں تبدیلی کیوں ہے ، Word2vec اور NLTK کے درمیان براہ راست کوڈ اور ایکٹیویشن افعال کے ساتھ تعلق۔ اس سیکشن میں ، Gensim Word2vec کا استعمال کرتے ہوئے Word2vec کو نافذ کرے گا۔

مرحلہ 1) ڈیٹا اکٹھا کرنا۔

کسی بھی مشین لرننگ ماڈل کو نافذ کرنے یا قدرتی زبان پروسیسنگ کو نافذ کرنے کا پہلا مرحلہ ڈیٹا اکٹھا کرنا ہے۔

براہ کرم ذہین چیٹ بوٹ بنانے کے لیے ڈیٹا کا مشاہدہ کریں جیسا کہ ذیل میں Gensim Word2vec مثال میں دکھایا گیا ہے۔ | _+_ |

یہ ہے جو ہم ڈیٹا سے سمجھتے ہیں۔

  • اس ڈیٹا میں تین چیزیں ٹیگ ، پیٹرن اور جوابات شامل ہیں۔ ٹیگ نیت ہے (بحث کا موضوع کیا ہے)۔
  • ڈیٹا JSON فارمیٹ میں ہے۔
  • پیٹرن ایک سوال ہے جو صارفین بوٹ سے پوچھیں گے۔
  • جوابات وہ جواب ہے جو چیٹ بوٹ متعلقہ سوال/پیٹرن کو فراہم کرے گا۔

مرحلہ 2) ڈیٹا پری پروسیسنگ

خام ڈیٹا پر کارروائی کرنا بہت ضروری ہے۔ اگر صاف شدہ ڈیٹا مشین کو کھلایا جاتا ہے ، تو ماڈل زیادہ درست جواب دے گا اور ڈیٹا کو زیادہ موثر طریقے سے سیکھے گا۔

اس مرحلے میں سٹاپ ورڈز ، سٹیمنگ ، غیر ضروری الفاظ وغیرہ کو ہٹانا شامل ہے ، آگے بڑھنے سے پہلے ، ڈیٹا کو لوڈ کرنا اور اسے ڈیٹا فریم میں تبدیل کرنا ضروری ہے۔ برائے مہربانی اس طرح کے کوڈ کو دیکھیں۔ _+_ |

کوڈ کی وضاحت

  1. چونکہ ڈیٹا json فارمیٹ کی شکل میں ہے لہذا json درآمد کیا جاتا ہے۔
  2. فائل متغیر میں محفوظ ہے۔
  3. فائل کھلی ہے اور ڈیٹا متغیر میں بھری ہوئی ہے۔

اب ڈیٹا درآمد کیا گیا ہے اور اب وقت آگیا ہے کہ ڈیٹا کو ڈیٹا فریم میں تبدیل کیا جائے۔ اگلا مرحلہ دیکھنے کے لیے براہ کرم نیچے دیے گئے کوڈ کو دیکھیں _ _ _ _ |

کوڈ کی وضاحت

1. پانڈا کا استعمال کرتے ہوئے ڈیٹا کو ڈیٹا فریم میں تبدیل کیا جاتا ہے جو اوپر درآمد کیا گیا تھا۔

2. یہ کالم پیٹرن میں فہرست کو سٹرنگ میں تبدیل کر دے گا۔ | _+_ |

کوڈ کی وضاحت

1. این ایل ٹی کے ٹول کٹ سے سٹاپ ورڈ ماڈیول کا استعمال کرتے ہوئے انگریزی سٹاپ الفاظ درآمد کیے جاتے ہیں۔

2. متن کے تمام الفاظ حالت اور لیمبڈا فنکشن کے لیے استعمال کرتے ہوئے لوئر کیس میں تبدیل ہو جاتے ہیں۔ لیمبڈا فنکشن ایک گمنام فنکشن ہے۔

3. ڈیٹا فریم میں متن کی تمام قطاروں کو سٹرنگ اوقاف کے لیے چیک کیا جاتا ہے ، اور یہ فلٹر کیے جاتے ہیں۔

4. حروف جیسے اعداد یا نقطے کو باقاعدہ اظہار کا استعمال کرتے ہوئے ہٹا دیا جاتا ہے۔

5. متن سے ہندسے ہٹا دیے جاتے ہیں۔

6. اس مرحلے پر الفاظ کو ہٹا دیا جاتا ہے۔

7. الفاظ کو اب فلٹر کیا جاتا ہے ، اور ایک ہی لفظ کی مختلف شکل کو لیمیٹائزیشن کے ذریعے ہٹا دیا جاتا ہے۔ ان کے ساتھ ، ہم نے ڈیٹا پری پروسیسنگ مکمل کر لی ہے۔

آؤٹ پٹ:

 from sklearn.feature_extraction.text import CountVectorizer vectorizer=CountVectorizer() data_corpus=['on2vhf is the best sitefor online tutorials. I love to visit on2vhf.'] vocabulary=vectorizer.fit(data_corpus) X= vectorizer.transform(data_corpus) print(X.toarray()) print(vocabulary.get_feature_names()) 

مرحلہ 3) ورڈ 2 ویک کا استعمال کرتے ہوئے نیورل نیٹ ورک کی عمارت۔

اب وقت آگیا ہے کہ Gensim Word2vec ماڈیول کا استعمال کرتے ہوئے ایک ماڈل بنایا جائے۔ ہمیں Gensim سے Word2vec درآمد کرنا ہے۔ آئیے ہم یہ کرتے ہیں ، اور پھر ہم تعمیر کریں گے اور آخری مرحلے میں ہم ماڈل کو ریئل ٹائم ڈیٹا پر چیک کریں گے۔ | _+_ |

اب اس Gensim Word2vec ٹیوٹوریل میں ، ہم کامیابی کے ساتھ Word2Vec کا استعمال کرتے ہوئے ماڈل بنا سکتے ہیں۔ ورڈ 2 ویک کا استعمال کرتے ہوئے ماڈل بنانے کا طریقہ سیکھنے کے لیے براہ کرم کوڈ کی اگلی لائن سے رجوع کریں۔ متن کو ایک فہرست کی شکل میں ماڈل فراہم کیا جاتا ہے لہذا ہم مندرجہ ذیل کوڈ کا استعمال کرتے ہوئے متن کو ڈیٹا فریم سے فہرست میں تبدیل کریں گے _ _ _ _ |

کوڈ کی وضاحتیں۔

1. بڑی_ فہرست بنائی جہاں اندرونی فہرست شامل ہے۔ یہ وہ فارمیٹ ہے جو ماڈل Word2Vec کو کھلایا جاتا ہے۔

2. لوپ نافذ ہے ، اور ڈیٹا فریم کے پیٹرن کالم کی ہر اندراج کو دہرایا جاتا ہے۔

3. کالم پیٹرن کا ہر عنصر تقسیم اور اندرونی فہرست لی میں محفوظ ہے۔

4. اندرونی فہرست بیرونی فہرست کے ساتھ شامل ہے۔

5. یہ فہرست Word2Vec ماڈل کو فراہم کی گئی ہے۔ آئیے یہاں فراہم کردہ کچھ پیرامیٹرز کو سمجھتے ہیں۔

کم سے کم گنتی: یہ اس سے کم کل تعدد والے تمام الفاظ کو نظر انداز کر دے گا۔

سائز: یہ لفظ ویکٹر کی جہت کو بتاتا ہے۔

کارکنان: یہ ماڈل کی تربیت کے لیے دھاگے ہیں۔

دیگر اختیارات بھی دستیاب ہیں ، اور کچھ اہم ذیل میں بیان کیے گئے ہیں۔

کھڑکی: ایک جملے میں موجودہ اور پیش گوئی شدہ لفظ کے درمیان زیادہ سے زیادہ فاصلہ۔

Sg: یہ ایک ٹریننگ الگورتھم ہے اور 1 اسکیپ گرام کے لیے اور 0 مسلسل الفاظ کے بیگ کے لیے۔ ہم نے اوپر ان پر تفصیل سے بحث کی ہے۔

Hs: اگر یہ 1 ہے تو ہم تربیت کے لیے درجہ بندی سافٹ میکس استعمال کر رہے ہیں اور اگر 0 ہے تو منفی نمونے استعمال کیے جاتے ہیں۔

الفا: ابتدائی سیکھنے کی شرح

آئیے ذیل میں حتمی کوڈ دکھائیں | _+_ |

مرحلہ 4) ماڈل کی بچت

ماڈل کو بن اور ماڈل کی شکل میں محفوظ کیا جا سکتا ہے۔ بن بائنری فارمیٹ ہے۔ براہ کرم ماڈل کو بچانے کے لیے نیچے دی گئی لائنیں دیکھیں _ _ _ _ |

مذکورہ کوڈ کی وضاحت۔

1. ماڈل کو .model فائل کی شکل میں محفوظ کیا جاتا ہے۔

2. ماڈل .bin فائل کی شکل میں محفوظ ہے۔

ہم اس ماڈل کو ریئل ٹائم ٹیسٹنگ کے لیے استعمال کریں گے جیسے ملتے جلتے الفاظ ، مختلف الفاظ اور عام الفاظ۔

مرحلہ 5) ماڈل لوڈ کرنا اور ریئل ٹائم ٹیسٹنگ کرنا۔

ماڈل نیچے کوڈ | _+_ | کا استعمال کرتے ہوئے بھری ہوئی ہے۔

اگر آپ اس سے ذخیرہ الفاظ پرنٹ کرنا چاہتے ہیں تو ذیل میں کمانڈ vocab = list (model.wv.vocab) کا استعمال کرتے ہوئے کیا جاتا ہے۔

براہ کرم نتیجہ دیکھیں | _+_ |

مرحلہ 6) سب سے ملتے جلتے الفاظ کی جانچ۔

آئیے چیزوں کو عملی طور پر نافذ کریں | _+_ |

براہ کرم نتیجہ دیکھیں | _+_ |

مرحلہ 7) فراہم کردہ الفاظ سے لفظ سے مماثل نہیں ہے۔

 loves = Vin. P(Vout / Vin) is calculated where, Vin is the input word. P is the probability of likelihood. Vout is the output word. 

ہم نے الفاظ فراہم کیے ہیں۔ 'بعد میں ملیں گے ، تشریف لانے کے لیے شکریہ'۔ یہ مرضی ان الفاظ سے سب سے زیادہ مختلف الفاظ پرنٹ کریں۔ آئیے اس کوڈ کو چلائیں اور نتیجہ تلاش کریں۔

مندرجہ بالا کوڈ پر عمل درآمد کے بعد نتیجہ۔ | _+_ |

مرحلہ 8) دو الفاظ کے درمیان مماثلت تلاش کرنا۔

یہ دو الفاظ کے مابین مماثلت کا نتیجہ بتائے گا۔ براہ کرم ذیل میں کوڈ دیکھیں کہ اس سیکشن کو کس طرح عمل میں لایا جائے۔ | _+_ |

مندرجہ بالا کوڈ کا نتیجہ ذیل میں ہے۔

0.13706۔

آپ مندرجہ ذیل کوڈ پر عمل کرکے اسی طرح کے الفاظ تلاش کرسکتے ہیں | _+_ |

اوپر والے کوڈ کا آؤٹ پٹ۔

 import nltk import gensim from nltk.corpus import abc model= gensim.models.Word2Vec(abc.sents()) X= list(model.wv.vocab) data=model.most_similar('science') print(data) 

نتیجہ

  • ورڈ ایمبیڈنگ لفظ کی نمائندگی کی ایک قسم ہے جو کہ مشین لرننگ الگورتھم کے ذریعہ اسی طرح کے معنی والے الفاظ کو سمجھنے کی اجازت دیتی ہے۔
  • ورڈ ایمبیڈنگ کا استعمال اسی طرح کے الفاظ کی گنتی کے لیے کیا جاتا ہے ، متعلقہ الفاظ کا ایک گروپ بنائیں ، ٹیکسٹ کی درجہ بندی کے لیے فیچر ، ڈاکومنٹ کلسٹرنگ ، قدرتی زبان پروسیسنگ
  • Word2vec نے وضاحت کی: Word2vec ایک اتلی دو پرتوں والا نیورل نیٹ ورک ماڈل ہے جو کہ لفظ کی بہتر نمائندگی کے لیے ورڈ ایمبیڈنگ پیدا کرتا ہے
  • Word2vec ویکٹر اسپیس نمائندگی میں الفاظ کی نمائندگی کرتا ہے۔ الفاظ کو ویکٹر کی شکل میں پیش کیا جاتا ہے اور جگہ کا تعین اس طرح کیا جاتا ہے کہ اسی طرح کے الفاظ ایک ساتھ دکھائی دیتے ہیں اور مختلف الفاظ بہت دور واقع ہوتے ہیں
  • ورڈ 2 ویک الگورتھم 2 آرکیٹیکچر کنٹینیوس بیگ آف ورڈز (CBOW) استعمال کرتا ہے اور گرام کو چھوڑ دیتا ہے۔
  • CBOW اسکیپ گرام سے کئی گنا تیز ہے اور بار بار الفاظ کے لیے بہتر فریکوئنسی فراہم کرتا ہے جبکہ سکپ گرام کو تھوڑی مقدار کے ٹریننگ ڈیٹا کی ضرورت ہوتی ہے اور یہاں تک کہ نایاب الفاظ یا جملے کی نمائندگی کرتا ہے۔
  • NLTK اور Word2vec کو ایک ساتھ استعمال کیا جا سکتا ہے جو طاقتور ایپلی کیشنز بناتا ہے۔
  • نیوران کا ایکٹیویشن فنکشن اس نیورون کے آؤٹ پٹ کی وضاحت کرتا ہے جس میں آدانوں کا ایک سیٹ دیا جاتا ہے۔ Word2vec میں۔ سافٹ میکس لیئر (نارملائزڈ ایکسپونینشل فنکشن) آؤٹ پٹ لیئر فنکشن ہے جو ہر نوڈ کو ایکٹیویٹ یا فائر کرتا ہے۔ Word2vec میں منفی نمونے بھی دستیاب ہیں۔
  • جینسم ایک ٹاپک ماڈلنگ ٹول کٹ ہے جسے ازگر میں لاگو کیا جاتا ہے۔