TF-IDF 词向量

1 目的和思想

tf-idf 模型的目的:用一个矩阵表示某词对文章的重要性
tf-idf 的整体思想:利用词在文章出现的频数进行计算得出值表示重要性大小

2 模型原理

模型实现:

  1. 统计每篇文章词频,形成矩阵
  2. 通过公式 t f ∗ i d f tf*idf tfidf 计算每个位置的值,norm正则化每个值,输出矩阵

TF-IDF = T F ∗ I D F TF*IDF TFIDF

  • TF: 词的频率(Term Frequency)
  • IDF(Inverse Document Frequency): 逆文档频率,所有文章的总数除以含有该词的文章数,再取对数
  • TF = 该词语在当前文档出现的次数
  • IDF= log_e(文档总数 +1/ 出现该词语的文档总数+1)+1

3 tf-idf 总结

只用了简单的统计和计算便表示出了词在文章中的重要性权重

4 tf-idf 函数使用

TfidfVectorizer = CountVectorizer + TfidfTransformer

  • CountVectorizer: 利用文本计算词频,生成词频矩阵
  • TfidfTransformer: 将词频矩阵计算tf-idf值
  • TfidfVectorizer: 利用文本生成词频矩阵,再计算tf-idf值

4.1 CountVectorizer

4.1.1 输入

corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]

4.1.2 函数及参数

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
# 将文本数据转换为计数的稀疏矩阵
X = vectorizer.fit_transform(corpus)

4.1.3 输出及应用

# 查看每个单词的位置
print(vectorizer.get_feature_names())
print(X.data)
# 由于 X 存储为稀疏矩阵,转换为 array方便查看
print(X.toarray())

在这里插入图片描述

4.2 TfidfTransformer

4.2.1 输入

稀疏矩阵 X 或 X.toarray() 都可作为输入
在这里插入图片描述
在这里插入图片描述

4.2.2 函数及参数

from sklearn.feature_extraction.text import TfidfTransformer
transformer = TfidfTransformer()  
#将词频矩阵 X统计成TF-IDF值  
tfidf = transformer.fit_transform(X)  

4.2.3 输出及应用

print(tfidf.data)
#查看数据结构 tfidf[i][j]表示i类文本中的tf-idf权重  
print(tfidf.toarray())  

未加参数 norm=None的结果(norm作用为正则化)

在这里插入图片描述
在这里插入图片描述

4.3 TfidfVectorizer

4.3.1 输入

corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]

4.3.2 函数及参数

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_v = TfidfVectorizer(ngram_range=(1,2),  # N-gram统计词可以按n来分词
						  max_features=3000)  # 不同词的数量最大为3000
# 直接统计成 TF-IDF值  
X = tfidf_v.fit_transform(corpus)

4.3.3 输出及应用

# 查看每个单词的位置
print(tfidf_v.get_feature_names())
# 未转换的数据
print(X.data)
#查看数据结构 tfidf[i][j]表示i类文本中的tf-idf权重
print(X.toarray())

在这里插入图片描述

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
生成TF-IDF(Term Frequency-Inverse Document Frequency)词向量的作用是将文本数据转化为数值形式,以便于机器学习模型的处理。TF-IDF词向量在文本挖掘和自然语言处理任务中广泛应用,具有以下作用: 1. 特征表示:TF-IDF词向量可以将文本数据转化为高维特征向量,每个维度对应一个词汇。通过统计单词在文本中的出现频率和在整个文集中的重要程度,TF-IDF考虑了词频和逆文档频率,使得每个单词都能够在一定程度上区分不同文本。 2. 降低维度:在大规模的文本数据集中,词汇量通常非常大,导致生成的词向量维度过高。为了降低维度,可以使用特征选择方法,如基于TF-IDF值的特征选择,选择最具有信息量的词汇作为特征。 3. 文本相似度计算:通过计算文本之间的TF-IDF词向量相似度,可以评估文本之间的相似程度。常见的相似度计算方法包括余弦相似度等。 4. 文本分类和聚类:将TF-IDF词向量作为特征输入到机器学习模型中,可以进行文本分类和聚类任务。通过学习和分类已经标记的文本样本,模型可以推断和预测未标记文本的类别。 5. 关键词提取:通过分析TF-IDF值,可以获得文本中最具有信息量的关键词。关键词提取对于文本摘要、信息检索等任务非常有用。 总之,TF-IDF词向量的生成可以将文本数据转化为数值形式,提供特征表示和相似度计算的能力,并支持文本分类、聚类、关键词提取等任务。在实际应用中,根据任务的具体需求,可以调整TF-IDF权重计算的方式和参数设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值