自然语言处理--计算tf-idf(sklearn方法)

使用 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))

猜你喜欢

转载自blog.csdn.net/fgg1234567890/article/details/111827739
今日推荐