final_vocab = {'Amazon',
'Big Bazaar',
'Brand Factory',
'Central',
'Cleartrip',
'Dominos',
'Flipkart',
'IRCTC',
'Lenskart',
'Lifestyle',
'MAX',
'MMT',
'More',
'Myntra'}
 
vect = CountVectorizer(vocabulary=final_vocab)
token_df = pd.DataFrame(vect.fit_transform(['Big Bazaar','Brand Factory']).todense(), columns=vect.get_feature_names())

enter image description here

सभी आउटपुट शून्य क्यों है ??? बिग बाजार और ब्रांड के लिए फैक्ट्री वैल्यू 1 आनी चाहिए ???

0
qaiser 27 नवम्बर 2021, 11:07

1 उत्तर

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

आपके CountVectorizer में 2 चीज़ें गुम हैं:

  1. ngram_range=(2,2) जैसा कि डॉक्स में बताया गया है: All values of n such such that min_n <= n <= max_n will be used। यह मदद CountVectorizer इनपुट से 2 ग्राम वेक्टर प्राप्त करती है (['Big','Bazaar'] के बजाय Big Bazaar)
  2. lowercase=False जिसका अर्थ है: Convert all characters to lowercase before tokenizing। इससे Big Bazaar और Brand Factory छोटे अक्षर बन जाएंगे और इस तरह इसे शब्दावली में नहीं पाया जा सकता है। गलत पर सेट करने से ऐसा होने से रोका जा सकेगा।

साथ ही, क्योंकि आपने CountVectorizer को शब्दावली प्रदान की है, fit_transform के बजाय transform का उपयोग करें

from sklearn.feature_extraction.text import CountVectorizer

final_vocab = ['Amazon',
'Big Bazaar',
'Brand Factory',
'Central',
'Cleartrip',
'Dominos',
'Flipkart',
'IRCTC',
'Lenskart',
'Lifestyle',
'MAX',
'MMT',
'More',
'Myntra']
 
vect = CountVectorizer(vocabulary=final_vocab, ngram_range=(2, 2), lowercase=False)
token_df = pd.DataFrame(vect.transform(['Big Bazaar','Brand Factory']).todense(), columns=vect.get_feature_names())
1
manaclan 27 नवम्बर 2021, 12:47