यदि मैं एक काउंटवेक्टराइज़र ऑब्जेक्ट को कॉन्फ़िगर करने के लिए स्किकिट-लर्न का उपयोग करता हूं और एक मैट्रिक्स M n वाक्यों (अलग-अलग लंबाई के) को फिट_ट्रांसफॉर्म फ़ंक्शन में पास करता हूं, उदाहरण के लिए, मैं एक n प्राप्त कर सकता हूं -ग्राम प्रतिनिधित्व F। ऐशे ही:

vectorizer = CountVectorizer(min_df = 1,
                             max_features = 2000,
                             ngram_range = (2, 2),
                             analyzer="word)

F = vectorizer.fit_transform(A)

यह अच्छा काम करता है। F का अब आकार (2000, n) होगा क्योंकि मैंने max_features को 2000 पर सेट कर दिया है।

लेकिन मान लीजिए कि मैं एक और वाक्य प्राप्त करता हूं, और एक वेक्टर उत्पन्न करना चाहता हूं जो F की विशेषताओं के साथ संरेखित हो और जिसकी लंबाई समान हो (2000) .. क्या यह संभव है, या मुझे इसकी आवश्यकता है मूल मैट्रिक्स M रखने के लिए, इसमें नया वाक्य जोड़ें, और फिर सभी सुविधाओं को पुन: उत्पन्न करें?

0
Stephen Johnson 28 अप्रैल 2017, 23:08

1 उत्तर

सबसे बढ़िया उत्तर

अगर मैं समझता हूं कि आप क्या पूछ रहे हैं, तो आप vectorizer.transform(['New sentence here']) का उपयोग करके अतिरिक्त वाक्यों को बदल सकते हैं।

1
elz 28 अप्रैल 2017, 23:20
लेकिन अगर मैंने फिट_ट्रांसफॉर्म को सही ढंग से समझा है, तो यह दो काम करता है: पहला, सभी वाक्यों (एक मैट्रिक्स में पंक्तियों) के लिए यह पूरे मॉडल में फिट बैठता है और पूरी शब्दावली सीखता है। दूसरा, यह सभी पंक्तियों को फीचर वैक्टर में बदल देता है। तो अगर मैं फिर से वेक्टराइज़र का उपयोग करता हूं, तो यह परवाह नहीं करेगा कि फीचर मैट्रिक्स एफ के अंदर क्या है, है ना? या क्या काउंटवेक्टराइज़र ऑब्जेक्ट को याद है कि उसने पहले क्या बनाया है?
 – 
Stephen Johnson
28 अप्रैल 2017, 23:23
ओह रुको, मुझे अभी एहसास हुआ कि आपने ट्रांसफॉर्म लिखा है, फिट_ट्रांसफॉर्म नहीं। मेरी गलती। तो दस्तावेज़ीकरण में परिवर्तन के बारे में पढ़ने के बाद, मुझे कोई समझदार नहीं मिलता है। मैं अतिरिक्त जानकारी खोजने की कोशिश करूंगा। आपको धन्यवाद!
 – 
Stephen Johnson
28 अप्रैल 2017, 23:29
हां, transform बनाम fit_transform महत्वपूर्ण है। जब आप प्रारंभिक fit_transform करते हैं, तो वेक्टराइज़र ऑब्जेक्ट वही करता है जो आपने वर्णित किया है, और प्रशिक्षित मॉडल और शब्दावली को भी बचाता है। वहां से, आप दस्तावेज़ों के किसी भी नए संग्रह को केवल transform विधि का उपयोग करके रूपांतरित कर सकते हैं। जब तक आप 'fit_transform' (या fit) को दोबारा कॉल नहीं करते, तब तक मॉडल नहीं बदलेगा। इसे देखने के लिए, आप F_new = vectorizer.transform(A) को आजमा सकते हैं। यह बिल्कुल आपके पहले F वैरिएबल के समान होना चाहिए।
 – 
elz
28 अप्रैल 2017, 23:43
यह कमाल का है। बस मुझे क्या चाहिए। बहुत बहुत धन्यवाद, तुमने मेरी रात बचाई!
 – 
Stephen Johnson
28 अप्रैल 2017, 23:47