sklearn CountVectorizer

Posted

技术标签:

【中文标题】sklearn CountVectorizer【英文标题】: 【发布时间】:2018-03-20 21:14:08 【问题描述】:

我对使用 words_.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 。词汇表_.get 不能很好地与大写向量配合使用吗?

【问题讨论】:

【参考方案1】:

countvectorizer 采用“小写”参数,默认值为 true

如果我们想区分大小写字母,那么设置 lowercase=False

更多信息请点击这里http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html

【讨论】:

【参考方案2】:

CountVectorizer 采用默认为True 的参数lowercase,如文档here 中所述:

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

如果您想区别对待小写和大写,请将其更改为 False

【讨论】:

以上是关于sklearn CountVectorizer的主要内容,如果未能解决你的问题,请参考以下文章

sklearn的PCA

sklearn数据库-老鱼学sklearn

使用sklearn画二分类模型ROC曲线,PR曲线

Keras Sklearn Tuner 模块“sklearn”没有属性“管道”

导入sklearn时出现conda sklearn错误

sklearn库的安装