← Back to Atlas LLM Course
Chapter 1: What is a Word? Mathematically?

1.2 Bag of Words (BoW)

خنيشة دالكلمات | Bag of Words

ايلا قريتي لارتيكل اللول. غاتعرف بلي باقين كنقلبو على كيفاش نديرو representation ديال text بأعداد. شفنا أمثلة ديال representations والعيوب لي كيجيو معاهم ومكيخليوهمش خدامين مزيان لينا.

فهاد لارتيكل غانهضرو على representation لي لعبات دور كبير فالتطور ديال الضومين د الNLP: الBag of Words.

من اللغة للأعداد

تخايل معايا بلي عندك واحد الModel لي يقدر يعبر لينا الEmotion لي كاينة فشي صفحة ديال شي كتاب. بكل بساطة: هاد الموديل كياخذ صفحة ديال شي كتاب وكيعطيك مابين 0 و 100 شحال ديال الفرحة كاينة فديك الصفحة: 100 كتعني بلي دكشي لي غتقرا غيردك فرحان و 0 كيعني بلي دكشي لي مكتوب غالبا غايكعيك ولا غايقلقك.

figure1

فالحقيقة هاد الModel معندوش شي تأثير كبير على شنو غيجي من بعد. غير غناخدوه كمثال باش نفهمو كيفاش كنبنيو representation ديال ال Bag of Words.

تقدر تاخذ أي مثال آخر بانليك. المهم هو فكاع الحالات غنطيحو فنفس المشكل: كيفاش غندوزو من الكلمات لي كاينين فديك الصفحة لأعداد لي غايفهمهم الModel ديالنا؟

اللغة خنيشة دالكلمات

باش نفهمو مزيان الrepresentation ديال BoW (Bag of Words) أجي نبنيوها دقة دقة.

الVocab: شنو غنديرو فالخنشة؟

أول حاجة خاصنا نديرو هي غانقراو الكتاب كامل صفحة ب صفحة. وغانقيدو كاع الكلمات المختلفين لي غانلقاو. نقدرو نلقاو 10000 كلمة, 50000 كلمة, ماسوقناش, المهم هو نقيدو كاع الكلمات لي كاينين فالكتاب ومنقيدوش شي كلمة جوج مرات.

هاد الكلمات كاملين لي جمعنا غادي يشكلو لنا واحد الحاجة لي كنسميوها الVocabulary أولا الVocab ديالنا. العدد دالكلمات (مثلا 50000) كنسميوها ال Vocab Size.

figure2

الrepresentation ديال صفحة

من مور مابنينا الVocab ديالنا, غادي نقدرو نمثلو كل صفحة ب Vector (تقدر تخايلو على شكل List) لي الطول ديالو غايكون هو الVocab Size (عدد الكلمات لي قيدنا قبل).

فهاد الحالة كتولي القضية ساهلة. باش نمثلو واحد الصفحة ماعلينا غير نشوفو الكلمات لي فيها, ونمشيو للVector ديالها ونحطو فالموضع (Position) ديال كل كلمة, العدد دالمرات لي بانت فيهم ديك الكلمة فالصفحة.

مثلا, ايلا الصفحة ديالنا فيها كلمة 'أطلس' وكتعاود جوج مرات, غادي نحطو العدد 2 فالموضع ديال 'أطلس' فالVector ديال الصفحة.

figure3

بنفس الطريقة غادي نقدرو نبنيو representation ديال كاع الصفحات ديال الكتاب, ونقدرو ديك الساعة نعطيوهم للModel ديالنا (لي ماسوقناش فيه كيفاش خدام) باش يعطينا العبار دالEmotion ديال كل صفحة.

شنو المشكل؟

هاد الrepresentation بانت فالسبعينات ولكن مبقيناش كنخدموها بزاف فهاد الوقت لبزاف دالأسباب لي غانهضرو عليهم هنا.

مصالحش للكلمة

أول حاجة تقدر تكون لاحظتيها هي أن هاد الrepresentation كتصلاح لصفحة ديال كتاب, لقصيدة الخ. ولكن مكتصلاحش ايلا بغينا نديرو representation ديال كلمة وحدة. هدشي لاش كنسميوها Document level representation. باش نوضحو هاد القضية كثر تخايل بلي مور ماجمعتي الVocab ديال الكتاب بغيتي تمثل كلمة وحدة وماشي صفحة كاملة. أي كلمة ختاريتي غاتكون عندها representation ديال Vector لي الطول ديالو 50000 مثلا, كولو زيروات من غير الموضع ديال الكلمة لي فيه 1. هاد الvector بالخصوص مكيعطيش شي فكرة كبيرة على المعنى دالكلمة.

مكنتسوقوش للترتيب دالكلمات

واحد الحاجة مهضرناش عليها فهاد الrepresentation ألا وهي الترتيب (Order) ديال الكلمات. لاخدينا مثلا الVocab لي بنينا قبل وبغينا نمثلو فيه هاد جوج دالجمل (نفترضو بلي هاد الكلمات كاينين فالكتاب)

'كتعجبني الخدمة ديال أطلسية' و 'أطلسية الخدمة كتعجبني ديال'

غادي تكون عندهم نفس الrepresentation حيت عندهم نفس الكلمات. واخا الجملة اللولة عندها معنى وصحيحة والجملة الثانية ماعندهاش شي معنى. بالنسبة للModel هاد الجمل راهم بحال بحال حيتاش مكنتسوقوش للترتيب ديال الكلمات. هدشي علاش كنسميو هاد الrepresentation خنيشة ديال الكلمات أولا Bag of Words حيتاش كنعتبرو اللغة حرفيا خنيشة ديال الكلمات ومكنتسوقوش للروابط لي كتجمع هاد الكلمات ولا للترتيب لي كيجيو بيه فواحد الجملة.

(Out of Vocab) كلمة مكاينش فالخنيشة

نفترضو بلي نفس الكتاب لي بنينا بيه الvocab هاد المرة, خرجات منو edition جديدة لي تبدلو فيها شي كلمات ولا تزادو فيها شي كلمات آخرين. هاد الكلمات لي تزادو مع الأسف معندناش فالvovab لي بنينا (out of vocabulary). فهاد الحالة شنو خاصنا نديرو؟ واش نعاودو نصايبو ال vocab من جديد؟ ومن غير هدشي, ايلا بغينا شي كتاب جديد حتى هو نحللوه, واش نصايبو ليه vocab بوحدو؟ غايخصنا Model لكل vocab فهاد الحالة.. ولا غير نزيدو نوسعو الvocab ديال الكتاب الأول بالكلمات ديال الكتاب الثاني؟ شحال نقدرو نزيدو نوسعو؟ واحد الوقت غايولي الvector ديال الrepresentation كبير بزاف وغنعانيو من مشاكل فال memory وال compute. واش مايمكنش نديرو ماحسن من هاد الخنيشة؟

الجواب هو ممكن نديرو ماحسن, وماحسن ببزاف. أنزيدو نوضحو هاد الجواب فلارتيكل الجاي فين غانهضرو على الEmbeddings.