您现在的位置是:首页 > 数码 > 

使用sklearn实现tfidf特征计算

2025-07-29 15:51:41
使用sklearn实现tfidf特征计算 最近在做一些文本方面的工作,记录一下,方便以后查看。 使用sklearn进行tfidf特征提取主要有两种方法: 方法一: #method1 from sklearn.feature_extraction.text import CountVectorizer from sklearn.feat

使用sklearn实现tfidf特征计算

最近在做一些文本方面的工作,记录一下,方便以后查看。

使用sklearn进行tfidf特征提取主要有两种方法:

方法一:

#method1
from sklearn.feature_ import CountVectorizer
from sklearn.feature_ import TfidfTransformertag_list = [	青年 吃货 唱歌	,	少年 游戏 叛逆	,	少年 吃货 足球	]
countVectorizer = CountVectorizer()#若要过滤停用词,可在初始化模型时设置
doc_term_matrix = countVectorizer.fit_transform(tag_list)#得到的doc_term_matrix是一个csr的稀疏矩阵
#doc_term_matrix[doc_term_matrix>0]=1 #将出现次数大于0的token置1
#doc_term_()#将稀疏矩阵转化为稠密矩阵
vocabulary = countVectorizer.vocabulary_#得到词汇表tfidf_transformer = TfidfTransformer()
tfidf_matrix = tfidf_transformer.fit_transform(document_term_matrix)#得到的tfidf同样是一个csr的稀疏矩阵
后来在翻看sklearn的用户手册时,发现了CountVectorizer和TfidfTransformer的结合体,没错,就是TfidfVectorizer!针对TfidfVectorizer,官方给出的说明是:Equivalent to CountVectorizer followed by TfidfTransformer.

于是就有了方法二:

#method2
from sklearn.feature_ import TfidfVectorizer
#若要过滤停用词,可在初始化模型时设置
tfidfVecorizer = TfidfVectorizer(analyzer=lambda x:x.split(	 	))#可自己设置解析方法
tfidf_matrix = tfidfVecorizer.fit_transform(tags_list)
#tfidf_()
term2id_dict = tfidfVecorizer.vocabulary_

同样的结果,TfidfVectorizer就会简洁很多。

对tfidf_matrix的处理:
之前自己总是傻傻的直接tfidf_().tolist(),再一行一行取结果,要知道,当数据量很多时,这个矩阵是很大很大很大的,非常占内存。不过还好自己觉悟的快,后来把代码改成了tfidf_matrix[i].todense().tolist()[0]

tag_list的获取:
1、对文本进行分词,首选jieba分词器;
2、 .join(token_list) 对分出来的token连接成字符串,如 青年 吃货 唱歌
、tag_list.append( 青年 吃货 唱歌 )

如果大家对处理tfidf_matrix还有其他好办法,欢迎留言赐教!

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/856948.html

相关标签:无
上传时间: 2024-02-10 03:49:45
留言与评论(共有 17 条评论)
本站网友 合川租房信息
25分钟前 发表
对tfidf_matrix的处理: 之前自己总是傻傻的直接tfidf_().tolist(),再一行一行取结果,要知道,当数据量很多时,这个矩阵是很大很大很大的,非常占内存
本站网友 艾兰
12分钟前 发表
x.split( ))#可自己设置解析方法 tfidf_matrix = tfidfVecorizer.fit_transform(tags_list) #tfidf_() term2id_dict = tfidfVecorizer.vocabulary_ 同样的结果,TfidfVectorizer就会简洁很多
本站网友 烟台电影院
20分钟前 发表
不过还好自己觉悟的快,后来把代码改成了tfidf_matrix[i].todense().tolist()[0] tag_list的获取: 1
本站网友 朝源
9分钟前 发表
少年 游戏 叛逆
本站网友 沙县小吃节
26分钟前 发表
对tfidf_matrix的处理: 之前自己总是傻傻的直接tfidf_().tolist(),再一行一行取结果,要知道,当数据量很多时,这个矩阵是很大很大很大的,非常占内存
本站网友 清溢和衡
15分钟前 发表
.join(token_list) 对分出来的token连接成字符串,如 青年 吃货 唱歌
本站网友 小米股价暴跌
28分钟前 发表
x.split( ))#可自己设置解析方法 tfidf_matrix = tfidfVecorizer.fit_transform(tags_list) #tfidf_() term2id_dict = tfidfVecorizer.vocabulary_ 同样的结果,TfidfVectorizer就会简洁很多
本站网友 专业取名网站
10分钟前 发表
.join(token_list) 对分出来的token连接成字符串,如 青年 吃货 唱歌
本站网友 凯撒克朗
22分钟前 发表
少年 吃货 足球 ] countVectorizer = CountVectorizer()#若要过滤停用词,可在初始化模型时设置 doc_term_matrix = countVectorizer.fit_transform(tag_list)#得到的doc_term_matrix是一个csr的稀疏矩阵 #doc_term_matrix[doc_term_matrix>0]=1 #将出现次数大于0的token置1 #doc_term_()#将稀疏矩阵转化为稠密矩阵 vocabulary = countVectorizer.vocabulary_#得到词汇表tfidf_transformer = TfidfTransformer() tfidf_matrix = tfidf_transformer.fit_transform(document_term_matrix)#得到的tfidf同样是一个csr的稀疏矩阵 后来在翻看sklearn的用户手册时,发现了CountVectorizer和TfidfTransformer的结合体,没错,就是TfidfVectorizer!针对TfidfVectorizer,官方给出的说明是:Equivalent to CountVectorizer followed by TfidfTransformer. 于是就有了方法二: #method2 from sklearn.feature_ import TfidfVectorizer #若要过滤停用词,可在初始化模型时设置 tfidfVecorizer = TfidfVectorizer(analyzer=lambda x
本站网友 三星柔性屏幕手机
30分钟前 发表
x.split( ))#可自己设置解析方法 tfidf_matrix = tfidfVecorizer.fit_transform(tags_list) #tfidf_() term2id_dict = tfidfVecorizer.vocabulary_ 同样的结果,TfidfVectorizer就会简洁很多
本站网友 北京寄宿学校
11分钟前 发表
tag_list.append( 青年 吃货 唱歌 ) 如果大家对处理tfidf_matrix还有其他好办法,欢迎留言赐教!
本站网友 刘兰峰
14分钟前 发表
少年 吃货 足球 ] countVectorizer = CountVectorizer()#若要过滤停用词,可在初始化模型时设置 doc_term_matrix = countVectorizer.fit_transform(tag_list)#得到的doc_term_matrix是一个csr的稀疏矩阵 #doc_term_matrix[doc_term_matrix>0]=1 #将出现次数大于0的token置1 #doc_term_()#将稀疏矩阵转化为稠密矩阵 vocabulary = countVectorizer.vocabulary_#得到词汇表tfidf_transformer = TfidfTransformer() tfidf_matrix = tfidf_transformer.fit_transform(document_term_matrix)#得到的tfidf同样是一个csr的稀疏矩阵 后来在翻看sklearn的用户手册时,发现了CountVectorizer和TfidfTransformer的结合体,没错,就是TfidfVectorizer!针对TfidfVectorizer,官方给出的说明是:Equivalent to CountVectorizer followed by TfidfTransformer. 于是就有了方法二: #method2 from sklearn.feature_ import TfidfVectorizer #若要过滤停用词,可在初始化模型时设置 tfidfVecorizer = TfidfVectorizer(analyzer=lambda x
本站网友 微晶瓷隆鼻
25分钟前 发表
tag_list.append( 青年 吃货 唱歌 ) 如果大家对处理tfidf_matrix还有其他好办法,欢迎留言赐教!
本站网友 东君府moma
30分钟前 发表
少年 游戏 叛逆
本站网友 护士职业资格考试
8分钟前 发表
对文本进行分词,首选jieba分词器; 2
本站网友 火树
17分钟前 发表
tag_list.append( 青年 吃货 唱歌 ) 如果大家对处理tfidf_matrix还有其他好办法,欢迎留言赐教!