1. 程式人生 > >tf-idf:sklearn中TfidfVectorizer使用

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