python scikit-learn计算tf-idf词语权重
3 关于jieba分词的使用非常简单,参考,关键的语句就是(这里简单试水,不追求效果4 )
发布日期:2021-06-30 20:07:28
浏览次数:2
分类:技术文章
本文共 2390 字,大约阅读时间需要 7 分钟。
的scikit-learn包下有计算tf-idf的api,研究了下做个笔记
1 安装scikit-learn包
[python] 转存失败 转存失败 转存失败 转存失败 转存失败 转存失败
- sudo pip install scikit-learn
2 中文分词采用的jieba分词,安装jieba分词包
[python] 转存失败 转存失败 转存失败 转存失败 转存失败 转存失败
- sudo pip install jieba
[python] 转存失败 转存失败 转存失败 转存失败 转存失败 转存失败
- import jieba.posseg as pseg
- words=pseg.cut("对这句话进行分词")
- for key in words:
- print key.word,key.flag
输出结果:
对 p
这 r 句 q 话 n 进行 v 分词 n
4 采用scikit-learn包进行tf-idf分词权重计算关键用到了两个类:CountVectorizer和TfidfTransformer,具体参见
一个简单的代码如下:
[python] 转存失败 转存失败 转存失败 转存失败 转存失败 转存失败
- # coding:utf-8
- __author__ = "liuxuejiang"
- import jieba
- import jieba.posseg as pseg
- import os
- import sys
- from sklearn import feature_extraction
- from sklearn.feature_extraction.text import TfidfTransformer
- from sklearn.feature_extraction.text import CountVectorizer
- if __name__ == "__main__":
- corpus=["我 来到 北京 清华大学",#第一类文本切词后的结果,词之间以空格隔开
- "他 来到 了 网易 杭研 大厦",#第二类文本的切词结果
- "小明 硕士 毕业 与 中国 科学院",#第三类文本的切词结果
- "我 爱 北京 天安门"]#第四类文本的切词结果
- vectorizer=CountVectorizer()#该类会将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i类文本下的词频
- transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值
- tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵
- word=vectorizer.get_feature_names()#获取词袋模型中的所有词语
- weight=tfidf.toarray()#将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i类文本中的tf-idf权重
- for i in range(len(weight)):#打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重
- print u"-------这里输出第",i,u"类文本的词语tf-idf权重------"
- for j in range(len(word)):
- print word[j],weight[i][j]
程序输出:每行格式为:词语 tf-idf权重
[plain] 转存失败 转存失败 转存失败 转存失败 转存失败 转存失败
- -------这里输出第 0 类文本的词语tf-idf权重------ #该类对应的原文本是:"我来到北京清华大学"
- 中国 0.0
- 北京 0.52640543361
- 大厦 0.0
- 天安门 0.0
- 小明 0.0
- 来到 0.52640543361
- 杭研 0.0
- 毕业 0.0
- 清华大学 0.66767854461
- 硕士 0.0
- 科学院 0.0
- 网易 0.0
- -------这里输出第 1 类文本的词语tf-idf权重------ #该类对应的原文本是: "他来到了网易杭研大厦"
- 中国 0.0
- 北京 0.0
- 大厦 0.525472749264
- 天安门 0.0
- 小明 0.0
- 来到 0.414288751166
- 杭研 0.525472749264
- 毕业 0.0
- 清华大学 0.0
- 硕士 0.0
- 科学院 0.0
- 网易 0.525472749264
- -------这里输出第 2 类文本的词语tf-idf权重------ #该类对应的原文本是: "小明硕士毕业于中国科学院“
- 中国 0.4472135955
- 北京 0.0
- 大厦 0.0
- 天安门 0.0
- 小明 0.4472135955
- 来到 0.0
- 杭研 0.0
- 毕业 0.4472135955
- 清华大学 0.0
- 硕士 0.4472135955
- 科学院 0.4472135955
- 网易 0.0
- -------这里输出第 3 类文本的词语tf-idf权重------ #该类对应的原文本是: "我爱北京天安门"
- 中国 0.0
- 北京 0.61913029649
- 大厦 0.0
- 天安门 0.78528827571
- 小明 0.0
- 来到 0.0
- 杭研 0.0
- 毕业 0.0
- 清华大学 0.0
- 硕士 0.0
- 科学院 0.0
- 网易 0.0
转存失败 转存失败 转存失败
注:这里随便举了几个文本,所以tf-idf也没什么实际价值,旨在说明scikit-learn包关于tf-idf计算API的调用
转载地址:https://liuhuiyao.blog.csdn.net/article/details/52692576 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月11日 20时16分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【matlab】显示图片且下方显示文字
2019-04-30
关于greater<int>以及类模板的一些理解
2019-04-30
对于时间复杂度的通俗理解
2019-04-30
如何输入多组数据并输出每组数据的和?
2019-04-30
基于CentOS 7的Linux常用命令行命令
2019-04-30
行阶梯型矩阵
2019-04-30
临界资源与临界区
2019-04-30
matlab中uint8,double,im2double和im2uint8的区别
2019-04-30
数字图像处理总复习
2019-04-30
图像去噪(包含修正的阿尔法均值滤波及通用滤波方法代码)
2019-04-30
SVM进行人脸检测
2019-04-30
C++学习笔记
2019-04-30
图像处理学习笔记
2019-04-30
Machine Learning Onramp on MATLAB 学习笔记
2019-04-30
Machine Learning with MATLAB 1.1 to 2.2
2019-04-30
Learning DSP with MATLAB
2019-04-30
用MATLAB实现m序列的生成(MATLAB 2021a适用)
2019-04-30
MATLAB函数备忘(定期更新)
2019-04-30
13行MATLAB代码实现网络爬虫 爬取NASA画廊星图
2019-04-30
MATLAB指定路径保存图片方法
2019-04-30