python.sklearn:文本特征提取,TfidfVectorizer的应用代码,通俗易懂

TfidfVectorizer

所属模块:sklearn

功能:原始文本转化为tf-idf的特征矩阵,从而为后续的文本相似度计算,奠定基础

该网站可在线测试本文代码,以便快速理解本文代码:http://kakazai.cn/index.php/Kaka/Python/query/name/TfidfVectorizer


实例1:普通例子

#!/usr/bin/python3n
#code-python(3.6)
from sklearn.feature_extraction.text import TfidfVectorizer

document = ['This is a dog!' ,'that is an ...apple.']
'''
这里有两个文档,文档0是‘this is a dog’,文档1是’that is a cat’。
每个文档都是一个样本点。
'''

model = TfidfVectorizer().fit(document)
'''
(1)   fit()会先分析语料库,提取词典等;
(2)   从两个文档中,将所有大写转小写,去掉所有符号。
再分别提出的词语集合['this', 'is', 'a', 'dog'],['that', 'is', 'an', 'apple']。
(3)   对两个集合去重,得到[‘a','an', 'apple', 'dog', 'is', 'that', 'this']。
但这里面有的词语不在该语料库中,比如'a',要剔除。
得到词语集合['an', 'apple', 'dog', 'is', 'that', 'this']。
每个词语都是一个特征。
'''

print(model.get_feature_names())
'''
从文档中提取的词语(特征) = ['an', 'apple', 'dog', 'is', 'that', 'this']
'''

print(model.vocabulary_)
'''
返回词语与索引 = {'an': 0, 'apple': 1',dog': 2,'is': 3,'that': 4, 'this': 5}
表示'an'是第一个特征,'apple'是第二个特征,'this'是最后一个特征,共6个特征。
'''

print(model.idf_)
'''
[1.40 1.40 1.40 1  1.40 1.40]
'''
matrix = model.transform(document)    # transform()会把每篇文档转换为向量;得到tf-idf矩阵;

print(matrix.shape)    
#矩阵是2行6列;即有2个文档,每个文档有6个词语(特征)

print(matrix)
'''
稀疏矩阵表示法
(0, 5)	0.63	#文档0的第5个特征this的权重值是0.63
(0, 3)	0.44
(0, 2)	0.63
(1, 4)	0.53	#文档1的第4个特征that的权重值是0.53
(1, 3)	0.37
(1, 1)	0.53
(1, 0)	0.53
'''
print(matrix.todense())    # 转化为更直观的一般矩阵
'''
[[0      0      0.63    0.44   0.     0.63]
 [0.53   0.53   0       0.37   0.53   0   ]]
'''
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值