2011-07-07 12 views
5

के साथ अपने में scikits सीखने पाइपलाइन, मैं CountVectorizer() के लिए एक कस्टम शब्दावली पारित करने के लिए करना चाहते हैं:Scikits सीखने: उपयोग कस्टम शब्दावली एक साथ पाइपलाइन

text_classifier = Pipeline([ 
    ('count', CountVectorizer(vocabulary=myvocab)), 
    ('tfidf', TfidfTransformer()), 
    ('clf', LinearSVC(C=1000)) 
]) 

हालांकि, जहां तक ​​मैं समझता हूँ कि जब मैं फोन

text_classifier.fit(X_train, y_train) 

पाइपलाइन जो myvocab पर ध्यान नहीं देता CountVectorizer(), की विधि fit_transform() का उपयोग करता है। Myvocab का उपयोग करने के लिए मैं अपनी पाइपलाइन को कैसे संशोधित कर सकता हूं? धन्यवाद!

उत्तर

9

यह विज्ञान में एक बग था-सीखें कि मैंने five minutes ago तय किया है। इसे तलाशने के लिए धन्यवाद। मेरा सुझाव है कि आप या तो Github से नवीनतम संस्करण में नवीनीकृत, या एक समाधान के रूप पाइपलाइन से vectorizer अलग:

count = CountVectorizer(vocabulary=myvocab) 
X_vectorized = count.transform(X_train) 

text_classifier = Pipeline([ 
    ('tfidf', TfidfTransformer()), 
    ('clf', LinearSVC(C=1000)) 
]) 

text_classifier.fit(X_vectorized, y_train) 

अद्यतन: के बाद से इस उत्तर पोस्ट किया गया था, यह सुधार कई में शामिल किया गया है scikit सीखने विज्ञप्ति।

+1

फिक्स के लिए धन्यवाद! – mathias