使用 sklearn 将文本输入直接构建 TF-IDF 矩阵。
from sklearn.feature_extraction.text import TfidfVectorizer
# 数据:三篇文档
docs = ["The faster Harry got to the store, the faster and faster Harry would get home."]
docs.append("Harry is hairy and faster than Jill.")
docs.append("Jill is not as hairy as Harry.")
corpus = docs
'''
TfidfVectorizer可以把原始文本转化为tf-idf的特征矩阵,
从而为后续的文本相似度计算,主题模型(如LSI),文本搜索排序等一系列应用奠定基础。
max_df/min_df: [0.0, 1.0]内浮点数或正整数, 默认值=1.0
当设置为浮点数时,过滤出现在超过max_df/低于min_df比例的句子中的词语;正整数时,则是超过max_df句句子。
这样就可以帮助我们过滤掉出现太多的无意义词语
'''
vectorizer = TfidfVectorizer(min_df=1)
# 得到tf-idf矩阵,稀疏矩阵表示法
model = vectorizer.fit_transform(corpus)
print(model)
# (0, 7) 0.21233717847222938 # 第0个字符串,对应词典序号为7的词的TFIDF为0.21233717847222938
# (0, 3) 0.21233717847222938
# (0, 15) 0.21233717847222938
# (0, 0) 0.1614878973151404
# todense()转化为更直观的一般矩阵
print(model.todense().round(2))