- 博客(130)
- 资源 (4)
- 收藏
- 关注
原创 微调神经机器翻译模型全流程
mBART 是一个基于序列到序列的去噪自编码器,使用 BART 目标在多种语言的大规模单语语料库上进行预训练。mBART 是首批通过去噪完整文本在多种语言上预训练序列到序列模型的方法之一,而以往的方法则仅集中在编码器、解码器或重构文本的部分内容。dict是模型的词典文件,model是mbart的预训练模型,sentence.bpe.model是sentencepiece训练分词的模型。
2025-01-13 07:00:00
821
原创 NLP入门——RNN、LSTM模型的搭建、训练与预测
在卷积语言模型建模时,我们选取上下文长度ctx_len进行训练,预测时选取句子的最后ctx_len个分词做预测,这样句子的前0~seql-1-ctx_len个词对于预测没有任何帮助,这对于语言处理来说显然是不利的。在词袋语言模型建模时,我们舍弃ctx_len的概念,利用前缀和,用前seql-1个词作为训练数据,后seql-1个词作为标签训练。最终用这句话所有的分词求前缀和做预测,这样句子中所有的分词都参与了预测,是更准确的。
2024-07-17 07:00:00
951
原创 NLP入门——词袋语言模型的搭建、训练与预测
卷积语言模型实际上是取了句子最后ctx_len个词作为上下文输入模型来预测之后的分词。但更好的选择是我们做一个词袋,将所有分词装在词袋中作为上下文,这样预测的分词不只根据最后ctx_len个分词,而是整个词袋中的所有分词。例如我们的序列是:1 2 3 4 5则首先词袋中是1,有首先 1 -> 2接着 1 + 2 -> 3接着 1 + 2 + 3 -> 4最后 1 + 2 + 3 + 4 -> 5。
2024-07-11 07:00:00
540
原创 NLP入门——卷积语言模型的搭建、训练与预测
语言模型建模是针对句子建模,主要分为掩码语言模型和自回归语言模型。我们从corpus中截取一句话作为例子,这句话是bpe分词后的句子:1994 年 5 月 17 日 安全 理事会 第 33@@ 77 次 会议 通过掩码语言模型的主要机制是:例如将33@@ 77这两个分词做掩码,这样句子变成了1994 年 5 月 17 日 安全 理事会 第 [MASK] [MASK] 会议 通过。
2024-07-10 07:00:00
804
原创 NLP入门——前馈词袋分类模型的搭建、训练与预测
通过以上代码,输入一个2x3的矩阵,在第一个线性层会变化为一个2x4的矩阵,随后使用DBG类输出当前矩阵的形状。在第二次线性层的变换后,矩阵变成2x5。
2024-07-05 07:00:00
1095
原创 NLP入门——将文本数据转为张量并存储
1.通过对比和文件,我们可以看出编号为0的组,一共有409个句子,因为在tgt中它有409个类别,而每个句子是1x5的向量,因此0号batch的矩阵就是409x5。2.每个句子是1x5的向量,代表在这个句子中有五个分词。因此向量中的单元为分词的词频,可能为0因为占位符<pad>的出现。3.因为句子按照长度从小到大排序,因此在dataset中更短的句子被分在更靠前的batch中。(句子长度短体现在每个batch矩阵的第二维数量低)
2024-06-24 07:00:00
792
原创 NLP入门——复杂函数建模与链式求导
前面我们研究的梯度下降法分类,是简单的对每类中每个子词的分数进行求和,统计分数最大的类别并不断调整分数来提高准确率。我们可以修改函数模型,用更加复杂的函数代替sum(),来达到更好的学习效果。采用梯度下降法计算机进行预测时,我们的corpus中每一行数据对应15类都有一个分数,取分数最大的_max_class作为预测类别,返回的rs存放着每个类别的分数,相当于一个向量。由分析得出,在计算机中是通过函数来判断的。
2024-06-20 07:00:00
937
原创 NLP入门——基于梯度下降法分类的应用
这会使得错误的s_{class_max,word}分数减小,使得正确的s_{class_g,word}分数增大,使得s(class_g)趋近于s(class_max),使loss函数值不断减小。如图所示,该点的导数就是这个点相切于J(w)的小三角的高除以宽,如果我们从图中点为初始点开始梯度下降算法,则该点斜率符号为正,即dJ(w)/dw > 0,因此接下来会向左走一步。我们前面研究的都是基于统计的方法,通过不同的统计方法得到不同的准确率,通过改善统计的方式来提高准确率。否则loss将为一个大于0的数。
2024-06-19 06:30:00
704
原创 NLP入门——基于TF-IDF算法的应用
可以看到json字符串表示一个对象,我们利用json.loads() 函数会将其转换为一个 Python 字典。得到的分别为原数据中训练集以及验证集中的句子和标签,src.文件中每个句子占一行,tgt.文件中每个句子的类别占一行。
2024-06-14 06:30:00
784
原创 NLP入门——数据预处理:子词切分及应用
如果有一个字符串aabaadaab,对其执行BPE算法因为字符对aa出现频率最高,因此将其替换为码Z,这时原字符串变为ZbZdZb此时字符对Zb出现频率最高,将其替换为码Y,此时原字符串变为YZdY此时字符串中所有字符对频率都一样,都是一次。首先是第一个任务:这里首先子词表中应该包含所有的单个字符,随后我们在corpus中寻找出现频率最高的subword pair,这里是st出现了3+4+1=8次。
2024-06-13 06:30:00
2105
原创 NLP入门——数据预处理:分词
clone到本地后,在中规定了标点符号规范化规则,使用进行分词。添加后输入echo,打印出环境变量的路径。显示分词处理后的内容。为管道命令,将前一个文件的输出给下一个文件的输入-a表示aggressive,决定是否为激进的切分,切分的尽可能小。其中-a切分,@-@表示“-”和前后两tokens相连;而不带-a的切分则不会将“-”切分为token-l后跟语言,en表示英文-no-escape:用于禁止 Moses 在输出翻译结果时对特殊字符进行转义如果预处理的内容做得足够好,那么应该使用。
2024-06-11 14:49:41
564
原创 NLP入门——数据预处理:编码规范化
在计算机中,我们需要将字符与字节序列之间建立起映射关系,这个过程被称为编码。有许多不同的编码方式,例如 ASCII、UTF-8、UTF-16 和 GBK 等。这些编码方式会将每个字符编码为一个或多个字节,以便于在计算机、网络和其他设备之间进行存储和传输。Unicode是一种字符集,它为每个字符、符号和表情符分配了一个唯一的码位(整数),它与许多不同的编码方式结合使用。
2024-06-06 22:30:47
626
原创 基于深度学习的心律异常分类算法
神经元是神经网络的基础操作单元。它接受外部或内部的信息,并经过加工后输出。每一个输入都有一个对应的权值,该权值反映了输入之间的重要程度。yf∑i1nωiai−byf∑i1nωiai−b其中,aia_iai是第i个元素信息的输入,ωi\omega_iωi是当前神经元与下一个神经元之间的权重,b\ bb为偏置,ff()f是激活函数,yyy为输出。
2024-03-21 16:26:00
2644
原创 PTA——1075 链表元素分类、1105 链表合并、1110 区块反转
这三道题换汤不换药,总结下来就是首先利用结构体存储节点,利用map存储地址,将地址下标映射到结点。然后用利用头结点的地址将链表串起来,存进vector中,这里每个节点的前后关系就是他们在数组中的位置。所以存进vector时不用考虑结点的next值了,这只在得到链表时有用。最后根据题意按照输出次序将结点存进另一个vector中,由于链表中结点前后关系就是链表的关系,因此遍历这个vector即可,遍历即按照链表顺序输出。
2024-03-20 21:04:35
336
原创 PTA——1090 危险品装箱(含超时分析)、1065 单身狗
这两题很像,这一题是1065题的升级版。1065单身狗是两两配对不重复的,即文意“不会脚踏两只船”。本题是相当于哈希表链式存储,一个人可以同时和多个人配对。解题方法是一样的,创建is数组,如果来客有配对就将其配对在is数组中赋值为1。原因是vector(N)会产生更多的缓存未命中,而map使用更少的内存,会显著提高命中率。本题不可用并查集做,因为1和3配对,3和5配对但不代表1和5是一对。存储,耗时大大下降,节省3/4的时间,代码上不需有任何的改动。,则说明与他配对的人来过,即他俩同时出现,输出No。
2024-03-15 18:20:49
475
2
原创 PTA——1041 考试座位号、1042 字符统计、1043 输出PATest、1044 火星数字
利用哈希表,最后按照PATest顺序输出,只要这几个字符的哈希值不为0,就循环输出,谁先到0了谁停止输出。处理起来有点麻烦,注意进制转换的经典例子:130转换为13进制,应该为oct而没有后面的0(tret)。利用哈希表,最后输出字母即可。利用哈希表整合信息输出即可。
2023-03-29 21:18:49
318
原创 PTA——1036 跟奥巴马一起编程、1037 在霍格沃茨找零钱、1038 统计同成绩学生、1039 到底买不买、1040 有几个PAT
遇到P就nump++,直到遇到A,A字符前面P的个数和后面T的个数的乘积即为这个A所在的PAT串的个数,将其取模累加。先统计整个串中T的个数numt,随后遍历整个串,遇到T就numt–,此时numt代表串后面的t的个数。利用两个哈希表,先统计摊主的珠子个数,再利用unordered_map统计小红的珠子种类以及个数。如果结果为非正数,则说明不缺少,输出摊主珠子个数 — 小红珠子个数 即为多余的珠子个数。接着对于小红的每种珠子,利用sum累计比摊主多了多少个(即为缺了珠子)。参考了柳神的代码,大佬太强了。
2023-03-29 18:44:45
409
原创 PTA——1031 查验身份证、1032 挖掘机技术哪家强、1033 旧键盘打字
注意英文字母的坏键用大写字母给出。因为可能有空白字符串,所以要使用。使用哈希表解决很方便高效。函数接收一行中内容。
2023-03-26 21:25:35
262
原创 PTA——1029 旧键盘、1030 完美数列
哈希解决非常方便,用字符的ASCII码值作为key,因为输出大小写不敏感,所以我们在哈希映射之前就把失配的小写字母转化为大写字母,哈希映射并压入输出数组out。最后一个测试点不通过是因为我这样写有一种可能b与a的匹配部分全部相等,而这种情况a的b没匹配到的后面部分直接处理并哈希映射即可,因为他们全部失配。,去计算前一个位置一定满足条件的长度。但是如果序列到最后一个位置都不满足这个条件,则len永远不会更新,导致WA。,下次直接从已找到序列的下一个位置开始枚举即可。我最开始写错了,将更新条件设置为了。
2023-03-25 21:19:20
239
原创 PTA——1027 打印沙漏、1028 人口普查
考察解决问题的能力,我先用了一个打表,将1、1+3x2、1+3x2+5x2也就是沙漏的形状打表,随后由输入数据判定应该属于哪一个表。首先输出剩余的没用到的符号数,f代表第i个奇数,也就是那个表的最高(低)一层的奇数,用p求出第i个奇数的值应该是2*i-1;还是考察解决问题的能力,如果先算出每个人的岁数来就太麻烦了,正解就是直接比较年月日,最后需要做有效年龄为0的特判。随后分层处理,分为上沙漏和下沙漏,注意细节即可。每行的末尾按照标准格式并没有空格,输入空格会提示格式错误。
2023-03-24 10:53:19
237
原创 PTA——1025 反转链表、1026 程序运行时间
1.首先,我没有审清题目,地址为五位数,所以可以用int储存,从而可以用数组索引当做链表地址把链表串起来。我一开始用的str,到分离出链表这一步只能够每次迭代n个结点,TLE测试点5超时。2.我再次没有审清题目,题目说的是每k个结点翻转一次,而不是前k个,不能好像看懂了样例就开写,应该仔细审题。不能写成>0.4了,因为[0.4,0.5)之间的值也是4舍的部分。
2023-03-20 21:19:12
245
原创 PTA——1024 科学计数法
写了好久,通过这道题,提取数据层数越多,也就是设置的中间变量越多,最后的错误越难以检查,应该认清问题的本质,用少的变量分出最有用的数据,错误也方便检查。
2023-03-19 21:11:20
215
原创 PTA——1021 个位数统计、1022 D进制的A+B、1023 组个最小数
注意一下num数组中的数不一定是十个就好了。模拟一遍进制转换即可。
2023-03-19 19:41:00
108
原创 PTA——1019 数字黑洞、1020 月饼
最后发现是理解题目的问题,背景介绍说给定任意4位正整数,我就以为是前面默认补0了,例如:0001,0099,0989等等,但其实还要看题目的输入格式,说给出一个正整数,正整数当然就是Z*输入:1,99,989了,所以要在输入后自己补一波0。1.相减过程中有可能出现不到四位数的数,那么转换成字符串就会少了开头的若干个‘0’,从而WA;这个我是在做题过程中发现了的,但修正后2、3、4测试点仍然不过。注意数量和单价都是正数,也就是说R*,不一定是正整数Z*就好。
2023-03-17 18:03:17
197
1
原创 PTA——1015 德才论、1018 锤子剪刀布
遇到问题:error: C++ requires a type specifier for all declarations,原来是结构体的成员函数忘记带上返回值类型了,C++还是严谨。但是实战操作如果要用泛型容器map,自动排序是不稳定的排序,所以自己写一个哈希表,一个哈希映射函数会比较方便。这道题思路是很简单的,做一个哈希映射结果就出来了,如果口述的话很简单。这道题算法全在cmp()函数上,如果只能用C语言那就麻烦太多了。
2023-03-17 16:18:59
231
原创 PTA-最短路径(1003/1018/1030/1072/1087)
1003 Emergency (25 分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pai
2022-03-04 19:24:35
1185
原创 通过四道编程题总结图的搜索(DFS/BFS)——PTA(1013/1021/1034/1076)
1013 Battle Over Cities (25 分)It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair any other hig
2022-02-28 01:19:45
629
原创 PTA-链表处理(1074/1032/1052/1097)
1074 Reversing Linked List (25 分)Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4→3→2
2022-02-24 11:31:41
752
原创 PTA-平衡二叉树(1066)
1066 Root of AVL Tree (25 分)An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is done to restore this prope
2022-02-07 12:00:35
498
原创 PTA-二叉查找树(1043/1064/1099)
1043 Is It a Binary Search Tree (25 分)A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node’s key.The right subtree of a node co.
2022-02-06 18:42:14
941
原创 PTA-树的遍历(1079/1090/1094/1106/1004/1053)
1079 Total Sales of Supply Chain (25 分)A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer.Starting from one root supplier, everyone on the chain buys pro.
2022-01-22 15:45:35
1001
原创 PTA-二叉树的遍历(1020/1086/1102)
1020 Tree Traversals (25 分)Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the corresponding binary tree.Inpu
2022-01-19 15:56:01
1516
原创 PTA-BFS(1091)
1091 Acute Stroke (30 分)One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the results of image analysis in which the core regions are identified in each MRI slice, your job is to calculate the volume of the stro
2022-01-16 11:10:07
407
原创 PTA-链表处理(1074)
1074 Reversing Linked List (25 分)Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4→3→2
2022-01-15 20:57:36
324
原创 PTA-DFS(1103)
1103 Integer Factorization (30 分)The K−P factorization of a positive integer N is to write N as the sum of the P-th power of K positive integers. You are supposed to write a program to find the K−P factorization of N for any positive integers N, K and P.
2022-01-15 18:09:40
396
原创 PTA-queue(1056)
1056 Mice and Rice (25 分)Mice and Rice is the name of a programming contest in which each programmer must write a piece of code to control the movements of a mouse in a given map. The goal of each mouse is to eat as much rice as possible in order to beco.
2022-01-14 12:04:33
254
原创 PTA-stack(1051)
1051 Pop Sequence (25 分)Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if M is 5.
2022-01-12 17:13:33
612
原创 PTA-map(1100/1054/1071/1022)
1100 Mars Numbers (20 分)People on Mars count their numbers with base 13:Zero on Earth is called “tret” on Mars.The numbers 1 to 12 on Earth is called “jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec” on Mars, respectively.For the next highe.
2022-01-12 11:39:18
434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人