自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 奇虎360自然语言处理面试总结

奇虎360面试主要考察的知识点:1.机器学习常用的分类算法,Logistic回归,SVM,Decision Tree,随机森林等相关分类算法的原理,公式推导,模型评价,模型调参。模型使用场景2.机器学习常用的聚类算法,Kmeans,BDSCAN,SOM(个人论文中使用的算法),LDA等算法的原理,算法(模型)中参数的确定,具体到确定的方法;模型的评价,例如LDA应该确定几个主题,Kmean

2018-01-16 15:04:22 6994

原创 c++ 加载yaml文件

1.安装yaml-cpp从git 上下载yaml-cpp,并进行编译 git clone https://github.com/jbeder/yaml-cpp.gitcd yaml-cppmkdir -p buildcmake -DYAML_BUILD_SHARED_LIBS=ON ..makemake install注意,如果没有-DYAML_BUILD_SHARED_LIBS=ON,则默认生成静态库在执行make install可能会有一些错误,适当加入sudo 权限2. 编写加载yaml 文件的c++

2022-07-06 14:52:13 1189 1

原创 pytorch 模型训练的多GPU训练

pytorch针对多GPU训练提供了两个类来实现多GPU训练,分别是torch.nn.DataParallel和torch.nn.DataParallel相对比较简单,因此先介绍torch.nn.DataParallel。当使用torch.nn.DataParallel的时候,数据会分配到各个GPU中,完成前向计算,然后再汇总到主卡计算loss,进行反向传播。显然,这种方式会使得多个GPU之间负载不均衡。torch.nn.DataParallel具体的使用方法注意device_ids 为指定需要训练的

2022-06-27 14:29:44 1090

原创 BERT继续预训练任务之loss为nan

BERT继续预训练任务之loss为nan

2022-06-23 12:12:27 1276

原创 使用pke模块抽取中文关键短语所踩的坑

pke模块抽取中文关键短语注意事项

2022-04-07 12:11:23 1084

原创 语法纠错数据生成方法

语法纠错属于句子级的校对,需要检测并纠正句子中的错误,其中语法纠错目前已经公开的数据量不多,而现在解决语法纠错的问题主要是采用深度学习的模型,这些深度学习的模型需要大量的训练数据,因此本文总结了几种语法纠错数据生成的方法

2022-03-14 18:15:23 1919 1

原创 Language Model Pretrain 方法

现在pretrain- fine-tune模式已经成为了去解决NLP任务的常用方法,下面总结了一些常见的pretrain 方法

2022-03-14 11:35:48 1760

原创 如何开始学术研究?

说起来,这个问题应该是上研究生之前,或者正在上研究生的时候应该去搞明白的问题,但是一直到毕业多年了,都还没有弄清楚过这个问题。直到现在才真正知道做学术研究的方法论。首先,成为一个研究生之后,都有一个指导老师来带研究生,每一个导师都会有具体的研究方向,或者研究的领域,如果就沿着导师所研究的领域做,那么已经有了一个大方向。如果不想沿着导师所研究的领域去做,那么就需要自己去找感兴趣的方向。其次,有了大方向之后,就要去寻找该大方向下,学者们都在研究什么问题/解决什么问题。确定了大家都在研究的问题之后,就

2022-02-18 17:47:02 254

原创 transformers加载模型报错

当使用AutoModelForSeq2SeqLM加载模型时,报错RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation.一开始以为是transformers版本的问题,换个各种版本之后还是不行(尝试transformers 3.0,3.4,4.0),然后将torch(之前的版本是1.9)的版本换为1.7错误就没有了...

2021-10-14 12:00:11 1198

原创 BERT基本原理是什么?

最近面试经常会被面试官问起,谈谈你对BERT的理解?你了解BERT吗?简单介绍一下BERT吧。虽然自己大概理解BERT的原理,但是表达的时候思路不够清晰 ,给面试官的感觉是似懂非懂,借此机会,想梳理一下应该怎么去表达,思路更清晰一些。大概的框架是:模型来源(提出北京)+名词解释+核心内容+模型效果+与之前模型的对比。BERT来源于Google的一篇名叫“pre-train of deep bidirectional transformer for langgue understanding”的论文,BE

2021-09-10 22:18:54 204

转载 BERT 中wordPiece的原理

1.为什么使用wordPiece?在BERT中,做数据预处理的时候,使用了wordPiece,所谓的wordPiece其实是把word再进一步的拆分,拆分为piece,得到更细粒度。而为什么使用wordPiece 而不直接使用word?比如如"loved","loving","loves"这三个单词。其实本身的语义都是“爱”的意思,但是如果我们以单词为单位,那它们就算作是不一样的词,在英语中不同后缀的词非常的多,就会使得词表变的很大,训练速度变慢,训练的效果也不是太好。2.wordPiece的实现算

2021-08-03 18:18:23 1758

原创 如何解决RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu

像这种情况,一般就是数据和模型一个在cpu,一个在GPU,或者用于计算的数据,有一些已经放到GPU里,有一些还存在CPU中,这里提供一个思路。首先找到报错的行,看看计算时都用到哪些变量或者数据,然后使用.is_cuda这个属性去查看到底哪些是在GPU上,哪些是在CPU上,然后把它们统一都放在CPU,或者统一放在GPU上就可以。举个例子:...

2021-07-22 19:48:46 31871 16

原创 NLP领域文本增强

1.何为文本增强? 所谓的文本的增强,并不是简单的增加样本的“数量”,而是针对当前模型出现的问题,去产生有针对性的样本,

2021-06-11 15:53:44 395 1

原创 1614. 括号的最大嵌套深度

1614. 括号的最大嵌套深度(2021.02.14 leetCode刷题记)难度系数:简单1.题目描述2.解题思路思路: 用栈去实现,时间复杂度为O(N),空间复杂度O(N)申请一个栈,然后依次遍历字符串,如果遇到左括号,那么将其压入到栈中,如果遇到右括号,那么将左括号从栈中弹出。如果遇到非括号的字符,那么继续。按照这样的思路去便利,那么在每次的弹栈之前,栈中所存的左括号最多的个数,即是最大的括号嵌入的深度。具体代码如下:class Solution: de.

2021-02-14 21:03:31 251

原创 2020-12-26

给自己挖个坑,把NLP的知识扎实一下,附上TO DO LISTNLP TO DO LISTNLP发展历程 常见的激活函数 不同优化器之间的区别 Word2vec原理、损失函数、两种模型框架区别和联系 word2vec和fasttext的区别 word2vec和Bert区别 L1和L2区别(数学上和几何上) 传统机器学习算法原理 LR GBDT xgboost SVM CRF LSTM几个重要的公式和画图 BiLSTM+CRF 在NER中的损失函数是什么 At

2020-12-26 15:35:48 60

转载 自然语言处理领域国内外著名会议和期刊

转发来源:https://blog.csdn.net/lyb3b3b/article/details/83548964本文介绍自然语言处理(Natural Language Processing, NLP)领域的一些国内外著名会议和期刊。 自然语言处理(NLP)和计算语言学(Computational Linguistics, CL)有很多重合之处。国际会议ACL、EMNLP、NAAC...

2019-06-09 22:33:24 2047

原创 在keras中使用交叉验证或者网格搜索踩的坑

在keras中提供了sklearn的API:from keras.wrappers.scikit_learn import KerasClassifier,这个是分类的,也有回归的,具体的使用方法1.create_model。即创建自己的模型,在keras中自己根据需要搭模型,例如 def create_model(self): """ :retur...

2019-05-26 01:53:35 3061

转载 json.dump()或者json.dumps()无法序列化,报xxx is not JSON serializable的解决方案

1.创建一个类来继承json.JSONEncoder,重写json.JSONEncoder中的方法,即自定义序列化方法class NpEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, np.integer): return int(obj) ...

2019-05-16 16:11:03 2775

翻译 SVM与LR的异同

SVM与LR相同点:SVM与LR都是分类算法,解决分类问题 如果不考虑使用核函数,SVM与LR都是线性分类模型,也就是说它们的分类决策面是线性 SVM与LR都是监督学习方法 SVM与LR都是判别模型。典型判别模型:KNN,感知机,DT,LR,SVM,最大熵,条件随机场,boosting等;典型生成模型:朴素贝叶斯,隐马尔可夫,高斯混合模型等 SVM与LR在学术界和工业都广泛使用。SV...

2019-04-06 22:28:14 334

转载 回归模型评价指标

回归模型应用场景:预测,趋势分析、投资风险分析等(1)MAE(Mean Absolute Error)平均绝对差值(2)MSE(Mean Square Error)均方误差,是回归任务最常用的性能度量,最小二乘估计也是使用均方误差(3)log对数损失函数(逻辑回归):交叉熵损失,其实是由最大似然估计推导而来(4)RMSE(Root Mean Square error)均...

2018-11-20 10:37:13 2544

原创 睿智合创(北京)科技有限公司数据分析笔试——部分笔试题(附答案)

1.删除重复数据import pandas as pdframe=pd.DataFrame({"C1":['one','two']*2+['two'],"C2":[1,1,2,3,3]})dele_dup=frame.drop_duplicates()frame..drop_duplicates(inpalce=True)注:主要考察DataFrame的drop_d...

2018-11-19 21:38:43 5084

翻译 提升算法之AdaBoost算法原理及其公式推导

1.AdaBoost算法原理     AdaBoost是代表性的提升算法。对于分类问题而言,在给定训练样本的条件下,找到一个弱分类器比找到一个强分类器要简单得多,提升算法就是从弱学习算法(弱分类器)出发,反复学习,得到一系列的弱分类器(基本分类器),然后组合这一系列的分类器,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的分布调用弱学习算法学习一系...

2018-11-12 20:49:50 385

原创 面试现场写代码注意事项

1.拿到题目先不要急着写代码,先把问题弄明白,把可能的输入用例考虑清楚2.全面考虑输入用例的情况,代码不仅要能实现基本的功能,还要考虑如边界条件、特殊处理(如空指针,空字符串等)、错误处理等。3.写出代码自己在心里要执行一遍,确认没有问题再给面试官检查。4.考虑时间和空间复杂度。尤其是当一个问题有多个解决方案时...

2018-11-12 15:07:05 1536

原创 保存和加载模型

在训练模型过程中,由于数据集较大,模型训练迭代次数较多等原因,使得模型训练较耗时,因此将训练好的模型进行保存以便下次直接使用是很有必要,下面介绍两种模型的保存和加载方法1.使用pickle模块     (1)保存模型      with open(“模型保存的位置”,“wb”)as f:             pickle.dump(model,f)      或者   ...

2018-11-11 15:42:06 248

原创 logistics回归学习过程推导

2018-11-11 13:03:41 287

原创 机器学习中模型持久化

当数据量比较大的时候,我们将数据放入到模型中训练是一件比较耗时的事情。我们想看训练的结果需要而又不想重新训练的时候,我们可以将训练好的模型持久化到文件中,这样可以随时查看模型训练的结果并使用训练好的模型。下面将介绍模型持久化到文件的方法:Method 1: pickle#持久化模型Import picklewith open(“./model.pkl”,”wb”) as f: ...

2018-09-28 21:48:28 519

转载 聚类算法的衡量指标

最近在做聚类相关的实验,但是具体聚类效果好不好,还需要一下指标进行评价,下面主要介绍聚类算法的评价指标。1.聚类算法衡量指标-1(1)均一性:一个聚类簇中只包含一个类别的样本,则满足均一性。可以认为是分类算法衡量的精确率(每个聚类簇中正确分类的样本数占该聚类簇中的样本数)(2)完整性:同类别的样本被归类到同一聚类簇中,则满足完整性。可以认为是分类算法衡量的召回率(每个聚类中正确分类...

2018-09-22 12:48:31 6221

转载 机器学习常用的分类算法优缺点、

面试过程中,当与面试聊到某种机器学习的算法的时候会提及某种算法的优缺点。目录正则化算法(Regularization Algorithms)集成算法(Ensemble Algorithms)决策树算法(Decision Tree Algorithm)回归(Regression)人工神经网络(Artificial Neural Network)深度学习(Deep Learning)支持向量机(Sup...

2018-03-24 10:32:54 2471

翻译 感知机学习算法

感知机模型是二分类的线性分类模型,输入是样本的特征空间,输出是样本所属的类别。原理是找到一个能够将样本分为正负两类的分离超平面,属于判别模型。感知机的定义:假设存在一个分离超平面w.x+b=0,输入样本空间中任一点x0到超平面的距离为|w.x0+b|/(||w||),||w||是w的二范数。对于误分类的数据(xi,yi)来说,-yi(w.xi+b)>0,因为w.xi+b>0,yi=-1;w

2017-10-08 15:50:26 397

转载 python数据持久存储:pickle模块的基本使用

python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。  基本接口:  pickle.dump(obj, file, [,protocol])  注解:将对象obj保存到文件file中去。     protoc

2017-08-28 10:08:21 208

转载 OSI七层协议与TCP/IP五层协议

OSI七层协议OSI七层协议OSI层功能TCP/IP协议应用层(Application layer)文件传输,电子邮件,文件服务,虚拟终端TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层(Presentation layer)数据格式化,代码转换,数据加密没有协议会话层(Session l

2017-08-15 22:28:15 1482

原创 SQL之DDL,DCL,DML,TCL

DDL(Data Definite Language):数据定义,主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,主要的命令有:alter,drop,createDCL(Data Control Language):数据库的控制功能,主要的命令有:grant,revoke,denyDML(Data Manipulation Language):数据库

2017-08-14 22:40:30 206

原创 数据结构之链表反转

链表分为单向链表和双向链表,无论是哪一种链表,反转都是类似的,区别主要是双向将当前节点的last节点指向next节点。链表反转要注意的就是找到当前节点时,在进行反转前,找到当前节点的上一个节点和下一个节点,这样才能保证每一次的反转后可以移动到下一个节点并继续进行操作。public class Node {//单链表的节点结构 int data; Node next=null; public

2017-08-10 22:10:14 305

原创 排序算法之冒泡排序

冒泡排序顾名思义排序过程就像气泡一样往上升的过程,简单冒泡排序算法的基本思想:给定n个记录,从第一个记录开始,依次对相邻的两个记录进行比较,当前位置的记录大于后面位置的记录时,交换位置,进行一轮比较交换后,n个记录中的最大值移到了最后一个位置,然后对前(n-1)个进行第二轮的比较;重复这个过程直到比较的记录只剩下一个为止,具体的代码如下:参考资料1.《Java程序员面试笔试宝典》何

2017-08-08 22:17:33 187

原创 排序算法之选择排序

选择排序基本原理:对于给定的一组记录,进过第一趟比较后得到最小记录,然后将该记录与第一记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录与第二个位置的元素进行交换;重复这个过程,直到进行比较的只有一个为止。(简言之就是找到最小的与第一位置的元素互换,找到)。选择排序的时间复杂度为O(n^2)。下面是使用Java实现选择排序的代码public static v

2017-08-07 22:16:04 145

翻译 java中Collection与Collections的区别

java中Collection与Collections的区别

2017-08-05 14:49:19 230

空空如也

空空如也

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

TA关注的人

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