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

Transformer原理解析及中文项目实践(微课视频版)

词汇表是一个将单词或标记映射到唯一整数索引的集合。在自然语言处理任务中,文本数据需要被转换为机器学习模型能够理解的格式。词汇表就是这样一个工具,它帮助实现文本到数字的转换。
具体来讲,词汇表通常包含以下元素:(1)单词或标记:可以是单词、字符、子词或任何其他文本单位。(2)索引:一个唯一的整数,用于表示词汇表中的每个单词或标记。
下面构建词汇表,将文本数据中的单词映射为唯一的整数索引,代码如下:

第1章/1.1 rnn.ipynb

class Vocabulary:
def init(self, freq_threshold):
self.itos = {0: "", 1: "", 2: "", 3: ""}
self.stoi = {v: k for k, v in self.itos.items()}
self.freq_threshold = freq_threshold

def build_vocabulary(self, sentence_list):frequencies = Counter()idx = 4for sentence in sentence_list:for word in sentence:frequencies[word] += 1if frequencies[word] == self.freq_threshold:self.stoi[word] = idxself.itos[idx] = wordidx += 1def numericalize(self, text):return [self.stoi[token] if token in self.stoi else self.stoi["<UNK>"] for token in text]

(1)初始化方法中定义了3个参数,itos是一个字典,用于将整数索引映射到字符串(词汇)。stoi也是一个字典,用于将字符串(词汇)映射到整数索引。freq_threshold是一个阈值,用于决订单词是否包含在词汇表中。只有当单词在所有句子中出现的频率达到或超过此阈值时,它才会被添加到词汇表中。
(2)build_vocabulary方法中,接受一个句子列表作为输入,使用Counter来计算每个单词在所有句子中的出现频率。对于每个单词,如果其频率等于freq_threshold,则将其添加到itos和stoi字典中,并递增索引idx。
(3)numericalize方法中接受文本(句子)作为输入,将文本中的每个单词转换为相应的整数索引。如果单词不在词汇表中,则使用(表示未知)的索引。
创建好词汇表后需要对数据集进行处理,定义一个NewsDataset类,用于创建一个可以被DataLoader使用的自定义数据集,代码如下:

第1章/1.1 rnn.ipynb

class NewsDataset(Dataset):
def init(self, texts, labels, vocab, max_length):
self.texts = texts
self.labels = labels
self.vocab = vocab
self.max_length = max_length

def __len__(self):return len(self.texts)def __getitem__(self, index):text = self.texts.iloc[index]label = self.labels.iloc[index]numericalized_text = [self.vocab.stoi["<SOS>"]] + self.vocab.numericalize(text)[:self.max_length-2] + [self.vocab.stoi["<EOS>"]]padded_text = numericalized_text + [self.vocab.stoi["<PAD>"]] * (self.max_length - len(numericalized_text))return torch.tensor(padded_text, dtype=torch.long), torch.tensor(label, dtype=torch.long)

(1)初始化方法定义了4个参数,texts是新闻文本数据。labels是指与文本相对应的类别标签。vocab是词汇表对象,用于将文本数据转换为数值数据。max_length表示每个文本将被填充或截断到这个长度。
(2)方法__len__用于返回数据集中的文本数量。
(3)方法__getitem__接受一个索引index,使用vocab将文本数据转换为数值数据,并添加开始()和结束()标记。如果数值化文本的长度小于max_length,则使用(填充)标记进行填充。最后返回一个元组,包含数值化文本和相应的标签,两者都转换为PyTorch张量。
通过上面构建数据集的这种方式,文本数据被转换成模型可以理解的格式,并准备好进行训练。
创建好方法函数后,需要对该方法进行实例化,代码如下:
vocab = Vocabulary(freq_threshold=5)
vocab.build_vocabulary(data['text'].apply(list))
首先实例化Vocabulary类,创建一个Vocabulary类的实例,并将其命名为vocab,用于构建词汇表。参数freq_threshold设置为5,这个参数用于确定一个单词是否应该被包含在词汇表中。只有当单词在所有句子中出现的次数大于或等于这个阈值时,该单词才会被添加到词汇表中。
设置预置的目的是通过过滤稀有词汇来减少词汇表大小,进而降低模型的复杂度和过拟合风险,同时处理数据稀疏性,提高模型泛化能力,并减少噪声,提升数据质量。这一策略有助于平衡模型性能与资源消耗,尤其对于情感分析或主题分类等特定任务,关注频繁出现的单词能更有效地捕捉文本内容信息。
然后构建词汇表,对数据data中的text列进行操作。apply(list)是一个Pandas操作,它将text列中的每个字符串转换为字符列表。假设每个条目是一个由空格分隔的单词字符串,这个操作将每个字符串分割成单词列表。
可通过vocab.itos或者vocab.stoi来查看数值和字词的映射关系。

http://www.jsqmd.com/news/9991/

相关文章:

  • 2025 年章丘二手磁选机服务公司最新推荐榜单:含回收置换 / 全型号设备及优质售后企业权威排行
  • Navicat配置MySQL自动备份
  • ROS 2机器人操作系统与Gazebo机器人仿真
  • 2025 年次氯酸钠发生器厂家最新推荐榜:覆盖电解法 / 食盐电解等类型,聚焦专利技术与成本优势的品牌深度解析水厂/大型/小型/食盐电解产生次氯酸钠发生器厂家推荐
  • 2025 年最新铝镁锰板厂商口碑排行榜:实力厂家推荐及 100 万㎡工程案例与 20 年质保深度解读铝镁锰板屋面板/保温板/卷/墙面板 铝镁锰板金属屋面板
  • 2025 年二氧化氯发生器厂家最新推荐排行榜:电解式设备厂家综合实力测评及优质企业选购指南电解/电解法/电解食盐/电解盐二氧化氯发生器厂家推荐
  • 2025 年国内铝板厂家最新推荐排行榜:1-7 系主流铝板企业实力测评及优选指南1060/1100/3003/3004/5052/5083/6061/6063/6082铝板厂家推荐
  • Fedora 38 安装 perl-JSON RPM 包步骤(含依赖问题解决及附安装包)​
  • 2025 年染井吉野樱种植服务公司最新推荐排行榜:苗木分枝点规格详解与景观适配指南及优质企业榜单染井吉野樱花苗/五公分染井吉野樱/十公分染井吉野樱/染井吉野樱批发公司推荐
  • 完整教程:BUUCTF[ACTF2020 新生赛]Include 1题解
  • 2025 年国内磁选机厂家最新推荐排行榜:立环 / 高梯度 / 油冷立环磁选机优质厂商实力解析
  • 2025 年最新三维扫描仪厂家权威推荐排行榜:空间 / 高精度 / 手持激光等类型设备优选企业全解析工业/便携式/拍照式/蓝光三维扫描仪厂家推荐
  • 2025 年北京红旗国悦经销商最新推荐排行榜:行业标杆与新锐品牌齐聚,购车选品指南重磅发布北京丰田考斯特/北京红旗国悦12座/北京考斯特4S店/北京丰田柯斯达/北京考斯特商务车经销商推荐
  • LINUX之TCP内核参数解析
  • 2025 年上海刑事辩护律师 / 刑事案件律师 / 刑事诉讼律师 / 刑事犯罪律师 / 刑事纠纷律师事务所推荐:徐海燕律师团队专业法律服务
  • 题解:[P11184 带余除法]
  • 实用指南:基于langchain的简单RAG的实现
  • 10 8
  • 深入解析:微信小程序动态组件加载的应用场景与实现方式
  • 2025双氧水厂家权威推荐榜:优质生产与稳定供应实力之选
  • STM32----IAP远程升级 - 详解
  • 英国AI数据中心发展规划:技术挑战与产业反馈
  • 2025 年工业风机厂家最新推荐排行榜:涵盖离心高温防腐耐磨防爆等类型设备实力厂商精选高温/防腐/耐磨/防爆/除尘/不锈钢/锅炉风机厂家推荐
  • 使用cursor 编辑器开发 Vue项目,调整ESlint自动修复脚本,消除代码不规范引起的报错无法运行项目问题
  • 2025 年拉力试验机厂家最新推荐榜单:聚焦专精特新企业技术实力与口碑,助力钢铁、线缆、轨道交通等行业精准选购
  • 2025 年最新推荐!种植牙医院权威榜单:聚焦连锁品牌与万级手术室,助您精准选靠谱口腔机构西宁种植牙口腔医院/西宁种植牙齿美容/西宁种植牙美容医院推荐
  • 高考数学易错考点01 | 临阵磨枪 - 教程
  • 2025 年西宁口腔医院最新推荐排行榜:实力解析与全周期口腔服务指南西宁口腔医院/西宁口腔美容/西宁口腔整形/西宁口腔正畸/西宁口腔修复推荐
  • 详细介绍:为何选择Spring框架学习设计模式与编码技巧?
  • 2025 年试验机厂家最新推荐榜单:专精特新企业深度解析,含疲劳 / 压力 / 液压万能等设备优质厂家水泥压力/压剪/锚链拉伸整形机/链条拉伸整形机厂家推荐