حقيبة كلمات مستمرة

نموذج حقيبة الكلمات bag-of-words model هو تمثيل مبسط يستخدم في معالجة اللغة الطبيعية و استرجاع المعلومات (IR). في هذا النموذج، يتم تمثيل النص (مثل جملة أو مستند) على أنه حقيبة (مجموعة متعددة) من كلماته، بغض النظر عن القواعد وحتى ترتيب الكلمات مع الاحتفاظ بـ التعدد. استُخدم نموذج حقيبة الكلمات لرؤية الحاسب.[1]

يشيع استخدام نموذج حقيبة الكلمات في طرق تصنيف المستند حيث يتم استخدام (تكرار) حدوث كل كلمة باعتبارها ميزة لتدريب المُصنِّف.[2]

يمكن العثور على إشارة أولية إلى حقيبة الكلمات في سياق لغوي في مقالة زلگ هاريس لعام 1954 حول الهيكل التوزيعي.[3]

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

تطبيق مثال

النماذج التالية تمثل مستنداً نصياً باستخدام حقيبة من الكلمات. فيما يلي نوعان من المستندات النصية البسيطة:

(1) يحب جون مشاهدة الأفلام. ماري تحب الأفلام أيضاً.
(2) تحب ماري أيضاً مشاهدة مباريات كرة القدم.

بناءً على هذين المستندين النصيين، يتم إنشاء قائمة على النحو التالي لكل مستند:

"جون"،"يحب"،"لِ"،"مشاهدة"،"أفلام"،"ماري"،"تحب"،"أفلام"،"أيضاً"

"ماري"،"أيضاً"،"تحب"،"لِ"،"مشاهدة"،"كرة القدم"،"مباريات"

تمثيل كل حقيبة من الكلمات على أنها موضوع JSON، وإسنادها إلى متغير جاڤاسكرپت الخاص:

BoW1 = {"جون":1،"يحب":2،"لِ":1،"مشاهدة":1،"أفلام":2،"ماري":1،"أيضاً":1};
BoW2 = {"ماري":1،"أيضاً":1،"تحب":1،"لِ":1،"مشاهدة":1،"كرة القدم":1،"مباريات":1};

كل مفتاح هو الكلمة، وكل قيمة هي عدد تكرارات تلك الكلمة في المستند النصي المحدد.

ترتيب العناصر حر، لذلك، على سبيل المثال {"أيضاً":1،"ماري":1،"أفلام":2،"جون":1؟،"مشاهدة":1،"يحب":2،"لِ":1} تعادل أيضًا "BoW1". إنه أيضاً ما نتوقعه من تمثيل صارم لـ "موضوع JSON".

ملاحظة: إذا كان هناك مستند آخر يشبه اتحاد هذين،

(3) جون يحب مشاهدة الأفلام. ماري تحب الأفلام أيضًاً. تحب ماري أيضاً مشاهدة مباريات كرة القدم.

سيكون تمثيل جاڤاسكرپت الخاص بها:

BoW3 = {"جون":1،"likes":3،"لِ":2،"مشاهدة":2،"أفلام":2،"ماري":2،"أيضاً":1،"أيضاً":1،"كرة القدم":1،"مباريات":1};

لذا، كما نرى في جبر الحقيبة، فإن "اتحاد" وثيقتين في تمثيل أكياس الكلمات هو اصطلاحياً الاتحاد المنفصل، الذي يلخص تعدد كل عنصر.


.


تطبيق

من الناحية العملية، يتم استخدام نموذج حقيبة الكلمات بشكل أساسي كأداة لتوليد الميزات. بعد تحويل النص إلى "حقيبة كلمات"، يمكننا حساب مقاييس مختلفة لوصف النص. النوع الأكثر شيوعاً من الخصائص أو السمات المحسوبة من نموذج حقيبة الكلمات هو تكرار المصطلح، أي عدد المرات التي يظهر فيها مصطلح في النص. بالنسبة للمثال أعلاه، يمكننا إنشاء القائمتين التاليتين لتسجيل ترددات المصطلح لجميع الكلمات المميزة (BoW1 و BoW2 مرتبة كما في BoW3):

(1) [1, 2, 1, 1, 2, 1, 1, 0, 0, 0]
(2) [0, 1, 1, 1, 0, 1, 0, 1, 1, 1]

يشير كل إدخال في القوائم إلى عدد المدخلات المقابلة في القائمة (وهذا أيضاً تمثيل المدرج التكراري). على سبيل المثال، في القائمة الأولى (التي تمثل المستند 1)، أول إدخالين هما "1،2":

  • الإدخال الأول يتوافق مع كلمة "جون" وهي الكلمة الأولى في القائمة، وقيمتها هي "1" لأن "جون" يظهر في المستند الأول مرة واحدة.
  • الإدخال الثاني يتوافق مع كلمة "يحب" وهي الكلمة الثانية في القائمة وقيمتها "2" لأن كلمة "يحب" تظهر في المستند الأول مرتين.

لا يحافظ تمثيل القائمة (أو المتجه) على ترتيب الكلمات في الجمل الأصلية. هذه فقط السمة الرئيسية لنموذج حقيبة الكلمات. يحتوي هذا النوع من التمثيل على العديد من التطبيقات الناجحة، مثل ترشيح البريد الإلكتروني.[1]

ومع ذلك، فإن ترددات المصطلحات ليست بالضرورة أفضل تمثيل للنص. غالباً ما تكون الكلمات الشائعة مثل "ال" و "أداة تعريف" و "إلى" هي المصطلحات الأكثر تكراراً في النص. وبالتالي، فإن وجود عدد كبير من المواد الخام لا يعني بالضرورة أن الكلمة المقابلة لها أهمية أكبر. لمعالجة هذه المشكلة، تتمثل إحدى الطرق الأكثر شيوعاً لـ "تسوية" مصطلح الترددات في ترجيح المصطلح من خلال عكس تردد المستند، أو tf – idf. بالإضافة إلى ذلك، لأغراض التصنيف المحددة، تم تطوير بدائل  تحت الإشراف لحساب تسمية فئة المستند.[4] أخيراً، يتم استخدام الترجيح الثنائي (التواجد / عدم التواجد أو 1/0) بدلاً من الترددات لبعض المشكلات (على سبيل المثال، يتم تنفيذ هذا الخيار في نظام برمجيات التعلم الآلي  WEKA).

نموذج n-gram

نموذج حقيبة الكلمات هو تمثيل للمستندات بدون ترتيب - فقط عدد الكلمات هو المهم. على سبيل المثال، في المثال أعلاه "يحب جون مشاهدة الأفلام. تحب ماري الأفلام أيضًا"، لن يكشف تمثيل حقيبة الكلمات أن الفعل "يحب" يتبع دائماً اسم الشخص في هذا النص. كبديل، يمكن للنموذج n-gram تخزين هذه المعلومات المكانية. بالتطبيق على نفس المثال أعلاه، سيقوم نموذج بايگرام بتحليل النص إلى الوحدات التالية وتخزين تكرار المصطلح لكل وحدة كما كان من قبل.

[
    "جون يحب"،
    "يحب"،
    "مشاهدة"،
    "مشاهدة الأفلام"،
    "تحب ماري"،
    "تحب الأفلام"،
    "الأفلام أيضاً"،
]

من الناحية المفاهيمية، يمكننا عرض نموذج حقيبة الكلمات كحالة خاصة للنموذج n-gram، حيث n = 1. بالنسبة إلى n>1، يتم تسمية النموذج w-shingling (حيث w يكافئ n للإشارة إلى عدد الكلمات المجمعة). راجع نموذج اللغة للحصول على مناقشة أكثر تفصيلاً.

تطبيق پايثون

from keras.preprocessing.text import Tokenizer

sentence = ["يحب جون مشاهدة الأفلام. ماري تحب الأفلام أيضاً."]

def print_bow(sentence: str) -> None:
    tokenizer = Tokenizer()
    tokenizer.fit_on_texts(sentence)
    sequences = tokenizer.texts_to_sequences(sentence)
    word_index = tokenizer.word_index 
    bow = {}
    for key in word_index:
        bow[key] = sequences[0].count(word_index[key])
    print(bow)
    print(f"Bag of word sentence 1 :\n{bow}")
    print(f'We found {len(word_index)} unique tokens.')

print_bow(sentence)

طريقة التجزئة

من البدائل الشائعة لاستخدام القواميس طريقة التجزئة، حيث يتم تعيين الكلمات مباشرةً إلى مؤشرات ذات دالة تجزئة.[5] وبالتالي، لا يلزم وجود ذاكرة لتخزين القاموس. عادةً ما يتم التعامل مع تعارضات التجزئة عبر الذاكرة المحررة لزيادة عدد دلاء التجزئة. من الناحية العملية، تبسط التجزئة تنفيذ نماذج حقيبة الكلمات وتحسن قابلية التوسع.

مثال على الاستخدام: ترشيح البريد العشوائي

في الترشيح البايزي للبريد الإلكتروني العشوائي، تم تصميم رسالة البريد الإلكتروني على أنها مجموعة غير مرتبة من الكلمات المحددة من أحد التوزيعين الاحتماليين: أحدهما يمثل البريد العشوائي ويمثل الآخر البريد الإلكتروني القانوي ( "ham"). تخيل أن هناك حقيبتا أحرف مليئة بالكلمات. حقيبة واحدة مليئة بالكلمات الموجودة في رسائل البريد العشوائي، والأخرى بكلمات موجودة في البريد الإلكتروني القانوني. في حين أنه من المحتمل أن تكون أي كلمة في مكان ما في كلتا الحقائب، فإن حقيبة "البريد العشوائي" ستحتوي على كلمات ذات صلة بالبريد العشوائي مثل "أوراق مالية" و "ڤياگرا" و "شراء" بشكل متكرر أكثر، بينما تحتوي حقيبة "ham" المزيد من الكلمات المتعلقة بأصدقاء المستخدم أو مكان العمل.

لتصنيف رسالة بريد إلكتروني، يفترض عامل ترشيح بايزي للبريد الإلكتروني العشوائي أن الرسالة عبارة عن حفنة من الكلمات تم وضعها عشوائياً من إحدى الحقيبتين، وتستخدم الاحتمال البايزي لتحديد الحقيبة الأكثر احتمالية لتكون فيها.

انظر أيضاً

الملاحظات

  1. ^ أ ب Sivic, Josef (April 2009). "Efficient visual search of videos cast as text retrieval". IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 31, NO. 4: 591–605, IEEE. 
  2. ^ McTear et al 2016, p. 167.
  3. ^ Harris, Zellig (1954). "Distributional Structure". Word. 10 (2/3): 146–62. doi:10.1080/00437956.1954.11659520. And this stock of combinations of elements becomes a factor in the way later choices are made ... for language is not merely a bag of words but a tool with particular properties which have been fashioned in the course of its use
  4. ^ Youngjoong Ko (2012). "A study of term weighting schemes using class information for text classification". SIGIR'12, ACM. 
  5. ^ Weinberger, K. Q.; Dasgupta A.; Langford J.; Smola A.; Attenberg, J. (2009). "Feature hashing for large scale multitask learning". Proceedings of the 26th Annual International Conference on Machine Learning: 1113–1120. arXiv:0902.2206. Bibcode:2009arXiv0902.2206W.

المراجع

  • McTear, Michael (et al) (2016). The Conversational Interface. Springer International Publishing.