使用sklearn实现tfidf特征计算
使用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组装电脑配置单推荐报价格
上传时间: 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还有其他好办法,欢迎留言赐教! |