python中以表示语块_scikitlearn:将数据拟合成块与将其全部拟合到on
这取决于您使用的矢量器。在
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相关推荐
- python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...
- pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法
在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...
- Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)
Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...
- python中画出距平垂线_3.机器学习—数据科学包3.3pandas操作
pandas操作 一.pandas索引 1.Series索引index 2.DateFrame行索引index和列索引columns 3.pandas预置索引的类 4.重复索引 4.1重复索引定义 4 ...
- python中列表数据汇总和平均值_对数据进行分类,计算每个类别的平均值和标准差...
我假设你的矩阵在一个列表列表中,并向你展示如何开始.(然而,正如我在一篇评论中提到的,如果你把矩阵放在一个numpy array或matrix中,它也会变得更加简单和快速.) 如果您只是将该值作为一个 ...
- python处理数据的包_在Python中利用Into包整洁地进行数据迁移的教程
动机 我们花费大量的时间将数据从普通的交换格式(比如CSV),迁移到像数组.数据库或者二进制存储等高效的计算格式.更糟糕的是,许多人没有将数据迁移到高效的格式,因为他们不知道怎么(或者不能)为他们的工 ...
- python中如何编写代码输入多个数据并把它们放在一个列表中去_10分钟学习函数式Python...
在这篇10分钟的文章中,您将学习Python中的函数式范型.您还将学习列表推导式. 目录 函数式范式 Python的map函数是如何运行的 Python中的lambda表达式 Python中的redu ...
- Python中使用PhantomJS抓取Javascript网页数据
有些网页不是静态加载的,而是通过javascirpt函数动态加载网页,比如下面这个网页,表格中的看涨合约和看跌合约的数据都是通过javascirpt函数从后台加载.仅仅使用beautifulsoup并 ...
- python中图形绘制技术的应用_python数据图形化—— matplotlib 基础应用
matplotlib是python中常用的数据图形化工具,用法跟matlab有点相似.调用简单,功能强大.在Windows下可以通过命令行 pip install matplotlib 来进行安装. ...
- python中round函数的精度保留方法---四舍六入五成双
当我们利用python进行数据计算时,通常会对浮点数保留相应的位数,这时候就会用到round函数,相信各位朋友在进行使用时会遇到各种问题,关于round函数保留精度.保留方法的问题,本文会进行详细的解 ...
最新文章
- 随机森林RandomForest挖掘生物标记预测分类
- 再次刷新单模型纪录!快手登顶多模态理解权威榜单VCR
- 我是越来越喜欢做产品了
- DDOS***类型以及iptables防范ddos脚本
- SpringSecurity分布式整合之实现思路分析
- 在JDK 9(以及8)以及更高版本中,所有内容都可以作为一个流
- [Leedcode][JAVA][第300题][最长上上子序列][动态规划][压缩空间]
- 为什么鸟哥说 int 再怎么随机也申请不到奇数地址
- 第一次面试且失败的经历
- ios 开发常用技巧
- 利用全加器实现7段数码管_数码管引脚共阴和共阳极,检测
- 基于HoG 的图像特征提取及其分类研究
- PL/SQL中declare、begin关键字解释
- mysql 安装失败原因大全(diao ,基本都让我给踩了个遍,这运气...)
- 标梵分享微信官方账号运营推广思路
- 色彩搭配的原理与避讳
- hawk大数据基础知识总结(1)
- 分享4个自媒体热门领域,选对了收入翻3倍
- 公司注册涉及前置审批和后置审批的经营范围有哪些(2019年上海最新版)
- C++中的tolower()函数与toupper()函数
热门文章
- java like a_如何在Java中实现类似“ LIKE”运算符的SQL?
- es对已有的索引给主键_ES中对索引的相关操作
- elasticsearch-7.15.2 集成pinyin分词器
- KAFKA SpringBoot2 Nacos 消息异步发送和消费消息(进阶篇)
- 解决CentOS7本机时间与实际时间相差8小时的问题
- vue控制台报错Duplicate keys detected: 'xxxx'. This may cause an update error.解决方案
- Linux通过RPM方式指定软件安装目录
- flowable流程实例笔记(1)
- python os.path.splitext()的用法_Python常用模块之os.path
- java项目类上有黑色的点_图像处理 – 如何使用javacv / opencv识别黑色多边形上的点?...