这取决于您使用的矢量器。在

CountVectorizer统计文档中单词的出现次数。

它为每个文档输出一个(n_words, 1)向量,其中包含每个单词在文档中出现的次数。n_words是文档中的单词总数(也就是词汇表的大小)。

它也适合词汇表,这样您就可以反省模型(看看哪个词是重要的,等等)。您可以使用vectorizer.get_feature_names()查看它。在

当你把它放在前500个文档中时,词汇表将只由500个文档中的单词组成。假设有30k个这样的矩阵,fit_transform输出一个500x30k稀疏矩阵。

现在您再次使用接下来的500个文档fit_transform,但是它们只包含29k个单词,所以您得到了一个500x29k矩阵…

现在,如何调整矩阵以确保所有文档都具有一致的表示形式?

我现在想不出一个简单的办法来做这件事。在

对于TfidfVectorizer您还有另一个问题,那就是文档频率的倒数:为了能够计算文档频率,您需要一次查看所有文档。

但是TfidfVectorizer只是一个CountVectorizer,后面跟着一个TfIdfTransformer,因此,如果您设法获得CountVectorizer的输出,那么您可以对数据应用TfIdfTransformer。在

使用HashingVectorizer,情况有所不同:这里没有词汇表。在In [51]: hvect = HashingVectorizer()

In [52]: hvect.fit_transform(X[:1000])

<1000x1048576 sparse matrix of type ''

with 156733 stored elements in Compressed Sparse Row format>

在这里,前1000个文档中没有1M+个不同的单词,但是我们得到的矩阵有1M+列。

HashingVectorizer不在内存中存储单词。这样可以提高内存效率,并确保返回的矩阵始终具有相同的列数。

所以您不会遇到与CountVectorizer相同的问题。在

这可能是您所描述的批处理的最佳解决方案。有两个缺点,即你不能得到idf权重,你不知道单词和你的特征之间的映射。在

希望这有帮助。在

编辑:

如果您有太多的数据,HashingVectorizer是最好的选择。

如果您仍然想使用CountVectorizer,一个可能的解决方法是自己调整词汇表并将其传递给向量器,这样您只需要调用tranform。在

下面是一个您可以修改的示例:

^{pr2}$

现在,不起作用的方法是:# Fitting directly:

vect = CountVectorizer()

vect.fit_transform(X[:1000])

<1000x27953 sparse matrix of type ''

with 156751 stored elements in Compressed Sparse Row format>

注意我们得到的矩阵的大小。

“手动”匹配词汇:def tokenizer(doc):

# Using default pattern from CountVectorizer

token_pattern = re.compile('(?u)\\b\\w\\w+\\b')

return [t for t in token_pattern.findall(doc)]

stop_words = set() # Whatever you want to have as stop words.

vocabulary = set([word for doc in X for word in tokenizer(doc) if word not in stop_words])

vectorizer = CountVectorizer(vocabulary=vocabulary)

X_counts = vectorizer.transform(X[:1000])

# Now X_counts is:

# <1000x155448 sparse matrix of type ''

# with 149624 stored elements in Compressed Sparse Row format>

#

X_tfidf = tfidf.transform(X_counts)

在您的示例中,您需要在应用tfidf转换之前首先构建整个矩阵X_计数(对于所有文档)。在

python中以表示语块_scikitlearn:将数据拟合成块与将其全部拟合到on相关推荐

  1. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  2. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法

    在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...

  3. Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)

    Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...

  4. python中画出距平垂线_3.机器学习—数据科学包3.3pandas操作

    pandas操作 一.pandas索引 1.Series索引index 2.DateFrame行索引index和列索引columns 3.pandas预置索引的类 4.重复索引 4.1重复索引定义 4 ...

  5. python中列表数据汇总和平均值_对数据进行分类,计算每个类别的平均值和标准差...

    我假设你的矩阵在一个列表列表中,并向你展示如何开始.(然而,正如我在一篇评论中提到的,如果你把矩阵放在一个numpy array或matrix中,它也会变得更加简单和快速.) 如果您只是将该值作为一个 ...

  6. python处理数据的包_在Python中利用Into包整洁地进行数据迁移的教程

    动机 我们花费大量的时间将数据从普通的交换格式(比如CSV),迁移到像数组.数据库或者二进制存储等高效的计算格式.更糟糕的是,许多人没有将数据迁移到高效的格式,因为他们不知道怎么(或者不能)为他们的工 ...

  7. python中如何编写代码输入多个数据并把它们放在一个列表中去_10分钟学习函数式Python...

    在这篇10分钟的文章中,您将学习Python中的函数式范型.您还将学习列表推导式. 目录 函数式范式 Python的map函数是如何运行的 Python中的lambda表达式 Python中的redu ...

  8. Python中使用PhantomJS抓取Javascript网页数据

    有些网页不是静态加载的,而是通过javascirpt函数动态加载网页,比如下面这个网页,表格中的看涨合约和看跌合约的数据都是通过javascirpt函数从后台加载.仅仅使用beautifulsoup并 ...

  9. python中图形绘制技术的应用_python数据图形化—— matplotlib 基础应用

    matplotlib是python中常用的数据图形化工具,用法跟matlab有点相似.调用简单,功能强大.在Windows下可以通过命令行 pip install matplotlib 来进行安装. ...

  10. python中round函数的精度保留方法---四舍六入五成双

    当我们利用python进行数据计算时,通常会对浮点数保留相应的位数,这时候就会用到round函数,相信各位朋友在进行使用时会遇到各种问题,关于round函数保留精度.保留方法的问题,本文会进行详细的解 ...

最新文章

  1. 随机森林RandomForest挖掘生物标记预测分类
  2. 再次刷新单模型纪录!快手登顶多模态理解权威榜单VCR
  3. 我是越来越喜欢做产品了
  4. DDOS***类型以及iptables防范ddos脚本
  5. SpringSecurity分布式整合之实现思路分析
  6. 在JDK 9(以及8)以及更高版本中,所有内容都可以作为一个流
  7. [Leedcode][JAVA][第300题][最长上上子序列][动态规划][压缩空间]
  8. 为什么鸟哥说 int 再怎么随机也申请不到奇数地址
  9. 第一次面试且失败的经历
  10. ios 开发常用技巧
  11. 利用全加器实现7段数码管_数码管引脚共阴和共阳极,检测
  12. 基于HoG 的图像特征提取及其分类研究
  13. PL/SQL中declare、begin关键字解释
  14. mysql 安装失败原因大全(diao ,基本都让我给踩了个遍,这运气...)
  15. 标梵分享微信官方账号运营推广思路
  16. 色彩搭配的原理与避讳
  17. hawk大数据基础知识总结(1)
  18. 分享4个自媒体热门领域,选对了收入翻3倍
  19. 公司注册涉及前置审批和后置审批的经营范围有哪些(2019年上海最新版)
  20. C++中的tolower()函数与toupper()函数

热门文章

  1. java like a_如何在Java中实现类似“ LIKE”运算符的SQL?
  2. es对已有的索引给主键_ES中对索引的相关操作
  3. elasticsearch-7.15.2 集成pinyin分词器
  4. KAFKA SpringBoot2 Nacos 消息异步发送和消费消息(进阶篇)
  5. 解决CentOS7本机时间与实际时间相差8小时的问题
  6. vue控制台报错Duplicate keys detected: 'xxxx'. This may cause an update error.解决方案
  7. Linux通过RPM方式指定软件安装目录
  8. flowable流程实例笔记(1)
  9. python os.path.splitext()的用法_Python常用模块之os.path
  10. java项目类上有黑色的点_图像处理 – 如何使用javacv / opencv识别黑色多边形上的点?...