बैग-ऑफ़-वर्ड्स मॉडल

From Vigyanwiki
Revision as of 16:49, 13 July 2023 by alpha>Saurabh

बैग-ऑफ-वर्ड्स मॉडल प्राकृतिक भाषा प्रसंस्करण और सूचना पुनर्प्राप्ति (आईआर) में उपयोग किया जाने वाला सरलीकृत प्रतिनिधित्व है। इस मॉडल में, टेक्स्ट (जैसे वाक्य या दस्तावेज़) को व्याकरण और यहां तक ​​कि शब्द क्रम की उपेक्षा करते हुए किंतु बहुलता (गणित) को ध्यान में रखते हुए उसके शब्दों के मल्टीसेट के रूप में दर्शाया जाता है। कंप्यूटर विज़न के लिए बैग-ऑफ़-वर्ड्स मॉडल का भी उपयोग किया गया है।[1]

बैग-ऑफ-वर्ड्स मॉडल का उपयोग सामान्यतः दस्तावेज़ वर्गीकरण की विधियों में किया जाता है जहां प्रत्येक शब्द की घटना (आवृत्ति) का उपयोग सांख्यिकीय वर्गीकरण के प्रशिक्षण के लिए फ़ीचर (मशीन लर्निंग) के रूप में किया जाता है।[2]

भाषाई संदर्भ में बैग-ऑफ-वर्ड्स का प्रारंभिक संदर्भ वितरण संरचना पर ज़ेलिग हैरिस के 1954 के लेख में पाया जा सकता है।[3]

बैग-ऑफ-वर्ड्स मॉडल वेक्टर स्पेस मॉडल का उदाहरण है।

तः दस्तावेज़ वर्गीकरण की विधियों में किया जाता है जहां प्रत्येक शब्द की घटना (आवृत्ति) का उपयोग सांख्यिकीय वर्गीकरण के प्रशिक्षण

उदाहरण कार्यान्वयन

निम्नलिखित बैग-ऑफ-वर्ड्स का उपयोग करके टेक्स्ट दस्तावेज़ को मॉडल करता है। यहां दो सरल टेक्स्ट दस्तावेज़ हैं:

(1) John likes to watch movies. Mary likes movies too.
(2) Mary also likes to watch football games.

इन दो टेक्स्ट दस्तावेज़ों के आधार पर, प्रत्येक दस्तावेज़ के लिए निम्नानुसार सूची बनाई जाती है:

"John","likes","to","watch","movies","Mary","likes","movies","too"

"Mary","also","likes","to","watch","football","games"

प्रत्येक बैग-ऑफ़-वर्ड्स को JSON ऑब्जेक्ट के रूप में प्रस्तुत करना, और संबंधित जावास्क्रिप्ट वैरिएबल को श्रेय देना:

BoW1 = {"John":1,"likes":2,"to":1,"watch":1,"movies":2,"Mary":1,"too":1};
BoW2 = {"Mary":1,"also":1,"likes":1,"to":1,"watch":1,"football":1,"games":1};

प्रत्येक कुंजी शब्द है, और प्रत्येक मान दिए गए टेक्स्ट दस्तावेज़ में उस शब्द की घटनाओं की संख्या है।

उदाहरण के लिए, तत्वों का क्रम निःशुल्क है {"too":1,"Mary":1,"movies":2,"John":1,"watch":1,"likes":2,"to":1} यह भी BoW1 के समतुल्य है। सख्त JSON ऑब्जेक्ट प्रतिनिधित्व से हम यही अपेक्षा करते हैं।

नोट: यदि कोई अन्य दस्तावेज़ इन दोनों के मिलन जैसा है,

(3) John likes to watch movies. Mary likes movies too. Mary also likes to watch football games.

इसका जावास्क्रिप्ट प्रतिनिधित्व होगा:

BoW3 = {"John":1,"likes":3,"to":2,"watch":2,"movies":2,"Mary":2,"too":1,"also":1,"football":1,"games":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]

मशीन लर्निंग के संदर्भ में टेक्स्ट विश्लेषण के लिए प्रीप्रोसेसिंग की आवश्यकता होती है: स्टॉपवर्ड हटाना, उच्चारण हटाना, यूआरएल हटाना आदि। इसके अतिरिक्त, शब्द आवृत्तियों को सामान्य करने के लिए दस्तावेज़ आवृत्ति, या टीएफ-आईडीएफ के व्युत्क्रम द्वारा किसी शब्द का वजन करना भी सामान्य है। इसके अतिरिक्त, वर्गीकरण के विशिष्ट उद्देश्य के लिए, दस्तावेज़ के वर्ग लेबल को ध्यान में रखते हुए पर्यवेक्षित शिक्षण विकल्प विकसित किए गए हैं।[4] अंत में, कुछ समस्याओं के लिए आवृत्तियों के स्थान पर बाइनरी (उपस्थिति/अनुपस्थिति या 1/0) वेटिंग का उपयोग किया जाता है (उदाहरण के लिए, यह विकल्प वेका (मशीन लर्निंग) मशीन लर्निंग सॉफ्टवेयर सिस्टम में क्रियान्वित किया गया है)।

एन-ग्राम मॉडल

बैग-ऑफ-वर्ड्स मॉडल व्यवस्थित दस्तावेज़ प्रतिनिधित्व है - केवल शब्दों की गिनती महत्व रखती है। उदाहरण के लिए, उपरोक्त उदाहरण में जॉन को फिल्में देखना पसंद है। मैरी को फिल्में भी पसंद हैं, बैग-ऑफ-वर्ड्स प्रतिनिधित्व से यह पता नहीं चलेगा कि क्रिया पसंद है सदैव इस टेक्स्ट में किसी व्यक्ति के नाम के बाद आती है। विकल्प के रूप में, एन-ग्राम मॉडल इस स्थानिक जानकारी को संग्रहीत कर सकता है। उपरोक्त उदाहरण को क्रियान्वित करते हुए, 'बिग्राम' मॉडल टेक्स्ट को निम्नलिखित इकाइयों में पार्स करेगा और पहले की तरह प्रत्येक इकाई की शब्द आवृत्ति को संग्रहीत करता है।

[
    "John likes",
    "likes to",
    "to watch",
    "watch movies",
    "Mary likes",
    "likes movies",
    "movies too",
]

वैचारिक रूप से, हम बैग-ऑफ-वर्ड मॉडल को n=1 के साथ n-ग्राम मॉडल की विशेष स्थितियों के रूप में देख सकते हैं। n>1 के लिए मॉडल को डब्ल्यू-शिंगलिंग नाम दिया गया है (जहां w समूहीकृत शब्दों की संख्या को दर्शाते हुए n के बराबर है)। अधिक विस्तृत चर्चा के लिए भाषा मॉडल देखें।

पायथन कार्यान्वयन

# Make sure to install the necessary packages first
# pip install --upgrade pip
# pip install tensorflow
from tensorflow import keras
from typing import List
from keras.preprocessing.text import Tokenizer

sentence = ["John likes to watch movies. Mary likes movies too."]

def print_bow(sentence: List[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(f"Bag of word sentence 1:\n{bow}")
    print(f"We found {len(word_index)} unique tokens.")

print_bow(sentence)

हैशिंग ट्रिक

शब्दकोशों का उपयोग करने का सामान्य विकल्प हैशिंग ट्रिक है, जहां शब्दों को हैशिंग फ़ंक्शन के साथ सीधे सूचकांकों में मैप किया जाता है।[5] इस प्रकार, शब्दकोश को संग्रहीत करने के लिए किसी मेमोरी की आवश्यकता नहीं होती है। हैश बकेट की संख्या बढ़ाने के लिए हैश संघर्ष को सामान्यतः फ्री-अप मेमोरी के माध्यम से क्रियान्वित किया जाता है। व्यवहार में, हैशिंग बैग-ऑफ-वर्ड मॉडल के कार्यान्वयन को सरल बनाता है और स्केलेबिलिटी में सुधार करता है।

उदाहरण उपयोग: स्पैम फ़िल्टरिंग

बायेसियन स्पैम फ़िल्टरिंग में, ई-मेल संदेश को दो संभाव्यता वितरणों में से एक से चुने गए शब्दों के अव्यवस्थित संग्रह के रूप में तैयार किया जाता है: एक अवांछनीय ई - मेल का प्रतिनिधित्व करता है और दूसरा वैध ई-मेल (हैम) का प्रतिनिधित्व करता है। कल्पना कीजिए कि शब्दों से भरे दो शाब्दिक बैग हैं। बैग स्पैम संदेशों में पाए गए शब्दों से भरा है, और दूसरा वैध ई-मेल में पाए गए शब्दों से भरा है। जबकि किसी दिए गए शब्द के दोनों बैगों में कहीं न कहीं होने की संभावना है, स्पैम बैग में स्टॉक, वियाग्रा जैसे स्पैम-संबंधित शब्द होंगे, और अधिक बार खरीदें शब्द होंगे, जबकि हैम बैग में उपयोगकर्ता के दोस्तों या कार्यस्थल से संबंधित अधिक शब्द होते है।

किसी ई-मेल संदेश को वर्गीकृत करने के लिए, बायेसियन स्पैम फ़िल्टर मानता है कि संदेश शब्दों का ढेर है जिसे दो बैगों में से एक से उचित रूप से डाला गया है, और यह निर्धारित करने के लिए बायेसियन संभाव्यता का उपयोग करता है कि किस बैग में इसके होने की अधिक संभावना है।

यह भी देखें

टिप्पणियाँ

  1. 1.0 1.1 Sivic, Josef (April 2009). "Efficient visual search of videos cast as text retrieval" (PDF). IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 31, NO. 4. opposition. pp. 591–605.
  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. doi:10.1145/1553374.1553516. ISBN 9781605585161. S2CID 291713.

संदर्भ

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