Склеарн CountVectorizer

У меня есть сомнения, используя vocabulary_.get, код выглядит следующим образом. Как видно ниже, я использовал 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'))

ВЫХОД:

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

Поэтому я сомневаюсь, что "bistie" показывает правильный номер функции, то есть 2, а "BESTIE" показывает "None". Не хорошо ли работает vocabulary_.get с заглавными векторами?

2 ответа

CountVectorizer принимает параметр lowercase по умолчанию True, как указано в документации здесь:

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

изменить это на False если вы хотите обрабатывать строчные и прописные буквы по-разному.

countvectorizer принимает параметр "нижний регистр" и по умолчанию его значение равно true

Если мы хотим различать как заглавные, так и строчные буквы, установите в нижнем регистре =False

для получения дополнительной информации нажмите здесь http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html

Другие вопросы по тегам