Doc2Vec - पैराग्राफ को कैसे लेबल करें (gensim)


17

मैं सोच रहा हूँ कि कैसे (टैग) वाक्यों / अनुच्छेदों / दस्तावेजों को dens2vec के साथ gensim में लेबल किया जाए - एक व्यावहारिक दृष्टिकोण से।

क्या आपको अपने स्वयं के अनूठे लेबल (उदाहरण के लिए "Sent_123") के साथ प्रत्येक वाक्य / पैराग्राफ / दस्तावेज़ की आवश्यकता है? यह उपयोगी लगता है यदि आप कहना चाहते हैं "क्या शब्द या वाक्य" सेंट_123 "लेबल वाले एक विशेष वाक्य के समान हैं।

क्या आपके पास सामग्री के आधार पर लेबल दोहराया जा सकता है? उदाहरण के लिए यदि प्रत्येक वाक्य / पैराग्राफ / दस्तावेज़ एक निश्चित उत्पाद आइटम के बारे में है (और दिए गए उत्पाद आइटम के लिए कई वाक्य / अनुच्छेद / दस्तावेज़ हैं) तो क्या आप आइटम के आधार पर वाक्यों को लेबल कर सकते हैं और फिर एक शब्द या एक के बीच समानता की गणना कर सकते हैं वाक्य और यह लेबल (जो मुझे लगता है कि उन सभी वाक्यों का औसत होगा जो उत्पाद आइटम के साथ करना था)?

जवाबों:


10

दोनों संभव हैं। आप प्रत्येक दस्तावेज़ को एक विशिष्ट आईडी (जैसे एक अनुक्रमिक सीरियल नंबर) एक doctag के रूप में दे सकते हैं, या एक साझा स्ट्रिंग doctag इसके बारे में, या दोनों एक ही समय में कुछ और का प्रतिनिधित्व कर सकते हैं।

TaggedDocument निर्माता टैग की एक सूची लेता है। (यदि आप अपने आप को 0 से आरोही मैदानों तक सीमित करने के लिए होते हैं, तो Doc2Vec मॉडल उन लोगों का उपयोग प्रत्यक्ष अनुक्रमणिका के रूप में करेगा, और आप बहुत सी मेमोरी को सहेज लेंगे जो अन्यथा स्ट्रिंग के लिए समर्पित होगी -> सूचकांक लुकअप , जो बड़े डेटासेट के लिए महत्वपूर्ण हो सकता है। लेकिन आप स्ट्रिंग डॉक्टैग या यहां तक ​​कि इंट और स्ट्रिंग डॉक्टैग का मिश्रण भी उपयोग कर सकते हैं।)

आपको अपनी आवश्यकताओं के लिए सबसे अच्छा काम करने के लिए प्रयोग करना होगा।

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


बहुत बहुत धन्यवाद! एक तरफ के रूप में मैं जीनिम के साथ चारों ओर खेलना शुरू कर रहा हूं - मैं उत्सुक हूं कि क्या एक डॉक्टर के बीच समानता की गणना करना संभव है (भले ही अद्वितीय या साझा किए गए टैग का उपयोग किया जाता है) और एक शब्द - क्या आपके अनुभव में ऐसा किया जा सकता है?
B_Miner

1
कुछ प्रशिक्षण मोड 'समान स्थान' के अंदर शब्द और दस्तावेज़ वैक्टर बनाते हैं और इसलिए समानताएँ सार्थक हो सकती हैं। उदाहरण के लिए देखें यह पत्र - arxiv.org/abs/1507.07998 - जो डॉक्स -वैक्टर (विकिपीडिया लेख) और शब्द-वैक्टर को शामिल करते हुए 'सादृश्य अंकगणित' भी करता है। कि कागज में प्रशिक्षण समवर्ती छोड़ ग्राम शब्द-प्रशिक्षण के साथ gensim के DBOW मोड की तरह है: dm=0, dbow_words=1
गोजोमो

धन्यवाद @gojomo! : मैं कैसे gensim सूची पर यह करने के लिए के बारे में एक प्रश्न जोड़ा groups.google.com/forum/#!topic/gensim/RLRfY6k3ulw
B_Miner

यदि मैं गलत हूं तो मुझे बताएं। अपने अंतिम पैराग्राफ में, आप सुझाव दे रहे हैं कि प्रत्येक दस्तावेज़ को टैग किया जाना चाहिए जैसे हम इस साइट में प्रश्नों को टैग करते हैं। और प्रशिक्षण के बाद, हम प्रत्येक टैग का वेक्टर प्रतिनिधित्व प्राप्त करेंगे। जब कोई नया दस्तावेज़ आता है, तो हम नए दस्तावेज़ के लिए टैग्स सुझाने के लिए समानता मीट्रिक का उपयोग कर सकते हैं।
उपयोगकर्ता

@user - हाँ, यह संभव है और कभी-कभी ऐसा करने के लिए फायदेमंद है, हालांकि यह आवश्यक नहीं है।
गोजमो

9

doc2vecमॉडल से इसका एल्गोरिदम प्राप्त होता है word2vec

में word2vecक्योंकि हर शब्द शब्दावली में अपने स्वयं के अर्थ अर्थ नहीं है, शब्द लेबल करने के लिए कोई जरूरत नहीं है। लेकिन इसके मामले में doc2vec, यह निर्दिष्ट करने की आवश्यकता है कि कितने शब्द या वाक्य एक अर्थ का अर्थ व्यक्त करते हैं, ताकि एल्गोरिथ्म इसे एकल इकाई के रूप में पहचान सके। इस कारण से, हम निर्दिष्ट कर रहे हैंlabels या tagsअर्थ अर्थ के स्तर के आधार पर वाक्य या पैराग्राफ को ।

यदि हम एक पैराग्राफ में एक एकल लेबल को कई वाक्यों में निर्दिष्ट करते हैं, तो इसका मतलब है कि पैराग्राफ में सभी वाक्यों का अर्थ व्यक्त करना आवश्यक है। दूसरी ओर, यदि हम पैराग्राफ में सभी वाक्यों के लिए वैरिएबल लेबल निर्दिष्ट करते हैं, तो इसका मतलब है कि प्रत्येक एक अर्थार्थी अर्थ बताता है और उनके बीच समानता हो सकती है या नहीं हो सकती है।

सरल शब्दों में, किसी labelचीज़ का अर्थ अर्थ।


If we specify a single label to multiple sentences in a paragraph, it means that all the sentences in the paragraph are required to convey the meaning.मुझे यकीन नहीं है कि मैं इसे सही ढंग से समझ रहा हूं। एल्गोरिदम पीओवी से, क्या यह सभी वाक्य एक ही टैग के साथ शब्दार्थ परिभाषा के लिए आवश्यक हैं या एक ही टैग के साथ सभी वाक्य इस बात का वर्णन करते हैं? पहले मामले में, कोई भी वाक्य अपने आप में आत्मनिर्भर नहीं है, दूसरे मामले में, एक भी वाक्य आत्मनिर्भर है।
उपयोगकर्ता

@user: यह दूसरा मामला है, एल्गोरिथ्म POV से, एक टैग को एक इकाई के रूप में परिभाषित किया गया है, जब एक वाक्य में उपयोग किया जाता है, तो यह सभी शब्दों के अर्थ को कैप्चर करता है। उसी तरह जब कई वाक्यों में प्रयोग किया जाता है तो यह अन्य सभी वाक्यों में शब्दों को भी पकड़ लेता है।
यजीह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.