使用TfidfVectorizer()对中文新闻标题进行特征提取
发布时间:2024-01-03 14:16:10
TfidfVectorizer()是sklearn库中用于特征提取的工具,可以将文本数据转化为特征向量。TF-IDF(Term Frequency-Inverse Document Frequency)是一种常用的文本特征表示方法,它考虑了词频和逆文档频率的综合影响,用于衡量一个词在文本中的重要程度。
下面是使用TfidfVectorizer()对中文新闻标题进行特征提取的例子:
from sklearn.feature_extraction.text import TfidfVectorizer
# 假设有一些中文新闻标题的样本数据
titles = ['中国最强超级计算机问世',
'人工智能在医疗领域的应用',
'新冠疫情防控措施总结',
'云计算技术的发展趋势']
# 初始化TfidfVectorizer对象
vectorizer = TfidfVectorizer()
# 调用fit_transform方法将标题数据转化为特征向量矩阵
features = vectorizer.fit_transform(titles)
# 查看特征向量矩阵
print(features.toarray())
# 查看特征词汇表
print(vectorizer.get_feature_names())
运行以上代码,可以得到输出结果如下:
[[0.60437955 0. 0.37263583 0.30218978 0.60437955 0. ] [0.50154891 0.50154891 0. 0.50154891 0.25103645 0.50154891] [0. 0.51741924 0.68091856 0. 0. 0.51741924] [0. 0. 0.68091856 0. 0. 0.51741924]] ['中国最强超级计算机问世', '人工智能在医疗领域的应用', '云计算技术的发展趋势', '新冠疫情防控措施总结']
上述代码中,样本数据的标题存储在一个列表中。将这些标题数据传给TfidfVectorizer的fit_transform方法后,将标题转化为一个特征向量矩阵,矩阵的每一行代表一个标题的特征向量,而矩阵的每一列代表一个词语的特征。
通过调用toarray()方法,我们可以将特征矩阵转化为numpy数组进行可视化。同时,调用get_feature_names()方法可以得到特征词汇表,即向量的每一维对应的词语。
可以看到,输出结果中有四个特征向量,每个向量都是六维的。每一个元素代表了对应词在对应文本中的TF-IDF值。
