NLP_Lecture_9-_Text_Generation_and_Summarization
السلام عليكم اخباركوا ايه؟ النهارده ان شاء الله اخر محاضره في ال course. احنا بقالنا اخر كام محاضره بناخد ال application بتاعت ال NLP. خدنا ال sentiment analysis، خدنا خدنا ايه تاني؟ ال search engines، خدنا كذا حاجه. النهارده هناخد ال text generation، هناخد overview سريع عنه.
وهناخد ال summarization into details ان شاء الله.يعني ايه text generation؟
Text generation اللي هو ازاي اخلي ال system بتاعي او ال application بتاعتي هي اللي تكتب ال text ده، مش ان انا اللي بكتبه و train، يعني مش ان انا اللي بكتبه واطلع منه مثلا information او كده.طيب.
Generation ايه اهميته؟ بيستخدم في applications كتيرة، هو واحد من اهم ال NLP applications. كنا جبنا سيرته قبل كده لما قلنا في اول محاضره تقريبا خدنا تقسيمه ال Natural Language Processing ان في جزء منها بيبقى Natural Language Understanding اللي هي NLU، والجزء الثاني بيبقى ال Natural Language Generation اللي هي NLG.
فده الجزء بتاع ال generation وهو ده اصعب يعني من اصعب ال tasks او من اصعب ال applications اللي ممكن اقابلها في ال NLP، ان انا ازاي اطلع اخلي ال system بتاعي او ال software بتاعي هو اللي generate ال text. ادي له شوية information وهو يطلع لي text.فالكلام ده بيتم ازاي؟ حاليًا بقى الدنيا أسهل شوية لما بال machine learning وال neural networks كده، انا ب train ال model ان هو عندي already text given، وافضل اعمله training على ال text ده بحيث هو ي predict لما ادي له مثلا...
جمله او كده هو يـ predict بقية الجملة ايه.فطبعًا زي ما قلنا هي من أصعب الحاجات في ال NLP فلسه ال accuracy بتاعتها limited جدًا وال efficiency مش أحسن حاجة، ولسه حتى ما عملتش passing لل Alan Turing test. ايه ال Alan Turing AI test ده؟ حد يعرف؟ خدتوه في ال AI, Artificial Intelligence.
شغال ال Alan Turing ده كان يعني مؤسس ال AI. هو كان عمل test او يعني اخترع test كده كان بيقول فيه ان ال system بتاعي يبقى artificial intelligent لو عدى ال test ده. ايه ال test ده؟ ان انا في human بي
زي بيحكم judge كده من غير ما يشوف ال input اللي داخل له، داخله من machine وداخله من human تاني. لو عرف يفرق مين فيهم اللي machine ومين فيهم ال human، يبقى ده كده ال system بتاعي ما هواش efficient، ما اقدرش ان انا أقول عليه ان هو artificial intelligence يعني. لو ما عرفش يفرق واتلخبط مين فيهم human ومين فيهم machine، يبقى ال machine بتاعتي وصلت لكفاءة عالية تحاكي فيها الايه؟ الإنسان.
فاقدر ساعتها اقول ان ال system ده artificial intelligent. فالجزء بتاع ال generation لغاية دلوقتي ما وصلش لل efficiency اللي تخليه يعدي ال Alan Turing test، اقدر اقول ان ال machine دي طلعتلي text قريب جدًا من الإنسان.بيستخدم في ايه ال text generation؟ في كذا field، أول حاجة في ال marketing، التسويق. ال blog posts مثلًا based on keywords and desired length.
الناس اللي بتكتب blogs وكده بدل ما يبقى في مثلًا topic معين عايزه أتكلم فيه، لأ لو أنا عندي text generation application، هدي لها شوية الـ information على شوية keywords أقول له اكتب لي post على الكلام ده.Product descriptions برضو نفس الفكرة، أنا بدي له ال features بتاعت product معين، سواء hardware أو software وإيه ال benefits بتاعته وهو يكتب لي ال description بقى بتاعته، اللي هي الدباجة كلها إن هو بيحتوي على كذا وال efficiency بتاعته كذا، بيستخدم في كذا يعني أنا بدي له ال keywords برضو.
أو ال features وهو بيطلع لي ال description نفسه. ال social media posts واللجان الإلكترونية والكلام ده، بدل ما كل مثلًا ال campaigns والحاجات دي بتبقى ناس هم اللي بيكتبوا ال posts دي، لأ لو أنا عايز أتكلم في موضوع معين أو أخليه trend أو كده، لو عندي text generation application هتسهل لي الموضوع ده، إن أنا أقول عايز مثلًا أتكلم في topic كذا أو مثلًا movie نازل جديد فعايز أتكلم عليه.
فال posts بتبقى أسهل إن هي تتعمل automatic يعني. نفس الكلام على ال media campaigns اللي هي الإعلانات، عايز أعمل دعاية ل product معين. برضه لو عندي text generation application بتساعد جدًا في القصة دي، إن أنا عايز أتكلم على ال product ده، بيقدر يعمل لي بقى campaign أو media campaign تشهر لي ال product بتاعي.
في جزء ال business ممكن طبعًا ال business بيبقى مليان reports، زي مثلًا regional sales report إن أنا بدي له برضه ال information، ال key information اللي هتتحط في ال report، وهو يـ generate ال report نفسه اللي أنا هقدمه مثلًا لل manager أو لل higher authority أو كده.في ال media، مجال الإعلام.
Automated article generation for regular events like sports matches.
يعني إيه الكلام ده؟ إن أنا عندي مثلًا برضه خبر معين أو event معين حصل فعايز أتكلم عليها، فبرضه مثلًا في ماتش مثلًا بين الأهلي والزمالك فعايز أقول اللي حصل في الماتش ده، فأنا هدي له مثلًا التشكيل كان كذا والنتيجة كذا واتلعب فين وكذا وهو...
generate ال text هو يطلع لي بقى ال article على بيستخدم طبعًا في ال summarization. أنهي جزء؟ إحنا قولنا ال summarization يعني من ال applications اللي بتستخدم ال NLU مع ال NLG. إن هي بعمل understanding لل text اللي داخل لي وفي الآخر بـ generate text تاني اللي هو يكون المختصر بتاعه. فالجزء بتاع ال text generation هو ده بيستخدم في ال text summarization. زي مثلًا لو عايزة عندي أخبار عايزة ألخصها وأعمل مثلًا اللي هو ال main headlines بتاعت ال news اللي هي الأخبار
اللي بتمشي في التليفزيون من تحت دي، فساعتها دي باخد الأخبار كلها وأ summarize أو إن أنا أ create text جديد بيتكلم على ال topic ده. Summarizing internal company documents. عندي documents كتير عايزة ألخصها وأشوف إيه ال important information اللي فيها. Assisting educators in preparing educational materials. أي حد شغال في مجال التعليم، بيبقى عشان يجهز مثلًا material لمادة جديدة زي ماديتكم كده دي.
بتاخد effort رهيب جدًا، وبتحتاج بقى تقرأ كتير في research papers، بتحتاج بالذات لو field up-to-date زي ال field بتاعنا يعني، محتاج تقرأ تشوف مثلًا presentations بتاعت ناس كتيرة في جامعات تانية، كتب، كل الكلام ده كله، ومحتاج المفروض ده الشغل أصلًا بتاعك إن أنت تلخص القصة دي وتطلع material
تطلع تطلع material جديد إنت بقى بتلخص فيه كل المعلومات اللي أنت قريتها في كل ال materials التانية. Facilitating the review of literature. ال literature review لو حد برضه شغال في مجال الأبحاث، سواء مثلًا ماجستير، دكتوراه، حتى مشاريع التخرج، بتبقى أول حاجة عشان تكتب في نقطة بحث أو إن انت تعمل مشروع إن انت هتشوف ال similar
ال applications اللي اتعملت أو ال similar research papers اللي اتنشرت في الموضوع ده. فدي أول دايمًا task بتتطلب منك لما تيجي تعمل research إن أنت اقرأ لي بقى عن الموضوع ده مثلًا 20 paper ولخصهم لي في صفحتين. فلو أنت عندك application برضه بتساعد القصة دي أو automated، طبعًا أنت محتاج تعرف ال information دي بس إن أنت تلخصها بقى في صفحتين مثلًا أو ثلاثة
لو هي automated هتسهل لك الدنيا شوية.ال question answering اللي هو شبه ال information retrieval أو شبه ال search engine بس على هيئة questions. يعني مش إن أنا بدور مثلًا على معلومة معينة هاتها لي زي ما هي لأ، بسأل سؤال يبدأ يعمل analysis لل text ويطلع لي منه ال answer. زي مثلًا
مين مثلًا أكتر حد جاب جوان في Liverpool مثلًا يعني. فدي معلومة مش ممكن تكونش جاية صريحة في حتة معينة بس ممكن هو يبدأ يدور ويـ analyze ال text ويطلع لي ال answer على طول. ال chatbot، طبعًا كلنا عارفين ال chatbots اللي هو إن أنا بتكلم مع machine مش بتكلم مع human beings، بتستخدم دايمًا في ال customer reviews وفي ال
ال customer service وبدل ما يبقى أعين حد قاعد 24 ساعة أو أعمل shifts ما بين البشر يعني، فبيبقى automated على طول إن ال frequently asked questions والحاجات اللي هي مش محتاجة إن أنا أعين حد يرد عليها، خلاص أنا عارف الإجابات كلها، فبال chatbots دي ممكن محتاجة إنها تـ generate text عشان تـ answer ال user.
والحاليًا ال trend بقى الحالي بتاع ال AI text generator models اللي هي ال ChatGPT. GPT اختصار Generative Pre-trained Transformer. ده ال transformer ده بيربط ال artificial intelligence مع بالذات في ال applications بتاعت ال natural language processing. فال ChatGPT معتمد على القصة دي إن هو بيبقى زي ال chatbot بس advanced شوية، في AI features عالية جدًا.
بحيث إن هو يقدر يرد على ال conversation، يقدر يـ answer ال questions، يقدر يـ assist في ال tasks، يقدر يكتب essay، يقدر يكتب coding، يقدر يكتب أي articles، أي حاجة. كل دي applications بستخدم فيها ال text generation. طيب الكلام ده بيتعمل إزاي بمنتهى البساطة؟ قولنا مش هندخل into details. أنا بيبقى عندي based on ال n-grams، ال n-grams قولنا اللي هي لو مثلًا bigrams أو trigrams بأخد كلمتين كلمتين تلات كلمات تلات كلمات.
ب train ال model بتاعي أو ال neural network بتاعتي، هو هنا شغال على ال RNN ال neural network، إن هو بيـ divide ال text into X and Y. ال X ده ال prior words أو letters حسب هو شغال حروف أو كلمات، وال Y ده ال predicted. أنا هدي له شوية كلمات أقول له الكلمات دي لو أو هدي له جمل هو بيـ train عليها بيأخد ال X دول يقسمهم
X زي مثلًا كده I love Charles Dickens' novels. أول حاجة بحولها ل numbers، ال numbers دي اتفقنا اللي هي في الآخر ال features بتاعتي اللي هي ممكن تكون word embeddings، ال TF-IDF، أيًا كانت طريقة تحويل ال text ل numbers، ده في ال pre-processing. بعد كده ال training بيتم إن أنا آخد مثلًا لو أنا هقول 10 وواحد، ال N دي بـ 10، فهناخد ال
X. هقول والله ال 10 حروف دول أو ال 10 كلمات دول هما ال X، ال predicted Y بعديهم هي اللي مثلًا ال value بتاعتها 25. بعد كده هـ slide one to the right. ال 10 دول اللي هي من item التاني لل item الـ 11 بييجي بعديهم ال word embedding اللي هي ال value بتاعتها ستة، وهك.
بيفضل يت train يت train بحيث إن أنا لما أجيب له بقى كلمات جديدة أو جمل جديدة هو already متمرن عليها فيقدر يـ predict أو يقدر يـ generate ال text اللي بعد كده هيكون إيه. ده ببساطة أو ده overview عن ال text generation.اللي هناخده بقى into details ال text sum.إيه هو ال text summarization.
لما نعمل summarizing أو إن أنا ألخص جمل معينة إن أنا بلخصها. طيب هستفيد إيه؟ حلو. عندي مثلًا كتاب لخصته في تلات أربع صفحات، عندي 10 صفحات لخصتهم في صفحة، استفدت إيه بقى؟ طلعت الحاجات المهمة.استفدت وقت واستفدت مجهود بدل ما أقعد أقرأ كل الكلام ده لو أنا مش عايز أقرأ ال detail.
بلخص حتى دايمًا في ال research papers بيبقى فيه ال abstract في الأول اللي هو ملخص اللي جاي. أنا هقرأ ال abstract، عجبني ولقيت إن هو into topic وأنا interested فيه أبدأ أقرأ بقى في ال details مثلًا اللي أنا عايز أتعلمها مثلًا.فال text summarization هدفها إن أنا a produce an average version يعني حاجة مختصرة نسخة مختصرة من ال te.
text, containing only the relevant information to the user . إيه ال applications اللي بتستخدم في ال text summarization؟ ال outlines مثلًا أو abstracts for news أو books أو كده. ممكن ألخص الكتاب، دايمًا برضه ال thesis أو ال documentation حتى بتاعت مشاريع التخرج بتاعتكم لازم في الأول هتلاقوا abstract، ده عبارة عن صفحة أو صفحتين ملخص اللي جاي، لأن مش شرط إن اللي هيقرأ ال documentation يبقى فاضي إنه يقرأ 100 ص.
صفحة. أو هيقرأ ال abstract، وبعد كده لو عايز يبص في حتة معينة فيها تفاصيل هي دي اللي بيخش لها. الأخبار نفس الكلام إن أنا برضه بعمل highlights أو ال headlines بتاعت ال news. Summary of email threads زي إيه؟ حد جرب قبل كده يشوف ال summary ل email thread؟ Email thread أصلًا يعني إي؟
Email thread يعني conversation رايحة جاية بيني وبين شخص ما أو مجموعة مثلًا team بتاع مشروع التخرج، المشرف بتاعي على الرسالة، ال whoever المدير بتاعي في الشغل. فأنا email رايح جاي في topic معين. فهتلاقي مثلًا في حاجة اسمها for example ال Microsoft Cortana. ال Microsoft Cortana بتعمل إيه؟ بتيجي مثلًا على حسب ال setting بتاعها كل أسبوع كل تلات أيام whatever بقى
تيجي تبعت لك email في ملخص ال thread ده. و الله إن أنت تواصلت مع الشخص ده واتفقتوا على واحد اتنين تلاتة. طب ده بيفيدني في إيه؟ لو حد businessman أو حد حتى مش شرط businessman بس وقته ضيق ومش لاحق إن هو يبقى kept informed يعني بال details دي، بتفكره مثلًا بالحاجة وبتقول له الملخص، فأنت بتبص على على الملخص ده خلا
خلاص بتعرف تفتكر أنت already اتفقت على إيه أو إيه الموضوع. Action items in a meeting. يعني إيه action items in a meeting حد سمع عن حاجة اسمها meeting minutes أو محضر جلسة الاجتماع بالعربي بالظبط كده. لما بيبقى في meeting، ال whoever اللي مجتمع
في 10 مجتمعين على موضوع معين، مشروع تخرج، مشروع لشركة، مجلس قسم في الكلية، ال whatever ال ال topic، بس بيبقى في في الآخر حاجة اسمها ال meeting minutes أو اللي بتسمى بالعربي اللي هو مجلس الاجتماع أو محضر الاجتماع. ده بيبقى حد قاعد بيكتب ملخص اللي حصل في الاجتماع. طب ممكن ال meeting ده يكون دام ثلاث ساعات.
بس الملخص في الآخر صفحة أو صفحتين. إن احنا اجتمع فلان وفلان وفلان اللي حضر الاجتماع في يوم كذا بتاريخ كذا الساعة كذا، والاجتماع دام لمدة ساعة ولا ساعتين ولا whatever. تم الاتفاق على points بقى. واحد هنعمل كذا، اتنين مثلًا هن... لو احنا في القسم هنطلع مش عارفة جدول المحاضرات، تلاتة هنقسم الجزء من الشغل ده على مين وده على مين وده على مين، ال whatever الحاجة دي. طب ده.
استفدنا إيه؟ ما احنا كلنا حضرنا الاجتماع وعرفنا اللي اتفقنا عليه، إيه فايدة إن أنا يبقى في document بالكلام ده؟ عشان لو حصل اختلاف أو حاجة. أول حاجة لو حصل فعلًا خلاف بين الناس المجتمعة أو حد نسي إنه عليه task معينة وما عملهاش، لا احنا ما اتفقناش على كده. طب إيه اللي إيه اللي يثبت؟ اللي يثبت إن احنا اتفقنا على كذا إن محضر الاجتماع ده، هات محضر الاجتماع بتاريخ كذا والكل في الآخر بيوقع عليه، يعني قبل ما يطلعوا من الاجتماع أنا الكل بيوقع إن أنا ده فعلًا اللي تم في الاجت.
اجتماع. فيبقى خلاص كله متفق إن ده اللي تم، فأي حد هيعمل حاجة مختلفة أو هيقول لا ده ما حصلش انت إمضتك اهي على المجلس ده، أول حاجة. تاني حاجة إن هو زي ما قلنا برضه تنسيقًا للشغل ودايمًا لما بيبقى في documentation بيسهل الدنيا إن الواحد ممكن بينسى، ممكن بينظم بقى وقته اه أنا ورايا كذا مش عارف إيه، يبقى في دايمًا thread كده إن احنا اتفقنا على
لما يبقى في برضه automatic text summarization بتعمل ال meeting minutes دي بتسهل الدنيا . آخر حاجة اللي هي simplifying the text by compressing sentences، اللي هي يعني في العموم بقى إن أنا أبسط ال text بتاعي إن أنا بلخص الدنيا، عشان مثلًا ما عنديش وقت إن أنا أقرأ ال details، مثلًا أنا عندي application مثلًا على ال mobile بتقرأ ال audio books ملخ.
بتعمل electronic books بدل ما أقرأ ال PDF مثلًا أو الكتاب نفسه 200 صفحة 150 صفحة 100 صفحة حتى، تلاقي الكتاب كله بقى بتسمعه في 20 دقيقة. هو عمل إيه؟ أقرأ الكتاب ولخص لك كل chapter وراح طبعًا محوله ل speech في الآخر بمناسبة ال speech processing. فده بيسهل لي جدًا الدنيا إن حد مثلًا ما عندوش وقت إن هو يقرأ أو مش بيلحق أو كده فسهل إن هو إي.
يبقى عارف يقرأ طب عشان أتكلم على ال summarization systems عندي كذا تقسيمة ليها أو كذا نوع. أول حاجة من حيث نوع ال summary اللي طالع اللي هي ال extractive وال abstractive. إيه الفرق بينهم؟ ال extractive بتلخص ال text، ال abstractive بتطلع الحاجات المفيدة . يعني إلى حد ما. ال extractive من اسمها extract يعني بتستخرج الجمل المهمة من ال te.
text. يعني أنا عندي text 100 صفحة، أنا عايزة مثلًا ألخصهم 50%، 20%. فهتطلع أهم 20% من ال document ده من من جوه ال text نفسه. هتبقى أسهل كتير في ال implementation إن أنا بعمل أي weighing scheme إن أنا أبدأ أدي weights للجمل بتاعتي أو للكلمات أو ال whatever بقى ال technique اللي همشي بيه.
وأقول هم دول وأعمل threshold وأقول هم دول اللي أنا هاخدهم وأبدأ أحطهم جنب بعض طلعت extractive summary. إيه ميزتها؟ سهل في ال implementation. إيه عيوبها؟ وميزتها برضه إن هي واخدة من ال text الأصلي فالمعلومة موجودة زي ما هي. عيوبها إيه؟ إن هي الجمل في الآخر بتطلع incoherent يعني أنا مش جمل ملهاش علاقة ببعضها مقطعة كده الجملة مش مش راكبة على التانية.
طيب النوع الثاني ال abstractive اللي هو اللي أنا بلخص abstractively، يعني أنا بأخذ ال text. يعني هنا مثلًا ال extractive أهو كان هدي مثلًا ال text بتاعي اللي بالأحمر دول ال most important information أو sentences. أخذتهم بقى ده ال extractive summary. إنما هنا ده text كله بال gray ده ما طلعش هو منه هو ده، ده طلع منه text جديد.
يحمل معنى ال text ده، بس ال most important information برضه اللي فيه. بيتعمل إزاي؟ بإن أنا بعيد صياغته ألخصه وأعيد صياغته. فده طبعًا أدبيًا أحسن لكن implementation أصعب بكتير. وال text بيطلع coherent بقى لإن أنا كأني بكتب من أول وجديد.
text. يبقى أول حاجة تقسيم ال output بتاعي extractive أو abstractive.
ده example أهو على ال extractive وال abstractive إن أنا عندي مثلًا ال source text اللي داخلي: Peter and Elizabeth took a taxi to attend the night party in the city. While in the party, Elizabeth collapsed and was rushed into the hospital.
مبدأ ال extractive ده أطلع ال important information اللي هو ال named entity مثلًا recognition. بطلع ال named entity وال most important information وبطلعها هي دي، يعني مثلًا خد Peter and Elizabeth أهي, attend, party, city. بعد كده Elizabeth, rushed, ho
hospital. طلع لي جملتين هو فيهم فعلًا ال most important information ولكن الجمل تحسها متقطعة وال grammar بتاعها مش مظبوط. يعني المفروض إن يبقى في خطوة بعد كده إن هو يعمل augmentation إن هو يجمع الجمل ويراجع ال grammar بتاعها يعني. بس هو ده ده من عيوب ال extractive إن هو الجمل في الآخر بتطلع مش coherent. ال abstractive هي هي نفس ال input برضه عامل highlight لل most important information.
أعاد بقى صياغة الموضوع، يعني كأنه فهم ال text وبدأ يكتبه من أول وجديد. Elizabeth was hospitalized after attending a party with Peter. يبقى برضه قال نفس المعلومة بس بطريقة مختلفة وجملة واحدة وجملة على بعض وcoherent وكل حاجة.
التقسيمة التانية أو ال view التاني لل text summarization system إذا كان هو ال input بقى اللي داخله single document ولا multi-document. يعني أنا بلخص document واحد بطلع ال summary بتاعه ولا بـ.
ألقص multiple document على نفس الطبق مثلاً أو بغمع different topics وغمعهم في summary واحد إمتى أحتاج أعمل multi-document summarization لو أنا بعمل مثلاً literature review أو بحضر material زي ما قلنا في education إن أنا قريت كذا presentation كذا book كذا chapter كذا research paper وعايز أطلعهم في الآخر في summary واحد يلمني المعلومات كلها
بلخص multiple document على نفس ال topic مثلًا أو بجمع different topics وأجمعهم في summary واحد. إمتى أحتاج أعمل multi-document summarization لو أنا بعمل مثلًا literature review أو بحضر material زي ما قلنا في ال education. إن أنا قريت كذا presentation، كذا book، كذا chapter، كذا research paper وعايزة أطلعهم في الآخر في summary واحد يلم لي المعلومات كلها.
من عربي لعربي، من English ل English، يعني ال input language زي ال output language. ال cross-lingual اللي هو عندي multiple language input. وطبعًا بحتاج في الخطوة دي machine translation technique عشان أترجمهم كلهم بلغة واحدة وهي دي اللي هطلع بيها ال output. سواء اللغة دي كانت من ضمن ال input أو لأ. يعني أنا دي بتفيدني في حاجة زي إيه؟ ال news .
عندي خبر معين على مستوى العالم ففي مكتوب بال English في أمريكا ومكتوب بال French في فرنسا ومكتوب بال German في ألمانيا ومكتوب بالصيني في الصين. وكل واحد طبعًا بيتناول الخبر من وجهة نظره فأنا عايزة أجمع كل المعلومات دي في خبر واحد بالعربي مثلًا. فأضطر إيه؟ أروح أقرأ اللي بال English وأفهمه وأترجمه، وأروح أقرأ اللي بالصيني اللي بالألماني الفرنسي وأجمعهم وألخصهم وأشيل ال redundant information اللي فيهم وأترجمهم في الآخر إيه؟ لعرب.
فده بيحتاج طبعًا internally machine translation technique.
آخر تقسيمة إذا كان ال document بتاعي أو ال summarization system بتاعي generic بيلخص بوجه عام، ولا query-driven يعني بيلخص based على query معين. يعني عندي بـ search مثلًا على حاجة معينة زي مثلًا Google Search Engine أما بدور على حاجة.
فهو بيجيب لي ال document الحتة دي أو أو بيلخص لي الجزء اللي بيتكلم عن الحاجة دي، حتى لو في معلومات تانية مهمة كتيرة هي دي مش relevant بالنسبة لي. يعني غير أما أديله مثلًا برضه for example في الكورة بيلخص كم match حصل بين الأهلي والزمالك، فهيلخص كل المعلومات وده مش عارف مين وده جاب كام جون وده إيه. لو أنا بدور على حد لعيب معين في الماتش فهو هيلخص لي المعلومة بتاعة اللعيب ده ب.
بس. يبقى ده كده query driven.طيب. يبقى أنا التقسيمة بتاعتي والأربع تقسيمات دول أنا مش يا ده يا ده، يعني دايمًا لما أجي أعمل summarization system أقول هو أنا هعمل abstractive summary، single document, monolingual, generic مثلًا. يبقى أقول الأربعة properties بتاعتي مش مش يا ده يا ده يا ده، لازم أقول الأنواع كلها.
ده ده ال system architecture أو ده ده proposed technique ل Arabic text summarization هو abstractive، بس بيستخدم هنا حاجة اسمها rich semantic graph. طيب ال system archi عامل إزاي؟ هو single document و abstractive فبدخل ال single document.
بيتعمل له representation بحاجة اسمها rich semantic graph. ال rich semantic graph ده بيتعمل له reduction. وال reduced graph بيتعمل منه text generation هو ده اللي بيطلع لي في الآخر ال abstractive summary. كل ده باستخدام مين؟ ال Arabic WordNet. إيه هو ال Arabic WordNet؟ حد سمع عنه؟ قولناه قبل كده. ال WordNet عمومًا اللي هو إيه؟
اتكلمنا على ال WordNet وعلى ال ontology. هي حاجة في ال language، ال WordNet بيعتبر lexical. Lexicon يعني حاجة شبه ال dictionary كده. هي application موجودة، لو نزلتوها مثلًا في English وفي Arabic وفي يعني كل language ليها ال WordNet بتاعتها. لو بت search على كلمة بيجيب لك كل ال بتتسمى ال senses بتوعها، يعني الكلمة دي ممكن تيجي noun بمعنى كذا، ممكن تيجي noun تاني بمعنى كذا، ممكن.
تيجي adjective ممكن تيجي verb، دول بيتسموا ال senses, different senses لل word أو لل concept ده. وممكن يجيب لي ال synonyms, ال hypernym الحاجات بقى اللي احنا قولناها قبل كده. فهو ده بيمسك الكلمة والمرادفات بتاعتها وال antonyms وكل ده.
طب إيه الفرق بينه وبين ال ontology؟ ال ontology بتبقى hierarchy من اللغة نفسها رابطة الكلمات ببعض، برضه كنا خدنا example عليها.
إن هو مثلًا دول siblings مثلًا ودول parent وده child، ده ده instance من ده وهكذا.
ال phase الأولانية كانت في ال architecture إن أنا بدخل ال input text أهو اللي أنا عايزة أعمله summarization. بعمل له pre-processing، حاجة اسمها word sense instantiation، أنا بروح بقى أجيب ال senses بتاعت ال words بتاعتي. بعد كده ال concept validation لإن أنا مش باخد كل ال senses دي، بـ validate ال concept
subgraph ranking. هعمل subgraph لكل جملة وبعد كده ه rank وهاخد برضه هعمل threshold وهاخد بعضهم مش هاخد كل ال graphs اللي طلعت لي. وبعد كده بعمل RSG generation بيطلع لي multiple RSGs (rich semantic graphs). هناخد example ب case study وكل التفاصيل دي. دول كلهم باستخدام ال Arabic WordNet ما عدا ال pre-processing. ال pre-processing اللي احنا عارفينه بقى ال pipeline أشيل ال stopwords وال
وال diacritics.ده مثلًا algorithm لل بتاع ال RSG reduction. إن أنا إزاي بـ reduce ال graph بتاعي، يعني أنا طالع لي أنا طالع لي multiple graphs هاخد واحد واحد أشيل منه شوية nodes بحيث يبقى reduced وفي الآخر أ generate منه الجمل المهمة. بدخل ال RSG node
ال graph هسميه G مثلًا، بحسب حاجة اسمها ال node weights باستخدام algorithm اسمه PageRank وهناخده بعد شوية. بعد كده هنا كان في نوعين من ال reduction، عايز أ reduce ب percentage معينة ولا عايز أعمل PageRank threshold؟ يعني يا كده يا كده. بعد كده identify ال candidate nodes for reduction، في nodes هي دي اللي شكلها ممكن تتشال. و decide بقى إذا كنت هشيلها كلها، هشيلها لوحدها، هشيلها ومع ال subgraph بتاعها يعني verb مثلًا مع
فعل ومفعول ومع كده. بـ perform reduction، بعد كده بعمل concept generalization، باستخدام ال ontology أو ال Arabic WordNet إن أنا بشوف ال concepts ال generic form بتاعتهم، ال parent يعني بتاعها، بحيث إن أنا لما generalize ال topic يبقى أنا كده بلخص المعلومات ما بدخلش في التفا.
صيل. بشوية ال checking دول يعني بغض النظر عن ال details، أنا مش عايزاكم تحفظوا algorithm بس يعني تبقوا فاهمين الفكرة عمومًا، وحتى في الامتحان أنا مش هاجي أقول لك سمع لي ال algorithm بتاع كذا. لكن ممكن أقول لك ده بيعمل إيه؟ ممكن أديك جزء من ال algorithm أو ال algorithm نفسه أقول له طبق هولي على كذا.
الحاجة الوحيدة اللي ممكن أطلب منكم إن أنتم تحفظوها اللي هي ال equations. أي حاجة فيها equations وحسابات دي احفظوها، اللي هي precision وال recall وأيًا كان بقى ال equations اللي خدناها و . طيب ال text generation عندي بقى ال RSGs اللي داخل لي، احنا قولنا مطلعين multiple RSGs. فكل RSG هتعامل معاه بـ بهذا على هذا الأساس. أعمل حاجة اسمها text planning، أطلع منه ال set of object
set of objects دي هي اللي هكون بيها الجمل. حاجة اسمها ال lexicalization
 referring expression ,aggregation , discourse structuring اه ال reference اللي هو الضماير وكده. بعد كده ال surface realization وفي الآخر بطلع multiple texts اللي هم.
اللي داخلي كان multiple RSGs, reduced RSGs يبقى هطلع ب multiple te.
For example مثلًا ال discourse structuring algorithm اللي بيكون لي الجمل بقى. بدخل ال nodes بتاعتي بال synonyms وال attributes بتاعتها وهناخد بعد بعد شوية ال example ال attributes زي إيه. برتب ال nodes علي based ال sentence number وده كان داخلي input معايا وأنا وأنا already برسم ال RSG عشان أنا احتفظت بال sentence number عشان وأنا بكون الجمل أعرف إيه بيجي قبل إيه لأن ال RSG في الآخر مش.
معنى ترتيبها يعني. For each noun node N in S، لو أنا عندي noun لو فيها adjective يبقى الجملة بتاعتي هتبقى noun و category, adjective. دي تكوين الجملة في اللغة العربية. لو هي فيها verb هيبقى اعملها جملة فعلية verb وبعد كده noun واللي هي فيهم one bracket دي معناها obligatory يعني ال verb وال noun.
اللي فيها double brackets معناها optional، ممكن تبقى موجودة أو لا. يعني الفعل والفاعل بعد كده عندي المفعول به أو المفعول به التاني ممكن يجوا أو ممكن لا، adverb ممكن يبقى فيه أو لا، ال place وال attributes كل دول optional حسب ال attributes اللي أنا حاطاها مع.بعد كده عندي ال aggregation algorithm ده بيعمل إيه؟ اللي بيبدأ يربط الجمل ببعض عشان تبقى coherent te.
text. يبقى ال sentence اللي طلعت لي في ال slide اللي فاتت بسميها pseudo-sentence. أبدأ آخدها وأشوف لو أنا مثلًا عندي two sentences ليهم نفس ال subject أحط و. لو لو ال a third sentence having the same subject بـ join بـ ثم مثلًا. لو S has a different subject than its preceding, different different subjects يعني الفاعل هنا غير الفاعل هنا.
يبقى ساعتها أما ده مثلًا عمل كذا، وهكذا في الباقي يعني شوية rules كده خاصة باللغة العربية.ال referring expression خاص بحاجتين، أولًا لو عندي two consecutive sentences ليهم نفس ال subject بحط فاصلة ما بينهم، وبشيل ال subject من الجملة التانية. لو عندي ال second sentence فيها noun followed by a proper name بحط بزود الضمير لو هي مذكر يبقى الهاء لو هي مؤنث تبقى هاء.
ال case study عشان نفهم الدنيا إزاي.ده كان ال input: يشغل محمد وظيفة محاسب في شركة نقل، تزوج محمد من أميرة التي تعمل معلمة في مدرسة المتفوقين وهكذا إلى إلى آخره.ال target بتاعي إن أنا أطلعه بالشكل ده.يعمل محمد أشرف رجال أعمال. جبتها منين رجال أعمال دي؟
وجبت ليه جمعت محمد على أشرف؟ أنا عايزة ألخص بقى. يشغل محمد وظيفة محاسب. أشرف بقى بيعمل إيه؟ يعمل أشرف تاجر. تاجر ومحاسب عندي في ال ontology ال parent بتاعهم رجال أعمال. عشان كده قولنا بنعمل generalization. ويشغل ويعمل ليهم نفس المعنى, synonyms. عشان كده جمعتهم مع بعض يبقى يعمل محمد وأشرف.
رجال أعمال. تعمل أميرة ومنال معلمات، واحدة مدرسة وواحدة هيئة تدريس برضه ال parent بتاعهم إن هم معلمات. فيبقى جمعتهم هم الاتنين برضه بنفس ال verb واحد منهم اللي هي تعمل بقى معلمات، وهكذا في الباقي.
طب الكلام ده بيمشي إزاي؟ ال pre-processing مثلًا على جملة "رافق محمد أميرة إلى السوق". أول حاجة بعمل tokenization، ال POS tagging.
Named entity recognition، هو محمد وأميرة بس هما ال named entities. لو هي named entity خلاص مش بجيب ال senses بتاعتها في ال WordNet أو لو هي برضه stop word أو اللي هي conjunction مش بجيب ال senses بتاعتها. ال concepts التانية هي دي اللي بجيب لها ال different senses. فبروح في ال WordNet بطلع ال senses بتوعها يعني "رافق" معناها رافق أو لازم أو كمل أو صاحب أو ضرب أو بمر.
بعمل validation خدت أول تلاتة senses هنا، هنا خدت اتنين بس. بعد كده بعمل thresholding وهنشوف بالتفاصيل بيتحسبوا إزاي. "رافق" و"لازم" هما دول اللي هاخدهم، وهما دول اللي هكون بيهم بقى ال subgraph وأعمل وأعمل ranking لل subgraphs وأشوف في الآخر هاخد أنهي. "سوق" و"متجر" هما دول اللي خدتهم من هنا، لما عملت thresholding خدت "سوق" ب.
ال concept validation وال subgraph ranking شغال إزاي؟ ال DSR اللي هي ال sense rank ل concept رقم I، ال sense رقم J. يعني "رافق" مثلًا دي concept رقم I، كان فيها رافق ولازم ومش عارف إيه، بقى ال J الأولانية نمرة واحد اللي هي رافق، ال J نمرة اتنين اللي هي لازم.
وهكذا في الباقي. طيب بديها value إزاي؟ بديها ranking أنا بعتبر إن اللي جه في الأول في ال senses هو ده الأقرب للمعنى وعادة بيبقى كده في ال dictionary وكده ده الأكثر شيوعا في الاستخدام يعني. N - J + 1 / N. مين ال N وال J؟ ال J ده اللي هو الرقم بتاع ال sense. يعني "رافق" الأولانية كانت واحد، "لازم" مثلًا كانت اتنين. ال N small دي اللي هي ال total number of valid senses لل concept. فأنا خدت ال validated senses دي كانوا تلاتة.
يبقى هناخد example بالتفصيل يعني 3 - 1 + 1 / 3، هتدي له في الآخر ranking من 10، بضرب في 10. وأعمل threshold بعد كده، الأعلى مثلًا من 5 و الأعلى من 6 دي كانت empirical. Empirical يعني أنا trial and error. لما عملت testing لكتير لقيت مثلًا say إن أنا عملت thresholding عند 6 أو عند 7، whatever بقى ال.
وبعد كده باخد ال average subgraph rank إن أنا باخد ال sense ranks اللي أنا حسبتها لل subgraph كلها وأجمعها وأقسمها على عددهم. وبالتالي برضه هبدأ أ exclude حاجات وأخلي حاجات فمثلًا for example "رافق" دي اللي هي concept رقم I رقم 1، رافق. ال I ب 1 وال N اللي هي التلاتة validated sense.
بتوعها رافق ولازم وكمل. لما حسبت ال sense rank بتاع رافق طلعت لي 10، ال sense rank بتاع لازم طلعت لي 6.7، كمل طلع 3.3. لما جيت أحسب ال average sense rank باخد بقى... أنا باخد ال combinations بقى كلها، بشوف الجملة بتاعت رافق فيها رافق محمد أميرة إلى السوق، هما أربع كلمات. فباخد أول يعني بعمل combinations بقى الأولانية مع الأولانية هناك ومع الأولانية يبقى ال average sense rank بتاعها 10. يبقى ده الأقرب.
subgraph هو ده اللي هاخده أكون بيه الجملة، دي number one بالنسبة لي. بعد كده خدت الأولانية هنا "رافق" الأولانية مع ال sense التاني مثلًا هناك كان ال rank بتاعه 6.7 مع الأولانيين. هي combinations وأفضل أحسب ال average sense rank وأبدأ أعمل برضه threshold. يبقى ال average sense rank لل graph التاني 9.17.
وهكذا ومثلًا هعمل threshold عند 7 6 أيًا كان مش . فده مثلًا example في الآخر ل two different subgraphs أهو. بعمل هنا ال RSG generation رافق. الفعل بيبقى هو دي دي ال node بتاعت ال RSG (rich semantic graph). لو فعل يبقى هي ال title بتاعت ال node هي اسم الفعل.
الكلمة نفسها يعني الفعل نفسه. إنما ال title بتاعت ال noun بتبقى النوع نفسه، لو هو named entity مثلًا هيبقى شخص. فهنا شخص واحد اللي هو اسمه إيه؟ محمد. دي ال attributes اللي كنت بقول لكم عليها. فلو هي مثلًا اسم شخص يبقى عندي ال type بتاعها noun والاسم محمد. الشخص اتنين ال type noun والاسم أميرة. ما عنديش صفة ليها ولا صفة ليه يبقى ما فيش صفات.
وما فيش senses لأنهم named entities. طب "رافق". "رافق" ال type بتاعها verb. ليها sense تاني اللي هو "لازم". وليها هي ، طالما فعل يبقى هشوف الفاعل والمفعول به. الفاعل هنا اللي هو شخص واحد والمفعول به اللي هو شخص اتنين وما فيش ليها ملحقات. ملحقات دي لو هي أي زوايد تانية على الكلمة أو كلمة تانية جاية معاها مضاف إليه أو كده أو بالظب.
المكان مثلًا إلى السوق. فبرضه هنا هقول ال sense برضه السوق دي كنت مطلع لها sense اللي هو متجر. وال type بتاعها noun والاسم السوق، اسم المكان ده السوق والصفة ما فيش ما لهاش صفة وما لهاش ملحقات. نفس الكلام أما خدت ال sense التاني بتاعت "رافق" خدتها "لازم". ونفس نفس ال values وال attributes بتاعت الباقي.
يبقي دول ال two different subgraphs خدتهم لإيه؟ ال "رافق" وال sense التاني بتاعها اللي هي  . دي ال case study كلها ال rich semantic graph بتاعها طلع بالشكل ده. وصلتهم ببعض بقى وربطتهم ببعض بعد كده هبدأ أعمل إيه؟ أعمل أحسب ال PageRank.
عشان أبدأ أعمل reduction لل RSG. فال PageRank بتاعت node رقم N مثلًا 1 - D + D في summation ال PageRank N على ال related node. يعني هنا مثلًا ال D هنا كانت 0.85. كلمة "رافق" مثلًا، ال node الأولانية اللي هي "را".
عدد ال edges اللي فيها كام؟ ثلاثة. يعني هي متوصلة بكام node تانية. ال related nodes اللي هي متوصلة بيهم شخص واحد وشخص اتنين ومكان تلاتة مثلًا. ال PageRank بتاع N1 هي 0.15، بجمع بقى المتوصلين بيها 0.15 + 0.85 في 0.8
6 + ال summation بتاعهم يعني. هطلع هتطلع لي PageRank معين وهكذا في الباقيين كل node أحسب لها ال PageRank بتاعتها. جدول بقى في كل node اسمها إيه ومتوصلة بكام node وال PageRank بتاعها هي sorted لأ مش sorted، على حسب ترتيب الجملة.
وال order بتاعها، هي جاية node رقم كام أو في sentence رقم كام . ممكن تيجي لنا حاجة زي كده؟ لأ مش ممكن تجي لكم حاجة زي كده at this point يعني at this details. بعد كده من ال PageRanks بختار ال candidate nodes اللي أنا ممكن أعمل لها reduction اللي هي ليها برضه values قليلة.
ه decide بقى، مش هشيلها على طول. يا إما هشيل ال node دي، أنا هما هما ال decision إن أنا غالبًا هشيلها بس هشيلها لوحدها ولا أشيلها هي وال subgraph بتاعها؟ ال verb ال node هشيلها هي بال subgraph بتاعها. لو هي noun, node is removed in a verbal subgraph هنا remove ال node وال subgraph بتاعها.
وهكذا في الباقي، كل واحد بقى ال decision بتاعه . في الآخر ال reduced graph اللي هو شكله كده. ودول ال senses المختلفة يعني. طيب بعد كده . ده أحد ال reduced graphs أهو. طبعًا هيطلع لي زي ما قلنا multiple graphs منها
ال text. فطلع لي بقى في الآخر من ال reduced graphs اللي طلعوا لي طلع لي خمس جمل. هم دول ال candidate إن هو ده ال summary بتاعي بعد ما عملت ال reduction لل graph بتاعي. الطريقة دي evaluation. طبعًا أنا مش حاسبة يعني ال evaluation بس ال tools استخدمت اللي هي ال Stanford Arabic POS tagger وكان بيستخدم ال C#.
وال WordNet library موجودة في ال C#. وكان محسوب ال evaluation ليها بال precision وال recall وال F1-score. دي كانت طريقة مش معتمدة على كان ساعتها دي قديمة شوية مش معتمدة على ال machine learning وكده، معتمدة على ال knowledge representation. في techniques اتفضلي .هو الخمس جمل اللي طلعوا دول المفروض أختار حاجة منهم أفضل واحدة.
Summary. ممكن بقى تعملي weighing scheme أو تحسبي ال precision وال recall وتشوفي بقى أقرب واحدة هي إيه يعني . طيب ال text summarization بقى using ال machine learning techniques ودي انتوا already سبقتوني وخدتوه في... بس هقوله سريعا إن أنا معتمد بقى على ال AI وال machine learning القصة دي إن أنا بعمل إيه؟ ال steps بتاعتي حاجة اسمها content selection إن أنا إزاي أ select من ال document...
ال important information وأعمل لها ordering، بعد كده sentence realization اللي هو ببدأ أكون . عندي ال supervised وال unsupervised.
Supervised اللي هو بيبقى عندي labeled training set اللي هو أنا عندي ال dataset بتاعتي input text وال summary بتاعها، input text وال summary بتاعها.
وبيتعمل alignment لل sentences. بعد كده بـ extract ال features اللي هي ال position بتاع الجملة، هل هي أول جملة ولا لأ، عشان أول جملة دايمًا بتبقى مهمة مثلًا. ال length بتاع ال sentence، ال word informativeness، الكلمة دي مهمة ولا لأ، وال Q phrases أهم الجمل اللي عندي. ال cohesion، كل الكلام ده. وبـ train على binary classifier إذا كانت الجملة دي هاخدها معايا في ال summary ولا لأ. يعني binary عشان 0 أو 1 إذا كنت هاخدها ولا لأ. إيه عيب حاجة زي كده؟
إنك تلاقي dataset بالذات مثلًا في العربي ليها فعلًا ال text بال summaries بتاعتها وتكون summaries كويسة حد فعلًا professional اللي عاملها دي hard to find يعني. ال alignment مش أسهل حاجة وال performance ما هواش أحسن من ال unsupervised. فالأسهل دايمًا in practice إن أنت تستخدم ال unsupervised لأن مش محتاج ل data.
ال unsupervised بيدور على ال most frequent word . 
it will be kept and ignore  . هو بيعتمد على ال frequency. الكلمة اللي متكررة كتير هي دي المهمة. طيب ما دي قولنا الكلمة المتكررة كتير ممكن تبقى stop word. يبقى احنا نشيل ال stop words الأول والباقي دول هما دول ال concepts بتاع.
weight of word will be calculated using ال  likelihood ratio. ال log likelihood ratio, ال LLR. دي ال weighing equation بتاعتهم وبعد كده بيحسب ال weighting و شوف الحاجات المهمة. بيستخدم إيه في ال techniques دي؟ حاجة اسمها دول أشهر الحاجات الموجودة في Python يعني Gensim و Sumy و NLTK و T5 و GPT.
حاجات practical شوية يعني اللي يهمني هنا إن أنا بحسب ال evaluation إزاي لل text summarization بحاجة اسمها ROUGE. ROUGE دي كان اتنشهرت سنة 2003 ب Lin and Hovy من أشهر الناس برضه اللي اشتغلوا في ال summarization ساعتها. اختصار Recall-Oriented Understudy for Gisting Evaluation.
ودي معتمدة على حاجة تانية على metric تاني اسمه BLEU. BLEU ده اللي هو بيستخدم في ال machine translation. طيب ROUGE شغالة إزاي؟ إن أنا بعد ما بطلع ال summary  أكتر من human يعملوا لي summary لنفس ال text. وأشوف أحسب ال bigrams، يعني ده human 1 مثلًا مطلع لي "water spinach is a green leafy vegetable grown in the.
tropics. و human 2 مطلع لي 'water spinach is a semi-aquatic tropical plant grown as a vegetable'. والثالث مطلع لي ال summary 'water spinach is a common eaten leaf vegetable of Asia' . ال system answer أو system summary مطلع لي 'water spinach is a leaf vegetable commonly eaten in  tropical areas of Asia'. فأنا عايزة أعرف هل ده summary كويس ولا لأ، أحسبها إزاي؟
همسك كل بقى ال human summaries دول وأشوف عندي كام common bigram ما بيني ما بين ال system summary وما بين ال human summary. فهنا مثلًا 'water spinach' موجودة، 'spinach is' موجودة، 'is a' موجودة يبقى تلاتة bigrams أهي. تاني واحدة نفس التلاتة يبقى تلاتة برضه bigrams. وتالت واحدة هي common في ستة. 'water spinach', 'spinach is', 'is a'
commonly eaten, leaf vegetable, of Asia. فدول ستة common bigrams ما بينها وما بين ال system summary. على total ال bigrams في كل واحدة. فأنا هحسب ده ال value بتاعتي لو هي 0.43 هي دي يعتبر ال evaluation بتاعي لل system. طبعًا كل ما أقرب ل 1 معناها إن أنا ال system summary طالع قريب جدًا من ال human summary يبقى كده...
كل ما أكون أحسن يعني . total ال bigrams في الجملة. ما بين human 1 و human 2؟
 في الجملة الواحدة . يعني count كام bigram اه.
 أنا كده خلصت ال content بتاعي. ال references بس أنا ما كتبتش ال references. هو باشمهندس حسام عاصم برضه الفيديوهات بتاعته وبرضه الجزء بتاع ال summarization دي من ال PhD.
Final exam highlights بقى، آخر حاجة إن شاء الله هنقولها إن أنا ال exam هيبقى شكله . أنا عارفة إن المنهج فيه نظري ودش كتير بس الأجزاء ال theoretical أقصى حاجة هتيجي فيها فيها دش هيبقى comparisons، brief explanation. يعني أما أقول لك explain مش عايزة صفحة يعني ما تقعدش تكتب لي على الحاجة صفحة، اكتب لي سطرين تلاتة على كل حاجة.
أفهم بس إن أنت فاهم مثلًا الفرق بين ده وده أو ده بيستخدم في إيه وده بيستخدم في إيه، ده ال explanations اللي في المادة. الحاجات ال theoretical التانية ممكن تيجي complete, scientific term, MCQ, true-false. طب الحاجات ال practical خدنا حاجات فيها مسائل ما تنسوش تجيبوا ال calculator لأن في حاجات ممكن تتحسب زي ال TF-IDF، ال ranks والحاجات دي.
زي ما اتفقنا لو في algorithm أو tags أو حاجات عايزة حفظ كـ algorithms هتبقى given.
 الحاجات اللي مش given هتبقى ال rules إن أنا مش هقول لك إزاي بتحسب precision أو recall أو كده، يعني مش هتبقى given أنت المفروض تكون عارفها يعني. فأي حاجة فيها rules قوانين بتتحسب أنتوا احفظوها، إنما الحاجات اللي هي الالجورزمات أنا هبقى given حاجة زي .
فال time إن شاء الله هيبقى مكفي، لو في أي حاجة فيها تتحط في جدول أو كده يعني حاولوا تحلوا neatly كده وتحطوا في جداول تبينوا لي ال answer سهلوا علي التصحيح. أنا كده عايزة بس ال feedback بتاعكم، اللي مش حاضر المحاضرة يدخل على ال link دي يكتب feedback عن ال course العملي، النظري، يعني المحاضرات واللابات. وال content نفسه إيه ممكن يتزود إيه ممكن يتشال، كانت مملة، كانت كتيرة، كانت قليلة يعني.
كل واحد يقول لي بس ال highlights بتاعته. عشان بتفيدني أنا في تحسين ال course بعد كده إن شاء الله. وعايزين ناخد selfie وكل سنة وأنتم طيبين.