【机器学习】sklearn库的学习之TF-IDF算法,python,超简单!

Sklearn库的学习之TF-IDF算法:

# coding:utf-8
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])

运行结果:

-------这里输出第 0 类文本的词语tf-idf权重------
一切 0.0
一天 0.0
今天 0.0
元气满满 0.0
哪吒 0.0
喜欢 0.48693426407352264
困难 0.0
奥力给 0.0
我们 0.0
战胜 0.0
赛亚人 0.6176143709756019
超级 0.6176143709756019
-------这里输出第 1 类文本的词语tf-idf权重------
一切 0.0
一天 0.0
今天 0.0
元气满满 0.0
哪吒 0.7852882757103967
喜欢 0.6191302964899972
困难 0.0
奥力给 0.0
我们 0.0
战胜 0.0
赛亚人 0.0
超级 0.0
-------这里输出第 2 类文本的词语tf-idf权重------
一切 0.4472135954999579
一天 0.0
今天 0.0
元气满满 0.0
哪吒 0.0
喜欢 0.0
困难 0.4472135954999579
奥力给 0.4472135954999579
我们 0.4472135954999579
战胜 0.4472135954999579
赛亚人 0.0
超级 0.0
-------这里输出第 3 类文本的词语tf-idf权重------
一切 0.0
一天 0.5773502691896257
今天 0.5773502691896257
元气满满 0.5773502691896257
哪吒 0.0
喜欢 0.0
困难 0.0
奥力给 0.0
我们 0.0
战胜 0.0
赛亚人 0.0
超级 0.0

 

posted @ 2020-03-04 11:14  HelenLee01  阅读(327)  评论(0编辑  收藏  举报