文本数据集的简单处理(将文本转化为one-hot、TF、TF-IDF矩阵)

本文介绍了一种处理文本数据集的方法,包括构建单词集和单词表,生成onehot、TF和TF-IDF矩阵。详细讲述了如何从数据集中提取单词,如何构建稀疏矩阵,并实现TF-IDF计算。还讨论了避免分母为0的IDF计算策略,以及使用三元顺序表存储onehot矩阵并实现矩阵相加的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次实验要求处理给定的数据集,得到对应的 onehot,TF,TF_IDF 矩阵,还要将 onehot 矩阵转为三元矩阵的形式,并完成三元矩阵相加的功能。 我的思路是: 

<1>建立单词集和单词表:先按行读入数据集,由于一行中,两个 tab 之间的数据是无 用的,因此舍弃掉前面的数据后,按照空格分隔字符串,得到一个个的单词,每分隔出一个 单词,就将其加入到单词集 word_set 和单词表 word_list 中(word_list 中的单词按出现顺序 存储,且不重复;word_set 中的单词即按照单词出现的顺序存储,可重复,且不同行的单 词之间用字符“#”隔开) 

<2>建立矩阵 matrix 和 onehot(matrix[i][j]表示第 i 篇文章中,在单词表上位置为 j 的 单词出现的次数,其目的是方便后面写 TF 矩阵):方法是通过简单的遍历,将 word_set 中 的每一个单词与 word_list 中的单词作对照,找到单词在单词表中的位置 n,同时根据遍历过 的“#”字符的数目确定行数 m,最后另 onehot[m][n] 位置为 1,另 matrix[m][n]的位置 的数值递增 1; <3>建立矩阵 TF: TF 矩阵表示的是每一行文本中的每一个值标志对应的词语出现的次数 归一化,根据 matrix 矩阵很容易转化得到 TF 矩阵,只需要先将 matrix 矩阵同一行上的值全 部相加,再用该单词出现的次数除以这个求和的结果即得到 TF 矩阵对应位置的值。 

<4>建立矩阵 TF-IDF:TF 矩阵代表的是某个单词在一个文本上的出现频率,一般来说,出 现的频率越高,该单词在该文本的重要性就越大,但是有些不怎么重要的单词(例如冠词, 语气助词等)往往在多数文本中出现的频率都会很大,为了排除这一干扰,引入了 TF-IDF 矩阵(其原理在思考题中叙述),得到该矩阵首先要计算 idf 的值,根据公式:

文本总数 D 就是矩阵的行数, j 的值(出现了该单词的文章总数)可以由 onehot 矩阵每一列 上所有为 1 的值的个数得到,由此可以计算 idf 的值,然后再将 TF 矩阵上的每个值与对应的 idf 值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值