自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 操作系统设备独立性软件完成设备分配的原理及过程

09.08(6)设备分配(1)安全分配方式:为进程分配一个设备后就将进程阻塞;I/O完成后才将进程唤醒;(2)不安全分配方式:设备分配中的数据结构设备分配的步骤(1)根据进程请求的 物理设备名查找SDT一个设备是SDT中的一个表项,对应一个DCT(设备控制表,一个设备一张)(2)一个设备由一个控制器控制,从设备的DCT表中找设备对应的控制器,查询该设备状态是否空闲(设备的控制器知道设备是否空闲);若设备忙碌,将请求该设备的进程PCB挂到该设备的设备等待队列中,否则

2021-09-08 20:20:39 1399

原创 二叉树在线索化后仍不能解决的问题 ; 二叉线索树选项辨析

二叉树在线索化后能解决的问题:A.先序线索二叉树中求先序后继B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前驱仍不能解决的问题D.后序线索二叉树中求后序后继二叉树线索化:对于一个结点,若无左孩子,则将左孩子指针(空链域)指向结点前驱;若无右孩子,则将右孩子指针(空链域)指向结点后继;“利用链表的空链域”A.先序线索二叉树中,一个结点的后继,是其子树;欲找其子树,如果是[情况1]有左子树(只要有左子树,(仅有左子树和同时有左右子树的情况相同)后继一定是先左子树)从其左孩子指针中

2021-07-21 10:56:44 1569 1

翻译 Adversarial Analysis of Natural Language Inference Systems

Adversarial Analysis of Natural Language Inference Systems自然语言推理系统的对抗分析摘要SNLI 和 MNLI 等大型自然语言推理 (NLI) 数据集的发布导致了该任务的完全神经系统的快速开发和改进。最近,经过大量预训练、基于 Transformer 的模型(如 BERT 和 MT-DNN)在这些数据集上已达到接近人类的性能。然而,这些标准数据集已被证明包含许多注释工件,允许模型使用简单易错的启发式方法进行快速理解,并且在测试集上仍然表现良好。

2021-07-12 21:46:53 226

原创 Sparse transformer - 之Sparse attention 稀疏注意力

Sparse Transformer: 主要目的是减少传统Transformer 的时间复杂度和空间复杂度。通过top-k选择,将注意退化为稀疏注意。这样,保留最有助于引起注意的部分,并删除其他无关的信息。这种选择性方法在保存重要信息和消除噪声方面是有效的。注意力可以更多地集中在最有贡献的价值因素上。论文《Generating Long Sequences with Sparse Transformers》self-attention是O(n^2),因为对序列中任意两个位置的均建立起关联;节省显.

2021-06-10 18:57:06 4445

原创 三种位置编码Position Embedding

1.为什么要位置编码?处理序列问题对于传统CNN、RNN模型,因其处理机制模型本身已经具备很强的捕捉位置信息的特性,所以position embedding属于锦上添花使用attention机制取代cnn、rnn的如transformer、bert模型,本身是一个n*n不包含任何位置信息的词袋模型所以需要和字embedding 相加[1].基于绝对位置计数embedding = 0 , 1, ,2, 3缺点:序列没有上界 ,与字embedding合并 数值变化过大 干扰模型解决:使其

2021-06-05 18:45:51 6364

原创 深度学习入门 学习过程中的技巧——正则化

正则化目的:抑制模型过拟合;手段:权重衰减;Dropout;神经网络学习的目的:减少损失函数的值为损失函数加上权重的平方范数——训练过程中减少损失函数的值——减少权重的值目的:抑制权重过大L2范数:1/2å(W^2)å:控制正则化强度的超参数 设置的越大,对权重施加的惩罚越重对于所有权重,权值衰减的方法:为损失函数加上1/2å(w^2)在计算权重梯度的时候,(对损失函数求导寻找其下降最快的方向) 【1/2å(w^2)】‘ = åW即对结果加上了正则化的导数åWL2范数相当于各个元素的平

2021-05-25 11:11:56 75

原创 统计句法分析——用C++实现nltk.ViterbiParser

先上python使用封装好的包的代码和运行结果:grammar3 = PCFG.fromstring(""" S -> NP VP [0.9] S -> VP [0.1] VP -> V NP [0.5] VP -> V [0.1] VP -> V VP_V [0.3] VP -> V PP [0.1] NP -> NP NP [0.1] NP -> NP PP [0.2] NP -&g

2021-05-17 16:00:33 345

原创 下游任务使用预训练模型的两种模式:特征集成FeatureEnsemble和微调Fine-tuning

ELMO:采用Feature Ensemble*输入句子 输入到ELMO预训练好的双层bi-LSTMembedding 动态调整以适应下游任务(作为下游任务的输入)侧重于单词的上下文特征表达GPT和BERT使用Fine-tuning用手头任务的部分训练数据,直接在预训练模型上训练,修正模型的参数*...

2021-05-10 15:33:40 831

原创 词嵌入(二)分布式表示

One-hot编码仅仅将词语符号化,丢失语义信息,且维度灾难。与one-hot编码表示技术相对应的是分布式表示分布式假说(Distributional Hypothesis):上下文中相似的词其语义也相似——词的语义由其上下文决定基于分布式假说的词表示方法,根据建模方式分为三类——基于矩阵的分布表示、基于聚类的分布表示、基于神经网络的分布表示1.基于矩阵的分布表示,构建词-上下文矩阵上下文:文档:即词-文档矩阵上下文的每个词:即词-词矩阵ngrams:即词-n元组矩阵矩阵中的每个元素为词

2021-04-30 16:35:53 699 1

原创 词嵌入(一)第一代预训练模型

不是初识 不断学习不断遗忘不断理解*词嵌入将语义相似的两个单词映射到两个独立但相似的实值向量,因此可以聚集在一起。——词嵌入的过程像一个聚类过程,产生很多相似向量簇将单词转换成实值向量的过程称为矢量化Word2Vec 两层神经网络——浅层神经网络输入是一个文本语料库,生成矢量作为输出。——输出的矢量称为单词的‘特征向量’。将语料库转换成可以被深层神经网络系统理解的数值数据。是大小为n * n的共词矩阵的分解(压缩)GloVe== Global vector 建立在Word2Vec基础Wor.

2021-04-28 00:01:36 312

原创 使用biLSTM_CRF完成词性标注任务

使用Pytorch框架中定义好的biLSTM_CRF模型和超参数,主要目的是加深学习印象;过去一段时间对序列标注任务学习的梳理,学习的过程中有不断修正之前的理解里谬误的地方;本文是对tutorial的示范例子的一次依葫芦画瓢,仅作为对之前学习内容的回顾总结和实践,最重要的还是先对知识和模型的学习!pytorch的官方文档学习过程做的笔记:对biLSTM_CRF模型的理解对pytorch官方文档里biLSTM_CRF模型的源码学习(一)整体理解(二)预定义方法、模型的初始化工作(三)前向传播

2021-04-27 17:45:27 874 1

原创 使用Keras封装好的RNN模型解决mnist数据集手写数字分类问题

代码参考来自于运行报错TypeError: __init__() missing 1 required positional argument: 'units'stackoverflow的解决方案`用units替代output_dim属性`model.add(SimpleRNN( # for batch_input_shape, if using tensorflow as the backend, we have to put None for the batch_size.

2021-04-27 10:36:56 495

原创 Keras实现CNN模型解决mnist数据集手写数字分类问题

keras提供了Tensorflow框架的接口恭喜我print出tensorflow框架下的第一个hello world全部内容手敲及注释import kerasimport matplotlib.pyplot as pltimport sslssl._create_default_https_context = ssl._create_unverified_context #全局取消证书验证# (X_train,Y_train),(X_test,y_test) = keras.da

2021-04-26 20:51:56 235

原创 Soundex算法对字符串编码

目标:将输入单词转换为Soundex编码#soundex 算法实现步骤word = input().lower()s=""for ch in word: if s =="": #该单词的第一个字符保留为soundex代码的第一个字符 s+=ch continue if ch in "aeiouhwy": continue #丢弃以下字母 aeiouhwy #剩下的辅音按照下表中给定的规则赋值一个数字代码 if

2021-04-26 15:33:35 231

原创 pytorch中biLSTM_CRF模型源码学习(三):前向传播中计算forward_score和gold_score

上一节地址:pytorch中biLSTM_CRF模型源码学习(二):预定义方法 和 模型的初始化工作回顾一下biLSTM_CRF的逻辑:在一个epoch的训练中流程: 1.初始化梯度为0 2.构建张量 3.前向传播 4.反向传播 更新权重3.前向传播中:biLSTM提取输入序列的特征,输出feats作为发射概率分布计算前向得分——当前转移概率分布和发射概率分布feats下模型的得分最高的路径的得分计算标签序列的真实得分计算得分的差值作为损失函数值loss4.反向传播中loss

2021-04-25 20:19:40 657

原创 pytorch中biLSTM_CRF模型源码学习(二):预定义方法 和 模型的初始化工作

上一节地址:解读pytorch中的biLSTM_CRF源码(一)本节目录预定义的helper函数class biLSTM_CRF中的部分成员方法__init__,init_hidden,_get_lstm_features预定义的helper函数1.to_scalardef to_scalar(var): # 将变量转化为标量 # returns a python float return var.view(-1).data.tolist()[0]变量将张量对象、梯度及创.

2021-04-25 19:18:57 284

原创 解读pytorch中的biLSTM_CRF源码(一)

biLSTM_CRF的理解可以看之前的这篇博客pytorch的英文文档biLSTM_CRF的是训练出一个模型完成序列标注任务——给定任意输入序列和标签集,输出标注序列。这个模型实现将输入序列映射到输出序列——在nlp的词性标注POS-tagging任务中,是将给定句子(词序列)映射为大小相同的词性标注序列。这个模型需要A转移概率分布 隐藏状态之间的转移 [词性][词性]B发射概率分布 从观测状态转移到隐状态的概率 [词性][单词]显然,biLSTM_CRF模型和hmm模型的区别之一就是,h

2021-04-21 15:05:44 754

原创 循环神经网络的隐藏状态——理解注意力机制 Attention 中的Q、K、V (查询Query、键值Key、值项Value)

前言:依然借用机器翻译任务作为例子来理解这些概念注意力机制Attention 是 基于Encoder-Decoder框架的encoder-decoder本质是两个循环神经网络(‘隐藏状态’ 或 ‘记忆细胞’记录当前时间步的信息,并传递到下一时间步),做的事情就是将输入序列映射到输出序列。也即是机器翻译任务中的seq2seq模型。encoder-decoder本质是两个循环神经网络(隐藏状态/记忆细胞记录当前时间步的信息)下面是学习attention机制过程中保存的笔记:一个注意力模型

2021-04-20 17:20:10 7976

原创 使用Lucene建立索引 && 使用Luke工具检查索引文件

任务:下载语料、保存为xml格式、使用Lucene为下载语料建立索引、使用索引查看工具Luke检查索引文件使用Python的requests爬取网页import requestsres = requests.get(u)res.encoding = 'utf-8'txt = res.text获取的网页内容是在一堆标签组成的,用正则表达式匹配自己想要的内容import retitle_result = re.findall(r"<title>.*</title&gt

2021-04-20 11:30:31 265

原创 self-attention 与 attention机制的关系

attention和self-attention 使用机器翻译任务例子理解两者之间的关系假设:原文长度n , 输入序列source,输出序列targetquery, key, value target序列中的某个元素query Source序列是一系列<key,value>数据对score function对于一个query , 和所有的key做向量点积 (a.b = |a||b|cosµ) 度量两个词的相似度 ,越相似,点积越大 ——长度为n的list 得分值score[i]

2021-04-20 00:08:15 563

原创 GPLT L2-2 三足鼎立

三个国家中的任何两国实力之和都大于第三国的时候,这三个国家互相结盟就呈“三足鼎立”之势,这种状态是最稳定的。现已知本国的实力值,又给出 n 个其他国家的实力值。我们需要从这 n 个国家中找 2 个结盟,以成三足鼎立。有多少种选择呢?思路见代码lower_bound()upper_bound()底层是二分查找#include<iostream>#include<algorithm>using namespace std;#define int long long.

2021-04-19 14:54:12 623

原创 Python 确定性性能分析工具cProfile的使用 pstats表格化分析 snakeviz图形化分析

这篇博客总结的很好生成原始性能分析文件方式1 在脚本文件中添加如下代码假设我们要进行分析的程序为demo.pyimport cProfileimport recProfile.run('re.compile("demo,py")',filename='result.out')方式2 命令行中运行python3 -m cProfile -o result.out demo.py输出结果会保存在当前目录下 ,生成或覆盖一个result.out文件表格化分析原始文件:用 pstat

2021-04-19 13:23:53 1104 1

原创 Android Studio 下使用Sharedpreference存储数据

Sharedpreference,一种基于键值对key-value形式的存储方式,内容会被存储在一个xml文件中,可以存储轻量级数据以下是一个简单的demo演示:1.需要预先定义的属性 public static final String SETTING_INFOS = "SETTING_Infos"; public static final String NAME = "NAME"; public static final String PASSWORD = "PASSWORD"; priva

2021-04-16 20:01:36 1061

原创 计蒜客 - T1878 丢瓶盖 二分搜索答案

对于最大化最小值/最小化最大值问题的解题思路是二分搜索答案这里是引用题意:给定大小为a的数组(a个瓶盖的坐标值),瓶盖数b在a个坐标中选取b个,使得这b个坐标之间两两的最近距离(即坐标值之差的绝对值)最大。最近距离——最小值最大化最小值答案取值0为左边界,坐标最大值为右边界,二分搜索答案判断当前ans值是否满足题意(以此ans为距离在数组中选瓶盖,遍历到最后能选的瓶盖数>=要求的b值)Accepted代码:#include<iostream>#include<a

2021-04-16 19:51:29 222

原创 用Python写一个基于统计的隐马尔可夫模型+viterbi动态规划算法 ——完成序列标注任务

序列标注是自然语言处理的基本任务,而隐马尔可夫模型前向算法是序列标注任务中的经典算法,在序列标注任务中,观测状态:词序列;隐状态:词性标注序列。隐马尔可夫模型前向算法一般用于解决三类问题<1>给定隐马尔可夫模型M=(A,B),计算某个观测序列O出现的概率,即计算P(O|M) (A表示转移概率,B表示发射概率) 。<2> 给定一个观测序列O和一个HMM模型M,寻找最好的隐序列Q以便最好的解释观测值 (解码)<3>使用基于统计的方法,学习最佳HMM参数模型A和B.(

2021-04-16 19:30:27 524

原创 序列标注任务:BiLSTM-CRF模型中 条件随机场CRF的应用

本文是对这篇知乎文章的学习笔记BiLSTM-CRF概念-命名实体识别NER中两个不同的层-输入:词嵌入向量 ; 输出:单词对应的预测标签先验知识--命名实体识别(NER)系统的目标是识别所有文字提及的命名实体。可以分解成两个子 任务:确定 NE 的边界和确定其类型本文将围绕一个具体的实例来展开->现在假设这个数据集中仅存在两种实体,相应的,只会产生五种类别的标签如下:-数据集中 两类实体:人名、机构名-五类标签 :B-person,I-person,B-Organization,I

2021-04-13 18:13:47 421 1

原创 初识词性标注:条件随机场CRF是什么,CRF与HMM的区别

对条件随机场CRF的理解来源于这篇知乎回答基于HMM+维特比算法的词性标注解读,可以看我的这篇原创博文首先理解条件随机场:特征函数:用于给标注序列打分定义一组特征函数(一个特征函数集合)一个特征函数 接受传入的句子(标注序列),输出0或1,表示传入的标注序列是否符合这个特征每个特征函数j有权重w[j]exp函数:exp(x) = e^x第一层for循环:遍历特征函数集合第二层for循环:对于第j个特征函数:句子中每个位置单词的特征值相加指数化和标准化,得到标注序列的概率值总结:

2021-04-11 00:47:55 564

原创 向量空间模型 VSM:Vector Space Model

工业界仍在广泛使用,但在研究领域已经过时的一个方法;VSM使用在文本检索中:使用tf-idf权重向量表示查询和文档计算两个向量之间的相似度按照相似度对文档排序返回相似度top k篇文档给用户与布尔检索模型比较:布尔模型:要么匹配要么不匹配,匹配结果过多或过少;使用不方便,攥写布尔查询表达式困难;使用有效的相似度算法对文档进行打分的排序式检索避免了上述问题。...

2021-04-10 19:54:38 248

原创 词性标注 parts-of-speech tagging ,POS tagging

词性 parts-of-speech POS词性标注 parts-of-speech tagging ,POS tagging默认标注器: 为每个标识符分配同样的标记碰巧的是,一旦我们处理了几千词的英文文本之后,大多数新词都将是名词。正则表达式标注器:基于匹配模式 分配标记给标识符查找标注器:换句话说,我们要先使用查找表,如果它不能指定一个标 记就使用默认标注器,这个过程叫做回退(5.5 节)unigram 只考虑当前标志符,与上下文隔离为每个词标注其先验的最可能的标记——意

2021-04-10 10:26:00 207

原创 差分数组 快速处理区间加减操作

第一行n和m(都是100以内) 接下来n行 每行两个1-m的数 代表区间[l, r]输出没有被任何区间覆盖到的整数们(第一行输出个数)题目链接示例:每次输入区间[l,r]打标记——对数组下标[l,r]的值均执行+1操作for i in range(n): l,r=input().split() l,r=int(l),int(r) arr[l]+=1; arr[r+1]-=1; # 数组[l,r]区间+1若干次操作以后#若干次操作后数组的样子for .

2021-04-08 19:15:23 962 1

原创 I - 母牛哥与子序列 所有非空子集的乘积之和 数学结论题

链接:https://ac.nowcoder.com/acm/contest/13504/I 来源:牛客网众所周知,一个序列拥有许多非空子序列。所谓子序列就是在原序列中任意删除 0 个或多个元素,然后保持剩下元素的顺序不变所形成的序列。非空子序列集意味着剩下的子序列不能为空。比如对于序列[1, 2, 3],它的所有非空子序列为:[1, 2, 3],[1, 2],[1, 3],[2,3],[1],[2],[3]。再比如序列 [1, 1],它的非空子序列有:[1, 1],[1] (删除了第一个 1),.

2021-03-27 18:03:30 636

原创 E-找贝壳 vector

这里是引用链接:https://ac.nowcoder.com/acm/contest/13504/E来源:牛客网小明来到一片海滩上,他很喜欢捡贝壳,但他只喜欢质量为x的倍数的贝壳。#include<iostream>#include<vector>using namespace std;#define int long longconst int maxn=1e5+10;int arr[maxn];vector<int>vec[maxn];int.

2021-03-27 17:34:03 74

原创 B - 找山坡 线段树维护区间最小值+离散化

链接:https://ac.nowcoder.com/acm/contest/13504/B来源:牛客网母牛哥在电脑面前坐久了,想站起来看看窗外的小山坡,于是就想出了这个问题:给定一个大小为n的数组a,序号从1开始,计算:max{ R - L | 1 <= L <= R <= n, a[L] == a[R], 对于所有i (L <= i <= R), 满足a[i] >= a[L] }.也就是找到两个坐标,这两个坐标的值相等,并且他们之间的值都大于等于这两个坐.

2021-03-27 17:30:18 82

原创 敲笨钟 Python

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。输入格式:输入首先在第一行给出一个不超过 20 .

2021-03-25 16:24:17 151

原创 特立独行的幸福(25分)Python

特立独行的幸福 (25 分)对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性.

2021-03-25 16:20:53 698 1

原创 天梯赛字符串替换题 “ 6翻了” Python 正则表达式替换

输入格式:输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。输出格式:从左到右扫描输入的句子:如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9;但如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27。其他内容不受影响,原样输出。输入样例:it is so 666 really 6666 what else can I say 6666666666输出样例:it is so 666 really 9 what el.

2021-03-25 16:17:37 520

原创 SwiftUI 基于Xcode的ios开发 学习笔记 No.1登陆界面

是我是我还是我SwiftUI是使用swift语言进行ios开发的框架区别于Objective-C和Obejctive-C、使用Java语言的Android Studio一起同步学习参考博客布局首先看一个报错:Function declares an opaque return type, but has no return statements in its body from which to infer an underlying type:原因是var body: some.

2021-03-22 01:12:44 526

原创 leetcode题库 22.括号生成

题意: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。样例1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]自己写了一个很糟糕的模拟,面向测试样例debug的编程编不下去了去评论区学习了一个很简洁的暴力在n-1的结果集合中的所有字符串的各个位置添加一个‘()'作为新串用set给结果去重题目数据规模是1<=n<=8n=8时算法的时间复杂度是878.

2021-03-21 20:39:15 58

原创 leetcode题库17.电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 (映射同九宫格输入法)题目链接嵌套套嵌套class Solution: def letterCombinations(self, digits: str) -> List[str]: dict={} dict[2]="a b c".split() dict[3]="d .

2021-03-21 19:55:29 69

原创 leetcode 题库 15.三数之和

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。O(n^2)的基操做法卡倒数第二个样例TLE了 思路就是两数之和sum 寻找-sum是否存在数组中 因为答案要去重在加入答案里还带了个sorted 数据规模是3e3 所以应该O(n^2)做法本身是没有问题的 但是不剪枝过于暴力和太多无用计算了如果对原数组直接排序和set()去重会忽略了mp[-.

2021-03-21 17:31:23 66

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除