0

J'ai des doutes en utilisant vocabulary_.get, le code est le suivant. Comme indiqué ci-dessous, j'ai utilisé CountVectorizer dans l'un des exercices d'apprentissage automatique, pour obtenir le nombre d'occurrences d'un mot particulier.sklearn CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer 
vectorizer = CountVectorizer() 
s1 = 'KJ YOU WILL BE FINE' 
s2 = 'ABHI IS MY BESTIE' 
s3 = 'sam is my bestie' 
frnd_list = [s1,s2,s3] 
bag_of_words = vectorizer.fit(frnd_list) 
bag_of_words = vectorizer.transform(frnd_list) 
print(bag_of_words) 
# To get the feature word number from word 
#for eg: 
print(vectorizer.vocabulary_.get('bestie')) 
print(vectorizer.vocabulary_.get('BESTIE')) 

SORTIE:

Bag_of_words is : 
(0, 1) 1 
(0, 3) 1 
(0, 5) 1 
(0, 8) 1 
(0, 9) 1 
(1, 0) 1 
(1, 2) 1 
(1, 4) 1 
(1, 6) 1 
(2, 2) 1 
(2, 4) 1 
(2, 6) 1 
(2, 7) 1 

'bestie' has feature number: 
2 
'BESTIE' has feature number: 
None 

D'où mon doute est que la raison pour laquelle 'bistie' indique le numéro de fonction correcte i.e. 2 et 'BESTIE' affiche None. Le vocabulaire ne fonctionne-t-il pas bien avec les vecteurs capitaux?

Répondre

1

CountVectorizer prend un paramètre lowercase que par défaut True, comme indiqué dans la documentation here:

lowercase : boolean, True by default 
    Convert all characters to lowercase before tokenizing. 

changement à False si vous voulez traiter les minuscules et les majuscules différemment.