- 博客(197)
- 资源 (6)
- 收藏
- 关注
原创 论文笔记:XGBoost: A Scalable Tree Boosting System
这篇论文是Tianqi Chen2016年在arXiv上发表的。陈天奇是机器学习领域著名青年学者,本科就读于上海交大ACM班,华盛顿大学计算机系博士,开发了XGBoost、MXNet、TVM等知名机器学习工具。(因为原文内容较多,很多针对系统而非算法本身的内容,故没有逐句翻译,仅放上了每部分的核心内容,如想阅读全文翻译可以阅读参考网址。)Abstract提升树是一种高效且被广泛使用的机器学...
2019-11-12 21:05:43 979
转载 论文笔记:Investigating LSTM for Punctuation Prediction
据悉,标准的语音识别系统的输出是缺乏标点和句边界的。标点预测(punctuation prediction)技术,又称句边界检测(sentence boundary detection)或句切分(sentence segmentation)技术,是一种典型的序列标注机器学习任务,是指在缺乏标点的文本(如语音识别抄本)中加入标点或对篇章文本进行句子单元切分,目的是提高文本的可懂度,降低人工阅读的负荷...
2019-10-14 09:54:19 538
原创 梯度消失、梯度爆炸及其表现和解决方法
一、梯度消失梯度消失出现的原因:在深层网络中,如果激活函数的导数小于1,根据链式求导法则,靠近输入层的参数的梯度因为乘了很多的小于1的数而越来越小,最终就会趋近于0,例如sigmoid函数,其导数f′(x)=f(x)(1−f(x))的值域为(0,1/4),极易发生这种情况。所以梯度消失出现的原因经常是因为网络层次过深,以及激活函数选择不当,比如sigmoid函数。梯度消失的表现:模型无法...
2019-09-17 11:44:10 20559
原创 面试准备——动态规划(4):合并石头的最低成本 & 击爆气球
题目:有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的总数。找出把所有石头合并成一堆的最低成本。如果不可能,返回 -1 。(leetcode1000题)示例1:输入:stones = [3,2,4,1], K = 2输出:20解释:从 [3, 2, 4, 1] 开始。合并...
2019-08-26 16:26:59 724
原创 python字典相关常见操作
统计list中元素的个数构成字典两种方法:1.自建字典freqDict = {} for x in nums: freqDict[x] = 1 if x not in freqDict else freqDict[x]+12.collection库中的Counter方法count = collections.Counter(nums)取出字典...
2019-08-19 22:26:54 379
原创 二分类和多分类的性能评价指标及python计算
一、二分类real\predictPositiveNegativeTrueTPFNFalseFPTNTP、TN、FP、FN 中的第二个字母(列标首字母)是机器学习算法或模型预测的结果(正例:P、反例:N)TP、TN、FP、FN 中的第一个字母(行标首字母)是根据真实情况判断预测结果是否正确(正确:T、错误:F)即:正确地预测为正例:TP正确...
2019-08-15 16:05:29 27986 10
原创 使用pytorch时遇到的问题汇总
遇到问题:embedding的时候遇到数据加载的时候遇到TypeError: 'int' object is not callable问题:数据不是Tensor类型的而是np.array或其他类型的。解决:tensor = torch.LongTensor(data_x)data_x = autograd.Variable(tensor)tensor = torch.Long...
2019-08-09 17:11:25 43961 25
原创 WordPiece和BPE双字节编码
BERT 的模型结构是一个多层双向Transformer 编码器,整体的模型结构其实就是Transformer,但BERT的创新点在于:引入了掩码使得Transformer编码器能够使用双向信息加入两个预训练任务,实现NLP领域的迁移学习WordPieceWordPiece原理现在基本性能好一些的NLP模型,例如OpenAI GPT,google的BERT,在数据预处理的时候都会有Wor...
2019-07-29 21:07:08 4303
原创 pytorch中BiLSTM模型构建及序列标注
损失函数NLLLoss() 的 输入 是一个对数概率向量和一个目标标签. 它不会为我们计算对数概率,适合最后一层是log_softmax()的网络. 损失函数 CrossEntropyLoss() 与 NLLLoss() 类似, 唯一的不同是它为我们去做 softmax.可以理解为:CrossEntropyLoss()=log_softmax() + NLLLoss()...
2019-07-23 15:57:05 8418 2
原创 python字符串、列表、数组、变量等高频常见使用技巧
两个list合为字典python3返回迭代器:a = [1,2,3];b = [2,3,4]c = dict(zip(a,b))python2直接返回list类型,不需要类型转换。批量转换list中的数据类型python3返回迭代器:data = ['1','3.2','2']data = list(map(eval, data))data = ['1','3','2']da...
2019-07-22 12:35:58 431
原创 压缩感知原理简介
压缩感知,compressed sensing又称compressed sampling,是在采样过程中完成了数据压缩的过程。压缩感知在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。信号采样学过通信原理或信号与系统的都知道奈奎斯特采样定理,即想让采样之后的数字信号完整保留原始信号中的信息,采样频率必须大于信号中最高频率的2倍。原因是时域以τ为间隔进行采样,频域会以1/τ为周期发...
2019-07-15 21:51:23 55237 12
原创 python将汉字表示的数字和阿拉伯数字进行相互转换
一、阿拉伯数字转汉字分析发现,中国的数字习惯是 4 位一节的,一个 4 位的数字可被转成几千几百几十几,至于后面添加什么单位则不确定:如果这节 4 位数字出现在 1~4 位,则后面添加单位“元”;如果这节 4 位数字出现在 5~8 位,则后面添加单位“万”;如果这节 4 位数字出现在 9~12 位,则后面添加单位“亿”;多于 12 位就暂不考虑了。注意出现零的特殊情况:有多个零的情况...
2019-07-09 11:05:37 12825 2
原创 FST(Finite State Transducers, 有限状态转换器)简介及示例
一、简介Finite State Transducers 简称 FST, 中文名:有穷状态转换器。FST目前在语音识别和自然语言搜索、处理等方向被广泛应用。例如,在自然语言处理中,经常会遇到一些针对某些内容法则做出修改的操作,比如:如果c的后面紧接x的话,则把c变为b,FST则是基于这些规则上的数学操作,来把若干个规则整合成一个单程的大型规则,以有效提高基于规则的系统(rule-based s...
2019-07-08 15:55:55 15972 7
原创 python构建带数字的古诗词数据集
一、数据准备:全唐诗数据集:https://github.com/todototry/AncientChinesePoemsDB从郑州大学图书馆网站上爬取下来的全唐诗库,收录了唐代诗人2539人的诗作42863首,共计900卷。该数据集格式为:每首诗一个txt文件,按照卷进行排序和命名。其中有一些为空白文件,总大小为5MB左右。中华古诗数据集:https://github.com/jack...
2019-07-04 12:24:08 4460 5
原创 docker使用
二、拉取镜像并启动拉取镜像这里我们使用了deepo镜像:https://hub.docker.com/r/ufoym/deepo/其下的 ufoym/deepo:all-py36-jupyter,该镜像收集了大部分深度学习框架,运行在GPU环境,以及配有jupyter。docker pull ufoym/deepo:all-py36-jupyter启动镜像默认配置(不推荐)n...
2019-07-01 09:55:03 407
原创 Keras实现BiLSTM+CRF字符级序列标注
BiLSTM即可实现分词或命名实体标注等序列标注任务,单独的CRF也可以很好的实现。但因为单独LSTM预测出来的标注可能会出现(I-Organization-> I-Person,B-Organization - > I-Person)这样的问题序列,所以需要搞一个LSTM + CRF的混合模型。这种错误在CRF中是不存在的,因为CRF的特征函数的存在就是为了对输入序列观察,学习各种...
2019-06-26 17:34:21 6213 12
原创 python同时读取多个文件
同时读取两个相同行的文件spokenfile = open('xxx.txt','r',encoding='utf-8')writtenfile = open('xxx.txt','r',encoding='utf-8')for line1,line2 in zip(spokenfile,writtenfile): s1 = line1 s2 = line2Python...
2019-06-21 11:17:43 23542
原创 面试准备——动态规划(2):八皇后问题/n皇后问题
题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。(leetcode51、52)解法一:回溯法由于每次都是遍历下一行,所以两个皇后的行肯定不同;因此判断当前列是否已经占用,和判断对角线的位置。用三个数组来表示列、正反对角线的占用情况。一行行的...
2019-06-21 11:01:59 3224 2
原创 面试准备——动态规划(1):编辑距离及其回溯路径
一、求编辑距离(Leetcode 72)编辑距离(Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许对字符串中的字符进行的的操作只有替换、插入、删除三种操作。编辑距离是自然语言处理中的重要的文本比较算法之一。也是从多个相似的字符串组中提取字符串的有利的武器。编辑距离算法,也称为LD算法。LD算法就是自然语言处理(NLP)里的“编辑距离”算法。俄国科学家...
2019-06-21 10:39:49 3092 1
原创 C# 快速入门
C# 是一种面向对象的编程语言,由微软开发,是基于 C 和 C++ 编程语言的。在任何 C# 程序中的第一条语句都是:using System;using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。namespace 声明。一个 namespace 里包含了一系列的类。注释同C++,单行//,多行/* */。关键字是 C# 编译器预定义的保留字。这些关键...
2019-06-19 18:14:09 1885
原创 pytorch安装及基本使用(win10+CPU+Python3.6)
pytorch这两年越来越流行,定义网络结构简单,而且还很直观灵活,数据加载快。一、安装登陆pytorch官网。选择合适的环境:运行安装命令:pip3 install https://download.pytorch.org/whl/cpu/torch-1.1.0-cp36-cp36m-win_amd64.whlpip3 install https://download.p...
2019-06-18 16:19:27 15366 1
原创 python删除list中多个相同的元素
法一:pop方法删除过程中还能返回被删除的值alist = ['d', 'd', 7, 4, 'd', 'd', 2, 1]for i in range(len(alist)-1,-1,-1): # 倒序循环,从最后一个元素循环到第一个元素。不能用正序循环,因为正序循环删除元素后后续的列表的长度和元素下标同时也跟着变了,len(alist)是动态的。 if alist[i] == '...
2019-06-14 20:06:24 17984 1
原创 python缺失值填充的几种方法
常见的数据缺失填充方式分为很多种,比如删除法、均值法、回归法、KNN、MICE、EM等等。R语言包中在此方面比较全面,python稍差。python目前已有的两种常见的包,第一个是impyute,第二个是fancyimpute。比如fancyimpute中集成了很多方式,包括均值、众数、频数填充,KNN填充、MCMC填充等。一、直接填充data = pd.read_csv(path,enco...
2019-06-14 10:37:41 63455 5
原创 论文笔记:A Mostly Data-driven Approach to Inverse Text Normalization
这篇文章是苹果公司发表在语音识别顶会INTERSPEECH2017上的一篇文章。将逆文本化(ITN)转为标签问题的方法Siri 使用标准的格式化方式来展示日期、时间、地址和金额等对象。这是由于在语音识别的核心组件的输出上应用了一个被称之为逆转文本标准化(ITN,Inverse Text Normalization)的过程。可以通过下面这个案例来理解 ITN 所起的重要作用,如果没有 ITN,S...
2019-05-31 14:58:19 1792
原创 基于word2vec的疾病和手术相关词语的相似度计算
项目需要预测是否患有骨质疏松,患者所做手术是其中的一维特征,因此需要得到骨质疏松或骨量减少和手术之间的关系,此处选择用word2vec得到词语之间的相似度。用gensim学习word2vecgensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。当然我们可以可以直接使用C语言版的word...
2019-05-27 16:41:38 1441 2
原创 FM分解机及其变种(FFM、DeepFM)原理详解
FM(分解机,Factorization Machines)线性回归:y^(x)=w0+w1x1+w2x2+...+wnxn=w0+∑i=1nwixi\hat{y}(x) = w_0+w_1x_1+w_2x_2+...+w_nx_n=w_0+\sum^n_{i=1}w_ix_iy^(x)=w0+w1x1+w2x2+...+wnxn=w0+i=1∑nwixi从方程可知:...
2019-05-20 17:37:05 2634 1
原创 机器学习中的数学原理——矩阵论
正定矩阵在线性代数里,正定矩阵 (positive definite matrix) 有时会简称为正定阵。定义:AAA是n阶方阵,如果对任何非零向量xxx,都有xTAx>0x^TAx>0xTAx>0,其中xTx^TxT 表示xxx的转置,就称AAA正定矩阵。性质:正定矩阵的行列式恒为正;实对称矩阵AAA正定当且仅当AAA与单位矩阵合同;两个正定矩阵...
2019-05-20 11:29:52 2488
原创 python数据可视化——直方图、热力图和缺失值可视化
一、绘制直方图首先读入数据def read_data(): path = '../data/forCodeF-2.csv' data = pd.read_csv(path,encoding='gbk') return data然后调用matplotlib.pyplot.hist函数绘制各维特征的分布直方图。import matplotlib.pyplot as p...
2019-05-17 16:47:49 25177 3
原创 使用sklearn对数据进行标准化/正则化
一、标准化/正则化1. 0-1标准化也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:x∗=x−minmax−minx^*= \frac{x-min} {max-min}x∗=max−minx−min其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。sklearn实现...
2019-05-17 15:38:47 3261 1
原创 使用中文维基百科训练word2vec模型
1.下载原始数据数据下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2首先把需要下载的东西都列出来一、下载内容1.语料:下载地址是https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xm...
2019-05-08 19:43:34 3334 3
原创 python图片去重
爬虫获取的图片经常会有不同名但相同或相似的情况,因此需要对图片进行去重。以下介绍两种方法。一、图片通过md5去重import md5import osfrom time import clock as nowdef getmd5(filename): file_txt = open(filename, 'rb').read() m = md5.new(file_tx...
2019-05-07 10:20:13 6102 4
原创 基于医疗知识图谱的问答系统源码详解
项目还是找的中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。该项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。项目地址:https://github.com/liuhuanyong/QASystemOnMedi...
2019-05-06 16:19:55 81806 93
原创 IOS静态分析工具oclint安装流程
1 简介OCLint是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objective-c的静态分析。功能非常强大,而且是出自国人之手。项目地址:http://oclint.org/。主要能检查到的代码缺陷:可能出现的bug,空的if/else/try/catch/finally的参数没有使用的变量或者参数复杂的代码逻辑,多个if/else的判...
2019-04-23 15:21:57 314
原创 基于医疗知识图谱的问答实践中遇到的问题
问题1:ahocorasick安装失败原因:改名为pyahocorasick,pip安装依然失败。error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tool...
2019-04-22 17:19:34 15175 69
原创 Neo4j安装及简单使用
一、Neo4j和图数据库简介neo4j是基于Java语言编写图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS。Neo4j的是一种流行的图形数据库。 其他的图形数据库是Oracle NoSQL数据库,OrientDB,HypherGraphDB,GraphBase,InfiniteGraph,AllegroGraph。Neo4j图形数据库的主要构建...
2019-04-15 21:47:39 80105 16
原创 Seq2Seq和Attention机制详解
一、Seq2Seq简介seq2seq模型最早可追溯到2014年的两篇paper [1, 2],主要用于机器翻译任务(MT)。seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列。由于encoder与decode...
2019-04-12 11:29:20 5303
原创 TensorFlow实现单层及多层LSTM的MNIST分类和可视化
The MNIST data-setMNIST data-set由一些黑白照片集合组成,每张照片包含手写的数字。图像被格式成28*28像素,并可表示成一个数值矩阵。集合中60000张照片用来训练模型,10000张照片用来测试模型。MNIST data-set可通过网络在MNIST数据库中获得。为方便下载数据,你可以使用input_data.py脚本,该文件也已放在github上。当在Tenso...
2019-04-09 10:08:27 2408
原创 面试准备——RNN和LSTM
LSTM结构推导,为什么比RNN好?推导forget gate,input gate,cell state, hidden information等的变化;因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸。...
2019-04-08 16:07:53 10790 3
原创 Bi-LSTM原理及TensorFlow实现序列标注
本文整理了Bi-LSTM的原理,并在静觅博客静觅:TensorFlow Bi-LSTM实现序列标注 的基础上对TensorFlow 搭建一个Bi-LSTM来处理序列标注问题的代码进行了详细的注释。Bi-LSTM理解RNN的意思是,为了预测最后的结果,我先用第一个词预测,当然,只用第一个预测的预测结果肯定不精确,我把这个结果作为特征,跟第二词一起,来预测结果;接着,我用这个新的预测结果结合第三...
2019-04-02 16:58:21 13828 8
原创 知识图谱与KBQA——槽填充
一、相关概念开放域对话:不太严谨的定义可以理解为 ,在不确定用户意图前的各种瞎聊,你不知道用户会问什么样千奇百怪的问题,但是chatbot都能接住,然后和用户进行对话,这种就是开放域的对话。填槽:填槽指的是为了让用户意图转化为用户明确的指令而补全信息的过程。准入条件:从一个开放域转入到封闭域,或者从一个封闭域转入到另一个封闭域,中间的跳转是需要逻辑判断的,而这个逻辑判断就是准入条件。封闭域...
2019-04-01 17:29:45 5799
基于ELMo词向量的textCNN中文文本分类python代码
2020-06-22
pcDuino通过VNC连win10电脑时RNDIS驱动
2017-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人