from sklearn.feature_extraction.text import **
考慮以下預料,三行 ⇒ 三個文檔,不重複的單詞共有 8 個,html
corpus = ['I love you',
'You love him',
'He loves me']
from sklearn.feature_extraction.text import CountVectorizer
# 大寫字母開頭,顯然是一個類
vectorizer = CountVectorizer()
csr_mat = vectorizer.fit_transform(corpus)
print(type(csr_mat))
# scipy.sparse.csr.csr_matrix
# 稀疏矩陣,通常而言,預料信息都是十分海量的,出於節省內存的考慮,將其做爲稀疏形式存儲。
print(csr_mat)
print(csr_mat.todense())
再來計算 tf-idf 的值:python
from sklearn.feature_extraction.text import TfidfTransformer
transformer = TfidfTransformer()
tfidf = transformer.fit_transform(csr_mat)
print(type(tfidf))
print(tfidf)
print(tfidf.todense())
# 最終算下來會與獲得的結果有必定的不一樣,
# 這是由於在 sklearn 內部會作一些去停用詞、平滑、正則化等的操做,
另外,須要注意的是:note that CountVectorizer discards 「words」 that contain only one character, such as 「s」。中文也是如此,我
和 I
都不會被 CountVectorizer 看成 term。大數據
教你成爲全棧工程師(Full Stack Developer) 三十三-利用scikit-learn計算tf-idf作文本詞頻分析 - SharEDITor - 關注大數據技術
TF-IDF與餘弦類似性的應用(一):自動提取關鍵詞atom
阮老師的這篇文章,計算 idf 時取的對數是以 10 爲底的對數,則蜜蜂的 tf-idf 爲