但是如果修改为
['驴 福 记 ( 阜通 店 )','...',...]
执行vectorizer.fit_transform就正常。
原因是,创建CountVectorizer实例时,有一个默认参数analyzer='word',在该参数作用下,词频矩阵构建过程会默认过滤所有的单字token,所以上面的'驴 福 记 ( 阜 通 店 )'以空格分隔以后全是单字,也就全被过滤了,所以就empty vocabulary了。

如果想针对单字进行tfidf计算,可以加上参数vectorizer = CountVectorizer(analyzer='char'),此时,输入字符串无需做空格分隔, CountVectorizer会自动按照 单字 进行分隔统计词频。

要想同时支持 字+词 的tfidf计算,需自定义token正则:
vectorizer = CountVectorizer(analyzer='word',token_pattern=u"(?u)\\b\\w+\\b")
---------------------
作者:Gandalf_lee
来源:CSDN
原文:https://blog.csdn.net/u010967382/article/details/79728404
版权声明:本文为博主原创文章,转载请附上博文链接!

@ 蓝波Ai
你好,没有直接的API来用,不过你可以调用tranform方法,这样可以得到所有样本的类别的一个n_samples x k的矩阵,这样你统计下各个k值的数目即可。

https://blog.csdn.net/lwgkzl/article/details/80948548

sklearn countvectorizer坑的更多相关文章

  1. python - 实现文本分类[简单使用第三方库完成]

    第三方库 pandas sklearn 数据集 来自于达观杯 训练:train.txt 测试:test.txt 概述 TF-IDF 模型提取特征值建立逻辑回归模型 代码 # _*_ coding:ut ...

  2. sklearn中的分词函数countVectorizer()的改动--保留长度为1的字符串

    1简述问题 使用countVectorizer()将文本向量化时发现,文本中长度唯一的字符串会被自动过滤掉,这对于我在做的情感分析来讲,一些表较重要的表达情感倾向的词汇被过滤掉,比如文本'没用的东西, ...

  3. 理解sklearn.feature.text中的CountVectorizer和TfidfVectorizer

    """ 理解sklearn中的CountVectorizer和TfidfVectorizer """ from collections im ...

  4. 文本数据预处理:sklearn 中 CountVectorizer、TfidfTransformer 和 TfidfVectorizer

    文本数据预处理的第一步通常是进行分词,分词后会进行向量化的操作.在介绍向量化之前,我们先来了解下词袋模型. 1.词袋模型(Bag of words,简称 BoW ) 词袋模型假设我们不考虑文本中词与词 ...

  5. sklearn 词袋 CountVectorizer

    from sklearn.feature_extraction.text import CountVectorizer texts=["dog cat fish","do ...

  6. sklearn.feature_extraction.text.CountVectorizer 学习

    CountVectorizer: CountVectorizer可以将文本文档集合转换为token计数矩阵.(token可以理解成词) 此实现通过使用scipy.sparse.csr_matrix产生 ...

  7. sklearn中,数据集划分函数 StratifiedShuffleSplit.split() 使用踩坑

    在SKLearn中,StratifiedShuffleSplit 类实现了对数据集进行洗牌.分割的功能.但在今晚的实际使用中,发现该类及其方法split()仅能够对二分类样本有效. 一个简单的例子如下 ...

  8. 芝麻HTTP:记scikit-learn贝叶斯文本分类的坑

    基本步骤: 1.训练素材分类: 我是参考官方的目录结构: 每个目录中放对应的文本,一个txt文件一篇对应的文章:就像下面这样 需要注意的是所有素材比例请保持在相同的比例(根据训练结果酌情调整.不可比例 ...

  9. sklearn学习笔记2

    Text classifcation with Naïve Bayes In this section we will try to classify newsgroup messages using ...

随机推荐

  1. Pandas基础(十一)时间序列

    1. pandas时间序列:时间索引 2. pandas时间序列数据结构 2.1 定期序列 3. 频率和偏移 4. 重采样,转移,加窗口 4.1 重采样及频率转换 4.2 时间移动 4.3 滚动窗口 ...

  2. delphi从TRichEdit获得RTF格式文本(PC版本)

    function GetRTF(RE: TRichedit): string;varstrStream: TStringStream;beginstrStream := TStringStream.C ...

  3. iOS- UITextView与键盘回收与键盘遮挡输入框

    一.UITextView 可以实现多行输入的文本框,基本属性与UITextField相似,可以输入多行,可以滚动.UITextView还有个代理方式- (BOOL)textView:(UITextVi ...

  4. idea系列ide给git增加push按钮

    第一步 打开设置 Appearance & Behavior -- Menus and ToolBars,选中VscNavBarToolBarActios,然后点击"+"添 ...

  5. MySQL yum 在线与本地包方式安装

     以下实践操作是在 liux-centos7 上安装配置 先检测是否安装mysql,然后在拆卸mysql # 检测[root@localhost ~]# yum list installed | gr ...

  6. python定义函数时,形参前加*和**的意义

    转发:https://blog.csdn.net/qq_34806812/article/details/82017839 1.加*表示接受一个tuple类型(元组),如: 2.加**表示接受一个di ...

  7. spark StructType的应用,用在处理mongoDB keyvalue

    近期在处理mongoDB 数据的时候,遇到了非常奇怪的格式,账号密码的日志都追加在一条记录里面,要取一个密码的时长和所有密码的平均时长就非常繁琐. 用了各种迭代计算,非常困难,而且printschem ...

  8. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求   Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...

  9. SQL 四大功能DDL/DML/DCL/TCL

    SQL主要分成四部分:(1)数据定义.(SQL DDL)用于定义SQL模式.基本表.视图和索引的创建和撤消操作.(2)数据操纵.(SQL DML)数据操纵分成数据查询和数据更新两类.数据更新又分成插入 ...

  10. vue中子传父,父传子的具体用法

    先说明下父组件Login,子组件signCon 子拿到父数据可以通过,在子组件里面设置props:['name']的方法拿到. 首先在父组件中定义数据了: data(){Englishname:'li ...