notes for datawhale 2th summer camp NLP task1

server/2024/9/19 0:47:04/ 标签: 自然语言处理, 人工智能, 学习, 机器翻译

//I wrote this note in obsidian and copied it here. The strange format in this note is due to lack of obsidian plugins.


tags:

  • AI-study
  • ML
    status: done

目标:跑通baseline,体验NLP模型解决问题的流程,基本了解赛题要求,理解赛题场景
难度:非常低
推荐步骤:

  1. 根据文档跑通提交并拿下第一个分数
  2. 了解赛题提交的格式
  3. 模型训练相关的数据格式
  4. 打卡第一个分数,尽量写笔记

‌​​⁠​​​​‌‍​​​​⁠⁠​​‬​⁠‬​​​‬‌​​​​‌​​‬‬​​​​​‍​‌Task1知识点文档 - 飞书云文档 (feishu.cn)

brief history of ML

机器翻译(Machine Translation,简称MT)是自然语言处理领域的一个重要分支,其目标是将一种语言的文本自动转换为另一种语言的文本

机器翻译方法:基于规则->基于统计->深度学习
规则驱动->数据驱动->智能驱动

基于规则的机器翻译(1950s-1980s):早期的机器翻译系统主要采用基于规则的方法,即利用语言学家编写的语法规则和词典进行翻译。这种方法需要对源语言和目标语言的语法和词汇有深入的理解,但其灵活性和适应性较差,难以处理复杂的语言结构和多义词问题

基于统计的机器翻译(1990s-2000s):随着计算机性能的提升和大规模平行语料库的出现,统计机器翻译开始兴起。这种方法通过分析大量双语文本,自动学习源语言和目标语言之间的对应关系,从而实现翻译。统计机器翻译在处理多义词和语言变异方面表现出更好的效果,但由于其依赖于大量训练数据,对于资源匮乏的语言支持不足。

基于神经网络机器翻译(2010s-present):神经网络方法在机器翻译任务上的应用可以追溯到上世纪八九十年代。但受限于当时的计算资源和数据规模的限制,神经网络方法的性能差强人意,故而其发展停滞了很多年。近年来,深度学习技术的快速发展推动了神经网络机器翻译(Neural Machine Translation,简称NMT)的兴起。NMT使用深度神经网络模型,如长短期记忆网络(LSTM)和 Transformer,能够自动学习源语言和目标语言之间的复杂映射关系,无需人工设计特征或规则。NMT在翻译质量、速度和适应性方面取得了显著进步,成为当前机器翻译领域的主流方法。

数据划分

在机器学习和深度学习项目中,数据集通常被划分为三个部分:训练集(Training Set)、开发集(Development Set,也常被称为验证集,Validation Set)和测试集(Test Set)

训练集,训练模型
开发集,防止模型过度拟合于训练集
测试集,模拟真实数据,检验效果

赛题解析

赛事背景

目前神经机器翻译技术已经取得了很大的突破,但在特定领域或行业中,由于机器翻译难以保证术语的一致性,导致翻译效果还不够理想。对于术语名词、人名地名等机器翻译不准确的结果,可以通过术语词典进行纠正,避免了混淆或歧义,最大限度提高翻译质量。

赛事任务

基于术语词典干预的机器翻译挑战赛选择以英文为源语言,中文为目标语言的机器翻译。本次大赛除英文到中文的双语数据,还提供英中对照的术语词典。参赛队伍需要基于提供的训练数据样本从多语言机器翻译模型的构建与训练,并基于测试集以及术语词典,提供最终的翻译结果

//RAG🤗

赛题数据

  • 训练集:双语数据 - 中英14万余双语句对
  • 开发集:英中1000双语句对
  • 测试集:英中1000双语句对
  • 术语词典:英中2226条

[!info] 🐵

  • **训练集(training set)**用于运行你的学习算法。
  • 开发集(development set)用于调整参数,选择特征,以及对学习算法作出其它决定。有时也称为留出交叉验证集(hold-out cross validation set)
  • **测试集(test set)**用于评估算法的性能,但不会据此改变学习算法或参数。

评估指标

对于参赛队伍提交的测试集翻译结果文件,采用自动评价指标 BLUE-4 进行评价,具体工具使用 sacrebleu开源版本

[!info] 📘
什么是 BLUE-4 ?

BLEU,全称为Bilingual Evaluation Understudy(双语评估替换),是一种对生成语句进行评估的指标。BLEU 评分是由Kishore Papineni等人2002年的论文《BLEU: a Method for Automatic Evaluation of Machine Translation》中提出的。

机器翻译领域,BLEU(Bilingual Evaluation Understudy)是一种常用的自动评价指标,用于衡量计算机生成的翻译与一组参考译文之间的相似度。这个指标特别关注 n-grams(连续的n个词)的精确匹配,可以被认为是对翻译准确性和流利度的一种统计估计。计算BLUE分数时,首先会统计生成文本中n-grams的频率,然后将这些频率与参考文本中的n-grams进行比较。如果生成的翻译中包含的n-grams与参考译文中出现的相同,则认为是匹配的。最终的BLUE分数是一个介于0到1之间的数值,其中1表示与参考译文完美匹配,而0则表示完全没有匹配。

BLUE-4 特别指的是在计算时考虑四元组(即连续四个词)的匹配情况。

BLUE 评估指标的特点:

  • 优点:计算速度快、计算成本低、容易理解、与具体语言无关、和人类给的评估高度相关。
  • 缺点:不考虑语言表达(语法)上的准确性;测评精度会受常用词的干扰;短译句的测评精度有时会较高;没有考虑同义词或相似表达的情况,可能会导致合理翻译被否定。

除了翻译之外,BLEU评分结合深度学习方法可应用于其他的语言生成问题,例如:语言生成、图片标题生成、文本摘要、语音识别。

课后思考

以后就用魔塔吧,8GB笔记本撑不住啦
简单看了代码和数据,不是很懂
猜测,翻译过程,是不是每个词从词典中检索出几个选项,组合概率最大的为翻译结果?


http://www.ppmy.cn/server/59720.html

相关文章

设计模式使用场景实现示例及优缺点(创建型模式——工厂方法模式、抽象工厂模式)

创建型模式 工厂方法模式 (Factory Method Pattern) 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,提供了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法模式让类的实例化推迟到子类。这样&…

使用sklearn的基本流程

scikit-learn,通常简称为 sklearn,是一个开源的Python库,是基于 Python 编程语言的一个非常流行的机器学习库。它建立在 NumPy 和 SciPy 这两个科学计算库之上,并与 Matplotlib 配合使用,为数据预处理、模型训练、评估…

数据编码的艺术:sklearn中的数据转换秘籍

数据编码的艺术:sklearn中的数据转换秘籍 在机器学习中,数据预处理是一个至关重要的步骤,它直接影响到模型的性能和结果的准确性。数据编码转换是数据预处理的一部分,它涉及将原始数据转换成适合模型训练的格式。scikit-learn&am…

Git 运用小知识

1.Git添加未完善代码的解决方法 1.1 Git只是提交未推送 把未完善的代码提交到本地仓库 只需点击撤销提交,提交的未完善代码会被撤回 代码显示未提交状态 1.2 Git提交并推送 把未完善的代码提交并推送到远程仓库 点击【未完善提交并推送】的结点选择还原提交&#x…

vue-路由自动化

Router 介绍 工程中的Router会根据src/views目录结构自动生成路由配置,路由结构与文件系统结构保持一致,不需要手动编写routes [...],使得项目结构更加直观和易于理解。 配置 配置文件: router└─ index.tsimport {createRou…

Cerberus,一个牛逼的帮助开发者轻松实现数据验证的python库

目录 Cerberus:Python中的校验神器 什么是Cerberus? 为什么选择Cerberus? 安装Cerberus 基本使用 深入理解规则 自定义验证规则 错误处理 集成到Web框架 结语 Cerberus:Python中的校验神器 在Python的世界中&#xff0c…

使用 Vue.js 和 Element Plus 实现自动完成搜索功能

使用 Vue.js 和 Element Plus 实现自动完成搜索功能 一、前言1.环境准备2.组件配置3.后端数据请求4.样式5.总结 一、前言 在前端开发中,实现自动完成(autocomplete)功能可以极大地提升用户体验,特别是在需要用户输入和选择内容的…

阿里云调整全球布局关停澳洲云服务器,澳洲服务器市场如何选择稳定可靠的云服务?

近日,阿里云宣布将关停澳大利亚地域的数据中心服务,这一决定引发了全球云计算行业的广泛关注。作为阿里云的重要海外市场之一,澳洲的数据中心下架对于当地的企业和个人用户来说无疑是一个不小的挑战。那么,在阿里云调整全球布局的…

告别中央服务器:Syncthing实现点对点文件同步

介绍 Syncthing 是一款开源的文件同步工具,可让您在多个设备之间同步文件。 它适用于 Mac OS X、Windows、Linux、FreeBSD、Solaris、OpenBSD等系统。 可以通过浏览器访问来配置和监控该应用程序。 Syncthing 具有以下特点: 1、点对点同步 2、无需中央服务器 …

什么是C#

C#是一种面向对象的语言与c语言不同 C语言是面向过程的编程 C#运行于.NETFramework和.NETCore之上的高级语言 C#是由C和C衍生而来的一种语言 在C#中不建议使用指针 什么叫面向对象 是一种编程范式,它将现实世界中的事物抽象为对象,并通过对象之间的…

香橙派5plus上跑云手机方案二 waydroid

前言 上篇文章香橙派5plus上跑云手机方案一 redroid(带硬件加速)说了怎么跑带GPU加速的redroid方案,这篇说下怎么在香橙派下使用Waydroid。 温馨提示 虽然能运行,但是体验下来只能用软件加速,无法使用GPU加速,所有会很卡。而且…

[Unity入门01] Unity基本操作

参考的傅老师的教程学了一下Unity的基础操作: [傅老師/Unity教學] Unity3D基礎入門 [華梵大學] 遊戲引擎應用基礎(Unity版本) Class#01 移动:鼠标中键旋转:鼠标右键放大:鼠标滚轮飞行模式:右键WASDQEFocus模式&…

Vue中的Mixins与钩子函数:理解合并与调用

在Vue的开发过程中,mixins是一个非常有用的特性,它允许我们跨多个组件共享可复用的代码。然而,当我们在组件与mixins之间定义同名的钩子函数或方法时,理解它们之间的相互作用和合并机制就显得尤为重要。 在Vue.js中,对…

vue3中antd表格展示后端返回的嵌套集合数据

后端返回数据格式: 实现方法: 走了很多坑,记录下

数据结构--二叉树相关题2(OJ)

1.比较对称二叉树(镜像二叉树) 二叉树相关题1中第二题的变形题。先去看1哦! 左子树和右子树比较 bool _isSymmetric(struct TreeNode* p, struct TreeNode* q) {if (p NULL && q NULL)return true;//如果两个都为空则是相等的if …

深度学习(笔记内容)

1.国内镜像网站 pip使用清华源镜像源 pip install <库> -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip使用豆瓣的镜像源 pip install <库> -i https://pypi.douban.com/simple/ pip使用中国科技大学的镜像源 pip install <库> -i https://pypi.mirro…

从兔子的窝窝究竟有啥价值的角度理解机器人学习(节选)

不是网红&#xff0c;博客看的人也不多&#xff0c;写给需要的朋友&#xff0c;感谢朋友们一直以来的支持。您的支持也是我坚持的动力源泉。 前序 聊聊机器人学习中的“投资”与“消费”&#xff08;节选&#xff09; 聊聊机器人学习中的“资产”与“负债”&#xff08;节选&…

WPF自定义模板--RadioButton

默认格式 <Style x:Key"RadioButtonStyle" TargetType"{x:Type RadioButton}"><Setter Property"FocusVisualStyle" Value"{StaticResource FocusVisual}"/><Setter Property"Background" Value"{Stat…

找不到vcruntime140.dll,无法继续执行代码,简单易懂的修复指南,让你轻松应对!

当系统提示找不到“vcruntime140.dll”文件时&#xff0c;表示您的计算机缺少Visual C Redistributable for Visual Studio的一个重要组成部分。这个 vcruntime140.dll&#xff08;动态链接库&#xff09;文件是 Microsoft Visual C 组件的一部分&#xff0c;被众多基于 C 开发…

Linux系统编程——线程控制

目录 一&#xff0c;关于线程控制 二&#xff0c;线程创建 2.1 pthread_create函数 2.2 ps命令查看线程信息 三&#xff0c;线程等待 3.1 pthread_join函数 3.2 创建多个线程 3.3 pthread_join第二个参数 四&#xff0c;线程终止 4.1 关于线程终止 4.2 pthread_exit…