tf-idf:sklearn中TfidfVectorizer使用

程序

import jieba

from sklearn.feature_extraction.text import TfidfVectorizer

corpus = []
data_file="./tfidf-data.txt"
with open(data_file, 'r') as f:
    for line in f:
        corpus.append(" ".join(jieba.cut(line.split(',')[0], cut_all=False)))

vectorizer = TfidfVectorizer()
tfidf = vectorizer.fit_transform(corpus)
print(tfidf.shape)

words = vectorizer.get_feature_names()
for i in range(len(corpus)):
    print('----Document %d----' % (i))
    for j in range(len(words)):
        if tfidf[i,j] > 1e-5:
              print( words[j], tfidf[i,j])

./tfidf-data.txt 数据

机器学习是一门多领域交叉学科
涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科
专门研究计算机怎样模拟或实现人类的学习行为
以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能
它是人工智能的核心,是使计算机具有智能的根本途径
其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎

结果

(6, 48)
—-Document 0—-
一门 0.462624791156
交叉学科 0.462624791156
学习 0.379358946687
机器 0.462624791156
领域 0.462624791156
—-Document 1—-
分析 0.316227766017
复杂度 0.316227766017
多门 0.316227766017
学科 0.316227766017
概率论 0.316227766017
涉及 0.316227766017
理论 0.316227766017
算法 0.316227766017
统计学 0.316227766017
逼近 0.316227766017
—-Document 2—-
专门 0.346171103767
人类 0.346171103767
学习 0.283865257135
实现 0.346171103767
怎样 0.346171103767
模拟 0.346171103767
研究 0.346171103767
行为 0.346171103767
计算机 0.283865257135
—-Document 3—-
不断 0.301511344578
已有 0.301511344578
性能 0.301511344578
技能 0.301511344578
改善 0.301511344578
知识 0.301511344578
知识结构 0.301511344578
组织 0.301511344578
自身 0.301511344578
获取 0.301511344578
重新 0.301511344578
—-Document 4—-
人工智能 0.354693960023
具有 0.432546063861
智能 0.432546063861
核心 0.432546063861
根本途径 0.432546063861
计算机 0.354693960023
—-Document 5—-
不是 0.321538031862
主要 0.321538031862
人工智能 0.263665785792
使用 0.321538031862
各个领域 0.321538031862
应用 0.321538031862
归纳 0.321538031862
演绎 0.321538031862
综合 0.321538031862
遍及 0.321538031862

https://www.kaggle.com/adamschroeder/countvectorizer-tfidfvectorizer-predict-comments

你可能感兴趣的:(机器学习)