Majid Al-RaimiWords and tokensالكلمات والرموز (Tokens)

ICS 582Lecture 02المحاضرة 02

Words and tokensالكلمات والرموز (Tokens)

From what counts as a word to the algorithms that carve text into units: types and tokens, Zipf and Heaps laws, morphology in English and Arabic, Unicode and UTF-8, byte-pair encoding, regular expressions, and minimum edit distance with dynamic programming.من تحديد ما يُعد كلمة إلى الخوارزميات التي تقسم النص إلى وحدات: الأنواع والرموز (types وtokens)، وقانونا Zipf وHeaps، والصرف في الإنجليزية والعربية، وUnicode وUTF-8، وترميز أزواج البايتات (BPE)، والتعابير النمطية (regular expressions)، ومسافة التحرير الدنيا بالبرمجة الديناميكية.

Partsالأجزاء
11
Conceptsالمفاهيم
46
Slidesالشرائح
94
Readingمدة القراءة
276 min276 دقيقة
Understoodما فهمته
0/46 conceptsمفاهيم
Read the full guideاقرأ الشرح الكاملEvery part on one long page: 11 parts, 46 concepts, about 276 min.كل الأجزاء في صفحة واحدة طويلة: 11 جزءًا، و46 مفهومًا، في نحو 276 دقيقة.

AOverviewنظرة عامة

This lecture answers a question that looks too simple to matter: what is a word, and how do you cut text into them? It starts with one picnic sentence that has 16 tokens under one policy and 18 under another, and it ends with a table that measures how far one string sits from another. Between the two lies the whole working surface of natural language processing: counting units, the two laws that govern their frequencies, the meaningful parts inside them, the bytes that carry any script, the algorithms that learn units from data, the patterns that find them, and the distance that compares them.

تجيب هذه المحاضرة عن سؤال يبدو أبسط من أن يستحق الاهتمام: ما الكلمة، وكيف نقطّع النص إليها؟ تبدأ بجملة واحدة عن نزهة تعطي 16 وحدة (token) وفق سياسة و18 وفق سياسة أخرى، وتنتهي بجدول يقيس مدى بُعد سلسلة نصية عن أخرى. وبين الطرفين يقع سطح العمل الكامل لمعالجة اللغات الطبيعية: عدّ الوحدات، والقانونان اللذان يحكمان تكراراتها، والأجزاء ذات المعنى داخلها، والبايتات التي تحمل أي نظام كتابة، والخوارزميات التي تتعلم الوحدات من البيانات، والأنماط التي تعثر عليها، والمسافة التي تقارن بينها.

As a PhD student you need it in three places. Exam questions ask you to compute, not to recall: give N and|V| for a sentence under a stated policy, fit |V| = k N^beta to a corpus and read off a prediction, run four BPE merges by hand and state your tie rule, encode a code point into UTF-8 bytes, and fill an edit distance table cell by cell. Your research will depend on every one of these choices, because a vocabulary, a normalization scheme and a tokenizer are design decisions you will have to state and defend in any paper, and Arabic in particular makes them visible through templatic morphology, clitics and a rich orthography. And any system you build or review consumes tokens, so the cost, the coverage and the failure modes of the tokenizer are the first properties of the model you should be able to explain.

بصفتك طالب دكتوراه تحتاج هذه المحاضرة في ثلاثة مواضع. أسئلة الامتحان تطلب منك أن تحسب لا أن تتذكر: أعطِ N و|V| لجملة وفق سياسة محددة، وطابق |V| = k N^beta مع مدوّنة (corpus) واستخرج منها تنبؤًا، ونفّذ أربع عمليات دمج في BPE يدويًا مع ذكر قاعدة كسر التعادل (tie rule)، وحوّل نقطة رمزية (code point) إلى بايتات UTF-8، واملأ جدول مسافة التحرير (edit distance) خلية خلية. وسيعتمد بحثك على كل واحد من هذه الاختيارات، لأن المفردات (vocabulary) ومخطط التطبيع (normalization) والمقطِّع (tokenizer) قرارات تصميمية عليك أن تذكرها وتدافع عنها في أي ورقة، والعربية بالذات تجعلها ظاهرة بسبب صرفها القائم على القوالب (templatic morphology) واللواصق (clitics) وإملائها الغني. وأي نظام تبنيه أو تراجعه يستهلك tokens، لذا فإن تكلفة المقطِّع وتغطيته وأنماط فشله هي أول خصائص النموذج التي يجب أن تقدر على شرحها.

From counting units to aligning strings: the lecture in five stopsمن عدّ الوحدات إلى محاذاة السلاسل النصية: المحاضرة في خمس محطات

The path has five stops. You learn to count units and see that frequency and vocabulary follow two laws that make rare words unavoidable. You look inside those units for the meaningful parts that explain why a single lemma multiplies into many forms. You follow characters down to bytes so that no script is ever unrepresentable. You watch an algorithm learn its own units from data by merging the most frequent pair, and then see what a real tokenizer does with that algorithm in production. Finally you learn the pattern language that finds units and the distance that compares them, which is the dynamic programming pattern the rest of the course reuses.

للمسار خمس محطات. تتعلم أن تعدّ الوحدات وترى أن التكرار وحجم المفردات يتبعان قانونين يجعلان الكلمات النادرة أمرًا لا مفر منه. تنظر داخل هذه الوحدات إلى الأجزاء ذات المعنى التي تفسر لماذا يتكاثر جذر معجمي واحد (lemma) إلى صيغ كثيرة. تتتبع الحروف نزولًا إلى البايتات حتى لا يبقى أي نظام كتابة عصيًّا على التمثيل. تشاهد خوارزمية تتعلم وحداتها بنفسها من البيانات بدمج الزوج الأكثر تكرارًا، ثم ترى ما يفعله مقطِّع حقيقي بهذه الخوارزمية في بيئة الإنتاج. وأخيرًا تتعلم لغة الأنماط التي تعثر على الوحدات والمسافة التي تقارن بينها، وهي نمط البرمجة الديناميكية (dynamic programming) الذي يعيد المقرر استخدامه لاحقًا.

Success looks likeعلامات النجاح

  • Compute the token and type counts N and |V| for a given string under a stated policy for case and punctuation, and explain why the same sentence gives two answers.احسب عدد الوحدات (tokens) وعدد الأنواع (types)، أي N و|V|، لسلسلة معطاة وفق سياسة محددة لحالة الأحرف وعلامات الترقيم، واشرح لماذا تعطي الجملة نفسها إجابتين.
  • State Zipf's law and Heaps' law, move between rank, frequency and vocabulary size with f(R) and |V| = k N^beta, and argue from them why OOV items are guaranteed.اذكر قانون Zipf وقانون Heaps، وتنقّل بين الرتبة والتكرار وحجم المفردات باستخدام f(R) و|V| = k N^beta، واستدل منهما على أن الكلمات خارج المفردات (OOV) أمر مضمون الحدوث.
  • Segment a word into morphemes, label each as root or affix and free or bound, and tell inflection from derivation on a new example.قسّم كلمة إلى وحداتها الصرفية (morphemes)، وصنّف كل وحدة إلى جذر أو زائدة (affix)، وحرة أو مقيدة (free أو bound)، وميّز التصريف (inflection) من الاشتقاق (derivation) في مثال جديد.
  • Apply the selectivity and paradigm diagnostics to place a form as clitic or affix, and locate a language on the typology axes with an example.طبّق اختبارَي الانتقائية (selectivity) والجدول الصرفي (paradigm) لتحدد إن كانت الصيغة لاصقة (clitic) أم زائدة (affix)، وحدد موقع لغة على محاور التصنيف اللغوي (typology) مع مثال.
  • Distinguish code point, glyph and encoding, normalize a decomposed string, and encode any code point into UTF-8 bytes by hand.ميّز بين النقطة الرمزية (code point) والشكل المرسوم (glyph) والترميز (encoding)، وطبّع سلسلة مفكَّكة (decomposed)، وحوّل أي نقطة رمزية إلى بايتات UTF-8 يدويًا.
  • Run the BPE trainer and the encoder on a small corpus, list the vocabulary, state the tie rule, and explain why merge order decides the units of unseen text.شغّل مدرِّب BPE ومرمِّزه (encoder) على مدوّنة صغيرة، واسرد المفردات، واذكر قاعدة كسر التعادل، واشرح لماذا يحدد ترتيب الدمج وحدات النص غير المرئي سابقًا.
  • Read and write a regular expression for a tokenization rule, and fill an edit distance table by hand to return a distance and an alignment under a stated cost convention.اقرأ واكتب تعبيرًا نمطيًا (regular expression) لقاعدة تقطيع، واملأ جدول مسافة التحرير يدويًا لتعطي المسافة والمحاذاة (alignment) وفق اصطلاح تكلفة محدد.

How to study this lectureكيف تذاكر هذه المحاضرة

  1. Choose your route. Read the full guide in one sitting for the big picture, or work through one part at a time when you want depth.اختر طريقك. اقرأ الدليل الكامل في جلسة واحدة لترى الصورة الكبيرة، أو اعمل على جزء واحد في كل مرة عندما تريد التعمق.
  2. Answer every recall prompt in your head, or on paper, before you reveal it. Counting, merging and encoding only stick if you do them by hand, and each is worth attempting cold first.أجب عن كل سؤال استرجاع في ذهنك أو على الورق قبل أن تكشف الإجابة. العدّ والدمج والترميز لا تثبت إلا إذا أديتها بيدك، وكل منها يستحق المحاولة من الصفر أولًا.
  3. Take each quiz and read the explanation even when you are right. The explanations carry the distinctions an examiner probes, such as inflection against derivation or NFC against NFKC.حل كل اختبار قصير واقرأ الشرح حتى لو كانت إجابتك صحيحة. فالشروح تحمل الفروق التي يختبرها الممتحِن، مثل التصريف مقابل الاشتقاق أو NFC مقابل NFKC.
  4. Use the simulators: count tokens and types, trace BPE merges, tokenize a real sentence, and fill the edit distance grid. Watching a decision go wrong is faster than reading that it can.استخدم المحاكيات: عُدّ الوحدات والأنواع، وتتبّع عمليات دمج BPE، وقطّع جملة حقيقية، واملأ شبكة مسافة التحرير. مشاهدة قرار وهو يخطئ أسرع من القراءة عن أنه قد يخطئ.
  5. Practise every computation under both conventions once, unit costs and cost 2 substitutions, so the exam convention never surprises you.تدرّب على كل عملية حسابية وفق الاصطلاحين مرة واحدة على الأقل: التكاليف الموحدة (unit costs) والاستبدال بتكلفة 2، حتى لا يفاجئك الاصطلاح المستخدم في الامتحان.
  6. Mark a concept as understood only when you could explain it to a classmate without looking. Unmarked concepts show you where to return.لا تعلّم مفهومًا على أنه مفهوم إلا عندما تستطيع شرحه لزميل دون النظر. المفاهيم غير المعلَّمة تريك أين يجب أن تعود.
  7. Come back after a few days and retry the recall prompts and quizzes cold. Spaced practice builds the long-term memory an exam needs.عُد بعد بضعة أيام وأعد محاولة أسئلة الاسترجاع والاختبارات القصيرة من الصفر. التدريب المتباعد يبني الذاكرة طويلة المدى التي يحتاجها الامتحان.

Sourcesالمصادر

BThe 11 partsالأجزاء الـ11

  1. 01What counts as a wordما الذي يُعد كلمةWhy a word is not a universal unit, the difference between tokens and types, how corpus vocabularies compare, and the preprocessing decisions every tokenizer must make.لماذا الكلمة ليست وحدة عالمية، والفرق بين الرموز (tokens) والأنواع (types)، وكيف تُقارن مفردات المدونات، وقرارات المعالجة المسبقة التي يجب أن يتخذها كل مُقسِّم (tokenizer).4 concepts4 مفاهيمSlides 1-10الشرائح 1-1024 min24 دقيقة
    1. 1.1The lecture in one map: eight stops from words to edit distanceالمحاضرة في خريطة واحدة: ثماني محطات من الكلمات إلى مسافة التحرير
    2. 1.2A word is a design decision, not a fact of natureالكلمة قرار تصميمي، لا حقيقة من حقائق الطبيعة
    3. 1.3Tokens versus types, and why |V| keeps growingالوحدات النصية (tokens) مقابل الأنواع (types)، ولماذا يستمر |V| في النمو
    4. 1.4The preprocessing checklist and its ambiguous boundariesقائمة قرارات المعالجة المسبقة وحدودها الملتبسة
  2. 02Zipf and Heaps: the shape of vocabularyZipf وHeaps: شكل المفرداتTwo empirical laws that explain why a few words are everywhere, most words are rare, and vocabulary never stops growing, and why that pushes NLP toward subword units.قانونان تجريبيان يفسران لماذا تنتشر كلمات قليلة في كل مكان بينما معظم الكلمات نادرة، ولماذا لا يتوقف نمو المفردات أبدا، ولماذا يدفع ذلك NLP نحو الوحدات الجزئية (subword units).4 concepts4 مفاهيمSlides 11-16الشرائح 11-1624 min24 دقيقة
    1. 2.1Zipf's law: a few words carry most of the textقانون Zipf: كلمات قليلة تحمل معظم النص
    2. 2.2Why a power law is a straight line, and where real corpora bendلماذا يكون قانون القوة خطًا مستقيمًا، وأين تنحرف الـ corpora الحقيقية عنه
    3. 2.3Heaps' law: the vocabulary never stops growingقانون Heaps: المفردات لا تتوقف عن النمو أبدًا
    4. 2.4Why it matters: OOV, hapax legomena and the case for subwordsلماذا يهم ذلك: الـ OOV والـ hapax legomena والحجة لصالح الـ subwords
  3. 03Morphemes: the parts of wordsالمورفيمات: أجزاء الكلماتThe smallest meaning-bearing units, roots and affixes, inflection versus derivation, and how English concatenation differs from Arabic root-and-pattern morphology.أصغر الوحدات الحاملة للمعنى، والجذور والزوائد (affixes)، والتصريف (inflection) مقابل الاشتقاق (derivation)، وكيف يختلف الإلصاق المتسلسل في الإنجليزية عن صرف الجذر والوزن في العربية.3 concepts3 مفاهيمSlides 17-21الشرائح 17-2118 min18 دقيقة
    1. 3.1Morphemes: roots carry the meaning, affixes attach to themالمورفيمات: الجذور تحمل المعنى، واللواصق تلتصق بها
    2. 3.2Inflection keeps the lexeme, derivation makes a new oneالتصريف يُبقي المفردة المعجمية، والاشتقاق يصنع مفردة جديدة
    3. 3.3Concatenative strings pieces in a line, non-concatenative changes the insideالصرف التسلسلي يصفّ القطع في خط واحد، وغير التسلسلي يغيّر داخل الكلمة
  4. 04Clitics and morphological typologyاللواحق المتصلة (Clitics) والتصنيف الصرفيWhy some attached pieces are words in disguise, how to tell a clitic from an affix, and where languages sit between isolating and polysynthetic, with English and Arabic placed on the map.لماذا تكون بعض الأجزاء الملتصقة كلمات متنكرة، وكيف نميز اللاحقة المتصلة (clitic) من الزائدة (affix)، وأين تقع اللغات بين العازلة (isolating) والمتعددة التركيب (polysynthetic)، مع تحديد موقع الإنجليزية والعربية على الخريطة.3 concepts3 مفاهيمSlides 22-28الشرائح 22-2818 min18 دقيقة
    1. 4.1Clitics: words in syntax, attached in sound, and the selectivity testاللواحق الكلامية: كلمات في النحو، ملتصقة في النطق، واختبار الانتقائية
    2. 4.2Morphological typology: four tendencies, not four boxesالتصنيف الصرفي للغات: أربعة ميول لا أربعة صناديق
    3. 4.3Morphemes per word, and why it decides your tokenizerعدد المورفيمات في الكلمة، ولماذا يحدد مقطِّعك
  5. 05Corpora, Unicode and UTF-8المدونات النصية وUnicode وUTF-8What a corpus is and why it must be documented, how Unicode names every character with a code point, and how UTF-8 packs code points into bytes that any model can consume.ما هي المدونة النصية (corpus) ولماذا يجب توثيقها، وكيف يسمي Unicode كل حرف بنقطة ترميز (code point)، وكيف يحزم UTF-8 نقاط الترميز في بايتات يستطيع أي نموذج استهلاكها.4 concepts4 مفاهيمSlides 29-37الشرائح 29-3724 min24 دقيقة
    1. 5.1A corpus is a situated sample, so it needs a data statementالمدونة النصية عيّنة لها سياقها، لذا تحتاج إلى بيان بيانات
    2. 5.2Code points are numbers, glyphs are pictures, and normalization keeps them consistentنقاط الترميز أعداد، والرسوم الحرفية صور، والتطبيع يحافظ على اتساقها
    3. 5.3UTF-8 packs a code point into one to four self-describing bytesيحزم UTF-8 نقطة الترميز في بايت واحد إلى أربعة بايتات تصف نفسها
    4. 5.4Why bytes are the universal fallback for tokenizersلماذا البايتات هي الملاذ الشامل للمقطِّعات
  6. 06Tokenization units and byte-pair encodingوحدات التقسيم وترميز أزواج البايتات (BPE)Words, characters or subwords as the unit of text, the tradeoffs among them, and the BPE algorithm that learns a subword vocabulary by merging frequent pairs, traced by hand on a toy corpus.الكلمات أو الحروف أو الوحدات الجزئية (subwords) كوحدة للنص، والموازنات بينها، وخوارزمية BPE التي تتعلم مفردات جزئية بدمج الأزواج المتكررة، مع تتبعها يدويا على مدونة صغيرة.5 concepts5 مفاهيمSlides 38-48الشرائح 38-4830 min30 دقيقة
    1. 6.1What a tokenizer must balanceما الذي يجب أن يوازن بينه المقطِّع (tokenizer)
    2. 6.2Words, characters and subwords: the trade-offsالكلمات والحروف والوحدات الفرعية: المفاضلات
    3. 6.3The BPE trainer: merge the most frequent adjacent pair, k timesمدرِّب BPE: ادمج الزوج المتجاور الأكثر تكرارًا k مرة
    4. 6.4Tracing four merges on 'set new new renew reset renew'تتبّع أربع دمجات على 'set new new renew reset renew'
    5. 6.5The BPE encoder: replay the merges in order on new textمرمِّز BPE: أعِد تطبيق الدمجات بترتيبها على النص الجديد
  7. 07Tokenizers in practice and sentence segmentationالمُقسِّمات (Tokenizers) عمليا وتقسيم الجملPre-tokenizers, byte-level BPE, multilingual fairness, SuperBPE, the design checklist for a real tokenizer, and the related problem of finding sentence boundaries.المُقسِّمات المسبقة (pre-tokenizers)، وBPE على مستوى البايت، والعدالة بين اللغات، وSuperBPE، وقائمة التحقق لتصميم مُقسِّم حقيقي، والمشكلة المرتبطة بإيجاد حدود الجمل.4 concepts4 مفاهيمSlides 49-55الشرائح 49-5524 min24 دقيقة
    1. 7.1From the BPE algorithm to a shipping tokenizerمن خوارزمية BPE إلى tokenizer يُستخدم في منتج حقيقي
    2. 7.2Who pays for a shared vocabulary, and merging across spacesمن يدفع ثمن المفردات المشتركة، والدمج عبر المسافات
    3. 7.3The design checklist: every switch has a consequenceقائمة قرارات التصميم: لكل مفتاح نتيجة
    4. 7.4Sentence segmentation: the period is the hard caseتقسيم النص إلى جمل: النقطة هي الحالة الصعبة
  8. 08Regular expressions: the core syntaxالتعابير النمطية (Regex): الصياغة الأساسيةFrom ELIZA's pattern rules to the building blocks of regular expressions: literals, bracket classes, ranges, negation, quantifiers, wildcards, anchors and the backslash aliases.من قواعد الأنماط في ELIZA إلى اللبنات الأساسية للتعابير النمطية: الحروف الحرفية (literals)، وفئات الأقواس، والنطاقات، والنفي، والمكممات (quantifiers)، والرمز العام (wildcard)، والمرتكزات (anchors)، واختصارات الشرطة المائلة العكسية.4 concepts4 مفاهيمSlides 56-65الشرائح 56-6524 min24 دقيقة
    1. 8.1ELIZA: a conversation built from pattern substitutionsELIZA: محادثة مبنية على استبدال الأنماط
    2. 8.2Literals, disjunction and the square-bracket classالحروف الحرفية والاختيار وفئة الأقواس المربعة
    3. 8.3Counting, the wildcard, and greedy versus lazyالعدّ والرمز الشامل والجشع مقابل الكسول
    4. 8.4Anchors and the six aliasesالمراسي والاختصارات الستة
  9. 09Regular expressions in practiceالتعابير النمطية عملياEscaping, precedence and groups, substitutions with backreferences, lookarounds, the cheat sheets, the GPT-2 pre-tokenizer regex, and the engineering habits that keep patterns correct and fast.الهروب (escaping)، والأسبقية والمجموعات، والاستبدال مع المراجع الخلفية (backreferences)، والنظر حول النمط (lookarounds)، وأوراق المراجعة، وتعبير المُقسِّم المسبق في GPT-2، والعادات الهندسية التي تبقي الأنماط صحيحة وسريعة.6 concepts6 مفاهيمSlides 66-78الشرائح 66-7836 min36 دقيقة
    1. 9.1Escaping metacharacters and the precedence ladderتهريب المحارف الخاصة وسُلّم الأولوية
    2. 9.2Composing patterns, capture groups, substitution and lookaheadتركيب الأنماط، ومجموعات الالتقاط، والاستبدال، والـ lookahead
    3. 9.3The slide 72 practice set, solvedمجموعة تمارين الشريحة 72 محلولة
    4. 9.4The cheat sheet as reference tablesورقة الملخّص كجداول مرجعية
    5. 9.5The GPT-2 pre-tokenizer: a regex as the first pass of BPEالـ pre-tokenizer في GPT-2: الـ regex كمرور أول لـ BPE
    6. 9.6Engineering regexes: error analysis, tests, Unicode, backtrackingهندسة الـ regex: تحليل الأخطاء، والاختبارات، وUnicode، والتراجع (backtracking)
  10. 10Minimum edit distance: alignments and searchمسافة التحرير الدنيا: المحاذاة والبحثMeasuring how far apart two strings are with insertions, deletions and substitutions, seeing the answer as an alignment, and recognizing the problem as a shortest path that dynamic programming solves.قياس بُعد سلسلتين نصيتين عن بعضهما بالإدراج والحذف والاستبدال، والنظر إلى الإجابة كمحاذاة (alignment)، والتعرف على المشكلة كأقصر مسار تحله البرمجة الديناميكية.4 concepts4 مفاهيمSlides 79-86الشرائح 79-8624 min24 دقيقة
    1. 10.1Edit distance: three operations that measure how far apart two strings areمسافة التحرير: ثلاث عمليات تقيس مدى تباعد سلسلتين
    2. 10.2The alignment view: a distance is a set of columns you can read and costمنظور المحاذاة: المسافة مجموعة أعمدة يمكنك قراءتها وحساب تكلفتها
    3. 10.3From an exploding search tree to a grid of prefix pairsمن شجرة بحث متفجرة إلى شبكة من أزواج البادئات
    4. 10.4The recurrence, its initialization, and what a cost function can encodeالعلاقة التكرارية وتهيئتها، وما الذي يمكن أن تُرمّزه دالة التكلفة
  11. 11Filling the DP table and recovering the alignmentملء جدول DP واستعادة المحاذاةThe full algorithm, a cell by cell computation for intention to execution, backpointers and backtrace to read off the alignment, the time and space complexity, and the lecture in one page.الخوارزمية كاملة، وحساب خلية بخلية لتحويل intention إلى execution، والمؤشرات الخلفية (backpointers) والتتبع العكسي (backtrace) لقراءة المحاذاة، وتعقيد الزمن والذاكرة، وملخص المحاضرة في صفحة واحدة.5 concepts5 مفاهيمSlides 87-94الشرائح 87-9430 min30 دقيقة
    1. 11.1One edit at a time: the path that the table will rebuildتعديل واحد في كل مرة: المسار الذي سيعيد الجدول بناءه
    2. 11.2Filling D cell by cell: initialization, three candidates, one minimumملء الجدول D خلية خلية: التهيئة، وثلاثة مرشحين، وقيمة صغرى واحدة
    3. 11.3Backpointers: reading the arrows back to the originالمؤشرات الخلفية (backpointers): قراءة الأسهم رجوعًا إلى نقطة البداية
    4. 11.4What the table costs: O(mn) time, and how little space you really needكلفة الجدول: زمن O(mn)، وما أقل الذاكرة التي تحتاجها فعلًا
    5. 11.5The lecture in seven lines, and where it came fromالمحاضرة في سبعة أسطر، ومن أين جاءت مادتها

CGlossary and referenceالمصطلحات والمرجع