当前位置: 首页 > news >正文

通过企业画册宣传_网络网站建设_新闻媒体合作等方式_企业营销网站制作

通过企业画册宣传_网络网站建设_新闻媒体合作等方式_,企业营销网站制作,怎么做阿里巴巴网站,WordPress设置文章权限文章目录 引言一、什么是TF-IDF?二、TF-IDF的数学原理1. 词频(TF)计算2. 逆文档频率(IDF)计算3. TF-IDF计算 三、TF-IDF的Python实现1.数据文件介绍2.导入库3.读取数据4.数据预处理5.对单词进行排序6.全部代码 四、结语 引言 在自然语言处理(NLP)和文本挖掘领域&am…

文章目录

  • 引言
  • 一、什么是TF-IDF?
  • 二、TF-IDF的数学原理
    • 1. 词频(TF)计算
    • 2. 逆文档频率(IDF)计算
    • 3. TF-IDF计算
  • 三、TF-IDF的Python实现
    • 1.数据文件介绍
    • 2.导入库
    • 3.读取数据
    • 4.数据预处理
    • 5.对单词进行排序
    • 6.全部代码
  • 四、结语

引言

在自然语言处理(NLP)和文本挖掘领域,将文本转换为机器可理解的数值形式是一个关键步骤。TF-IDF(Term Frequency-Inverse Document Frequency)是一种简单而强大的文本特征提取方法,广泛应用于搜索引擎、文档分类、信息检索等领域。本文将深入探讨TF-IDF的原理、实现及应用。

一、什么是TF-IDF?

TF-IDF是一种统计方法,用于评估一个词对于一个文档集或语料库中的某个文档的重要程度。
核心思想:一个词在当前文档中出现的频率越高,同时在所有文档中出现的频率越低,则该词对当前文档的代表性越强。

TF-IDF由两部分组成:

  1. 词频(TF, Term Frequency):衡量词在文档中出现的频率
  2. 逆文档频率(IDF, Inverse Document Frequency):衡量词的普遍重要性

二、TF-IDF的数学原理

1. 词频(TF)计算

TF即词频,是指某个词语在文章中出现的次数。这个数字通常会被归一化(一般是词频除以文章总词数),以防止它偏向长的文件。
TF的计算公式为:

在这里插入图片描述

  • TF的直观意义:TF越高,说明该词在文档中出现的频率越高,可能是某一篇文档的一个重要关键词。

2. 逆文档频率(IDF)计算

IDF即逆文档频率,其主要思想是:如果包含某个词语的文档越少,则IDF越大,说明这个词语具有很好的类别区分能力。
IDF的计算公式为:

在这里插入图片描述

  • N 是文档集的总文档数。
  • df(t) 是包含词语 t 的文档数。分母加1是为了避免分母为0的情况。
  • IDF的直观意义:对于词t来说,包含词t的文档数量越多,IDF越低,说明该词在大多数文档中都出现,因此它们对区分文档的能力较弱。反之,IDF越高的词在所有文档中出现频率低,说明它是具有区分度的关键词。

3. TF-IDF计算

将TF和IDF相乘得到TF-IDF值:
在这里插入图片描述

  • TF(t,d) 是词语 t 在文档 d 中的词频。
  • IDF(t) 是词语 t 的逆文档频率。
  • TF-IDF的直观意义
    如果一个词在某篇文档中频繁出现(TF高),同时这个词在其他文档中出现较少(IDF高),那么这个词对该文档的意义较大,TF-IDF值也会较高。如果一个词在文档中出现频繁,但在所有文档中也很常见(IDF低),则它的TF-IDF值较低。

三、TF-IDF的Python实现

下面我们使用Python的scikit-learn库来实现TF-IDF。

1.数据文件介绍

我们在这里使用六行英文单词数据,数据文件命名为 task2_1.txt 。使用TfidfVectorizer计算TF-IDF值,并输出TF-IDF 稀疏矩阵。
在这里插入图片描述

2.导入库

from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
  • 从sklearn库中导入TfidfVectorizer
  • 导入pandas库

3.读取数据

inFile = open(r".\task2_1.txt",'r')  
corpus = inFile.readlines()  
  • r:以只读模式打开文件。
  • readlines(): 读取文件的所有行,返回一个列表,每个元素为文件的一行。

4.数据预处理

vectorizer = TfidfVectorizer() tfidf = vectorizer.fit_transform(corpus)
print(tfidf)  wordlist = vectorizer.get_feature_names() 
print(wordlist)df= pd.DataFrame(tfidf.T.todense(),index=wordlist) 
print(df)
  • vectorizer = TfidfVectorizer() :类,转为TF-IDF的向量转换对象。
  • fit_transform(): 对输入的文本数据 corpus 进行拟合(计算词汇表和 IDF 值)并转换为TF-IDF 矩阵。
  • tfidf: 返回的结果是一个稀疏矩阵(scipy.sparse.csr_matrix),表示每个文档的 TF-IDF 特征向量。
  • 打印 TF-IDF 稀疏矩阵。稀疏矩阵只存储非零值,因此输出会显示非零值及其位置。
  • vectorizer.get_feature_names() :获取特征名称,所有的词。
  • todense(): 将稀疏矩阵转换为稠密矩阵(普通二维数组)。
  • df.iloc[:,5].to_list():通过索引号获取第6列的内容并转换为列。

打印出的 TF-IDF 稀疏矩阵:

在这里插入图片描述
打印的wordlist列表:

在这里插入图片描述
TF-IDF矩阵转换为DataFrame矩阵格式:

在这里插入图片描述

5.对单词进行排序

featurelist = df.iloc[:,5].to_list()  resdict = {}
for i in range(0,len(wordlist)):resdict[wordlist[i]] = featurelist[i]resdict = sorted(resdict.items(),key=lambda x: x[1],reverse=True)
print(resdict)
  • featurelist = df.iloc[:,5].to_list():通过索引号获取第6列的内容并转换为列
  • resdict = {}:创建一个空字典 resdict,用于存储词汇和对应的特征值。
  • resdict[wordlist[i]] = featurelist[i]:将 wordlist 中的每个词作为键,featurelist 中对应的值作为值,存入字典 resdict。例如,如果 wordlist = [‘apple’, ‘banana’],featurelist = [0.5, 0.8],则 resdict = {‘apple’: 0.5, ‘banana’: 0.8}。
  • sorted(): 返回排序后的列表,每个元素是一个 (key, value) 元组。
  • resdict.items(): 将字典转换为 (key, value) 对的列表。
  • key=lambda x: x[1]: 指定排序依据为字典的值(即特征值)。
  • reverse=True: 按降序排序(从大到小)。

6.全部代码

from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pdinFile = open(r".\task2_1.txt",'r')  
corpus = inFile.readlines()  vectorizer = TfidfVectorizer()    tfidf = vectorizer.fit_transform(corpus) 
print(tfidf)  wordlist = vectorizer.get_feature_names()  
print(wordlist)df= pd.DataFrame(tfidf.T.todense(),index=wordlist) 
print(df)featurelist = df.iloc[:,5].to_list()  
print(featurelist)resdict = {}   
for i in range(0,len(wordlist)):resdict[wordlist[i]] = featurelist[i]resdict = sorted(resdict.items(),key=lambda x: x[1],reverse=True)
print(resdict)

四、结语

优点

  • 简单快速,而且容易理解。
  • 可以有效地提取文本中的关键信息,避免了常见词的干扰。

缺点

  • 用词频来衡量文章中的一个词的重要性不够全面,有时候重要的词出现的可能不够多。
  • 而且这种计算无法体现位置信息(比如在文本第一段的词很重要,中间段的词不重要,即使它们有相同TF-IDF值),无法体现词在上下文的重要性。

希望本文能帮助你全面理解TF-IDF,并在实际项目中灵活应用这一强大的文本特征提取工具。

http://www.dtcms.com/a/469812.html

相关文章:

  • BERT相关知识自测
  • 【完整源码+数据集+部署教程】 真菌孢子图像分割系统源码&数据集分享 [yolov8-seg-convnextv2等50+全套改进创新点发刊_一键训练
  • 遵义市网站制作如何申请域名网站注册
  • GitHub 热榜项目 - 日榜(2025-10-11)
  • MySQL数据库之DBA命令
  • 4.打造个人Z-Library镜像
  • CoRL-2025 | 物体相对控制赋能具身导航!ObjectReact:学习用于视觉导航的物体相对控制
  • 长春seo网站优化做企业网站接单
  • word超链接网站怎么做网站建设网页设计网站模板
  • spring boot 整合 activiti 教程
  • 免费网站电视剧下载不支持下载的视频怎么保存下来
  • 接口自动化测试流程、工具与实践
  • 【C++继承】深入浅出C++继承机制
  • Mysql杂志(三十一)——Join连接算法与子查询、排序优化
  • HashMap - 底层原理
  • Python第二次作业
  • Vspy使用教程
  • 通用网站模板网站备案要幕布照
  • 网站三要素关键词 描述怎么做青海项目信息网官网
  • JavaScript学习笔记(二十八):JavaScript性能优化全攻略
  • mooc自动互评脚本笔记---2025年10月11日
  • 什么是语言模型
  • 免费网站正能量不用下载网站程序是什么?
  • 海外住宅IP的分类方式
  • wpf之ToggleButton控件
  • 【传奇开心果系列】基于Flet框架实现的文件选择文件保存和目录选择的样例自定义模板特色和实现原理深度解析
  • 做网站什么数据库用的多低价建站在哪里买
  • 从零搭建 React Native 到项目运行全记录(0.73.6 稳定版)
  • HTML DOM 对象
  • 红日靶场(四)——个人笔记