自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 每天一道算法题(2020.06.18)- 电话号码的字母组合

题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。思路应用回溯法,回溯是一种通过穷举所有可能情况来找到所有解的算法。代码 def letter_combinations(digits):

2020-06-18 17:00:46 281

原创 每天一道算法题(2020.06.15)-三数之和

题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路排序,双指针:首先对数组进行排序,遍历数组中的每个数作为三元组中的一个数i,应用双指针获取当前数i之后的另外两个数。细节:如

2020-06-15 09:44:08 197

原创 情感分析工具测评

情感分析情感倾向分析针对带有主观描述的中文文本,可自动判断该文本的情感极性类别并给出相应的置信度。情感类型分为积极、消极、中性。情感倾向分析能够帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有力的决策支持。本文主要对两个情感分析的工具进行测评。SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所

2020-06-11 09:36:25 2020

原创 每天一道算法题(2020.06.09)-最多盛水容器

题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例输入:[1,8,6,2,5,4,8,3,7]输出:49思路算法流程: 设置双指针 i,j分别位于容器壁(数组)两端,根据规则移动指针,并且持续更新面积最大值 res,直到 i == j 时返回

2020-06-09 16:52:12 165

原创 每天一道算法题(2020.06.04)-正则匹配

题目描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s =

2020-06-04 16:06:10 155

原创 几个优质的教育开源框架

PHET通过动画模拟知识点网址:https://phet.colorado.edu/zh_CN/simulations/category/math开源相关技术人员:js潜在用途:可获取其中关于数学的知识点动画演示Crab项目地址:http://geektell.com/story/crab-recommender-systems-in-python/图片: https://uploader.shimo.im/f/K7JojvOUWqM1AAlc.png系统的Tutorial可以看这里:

2020-06-04 11:32:53 457

原创 GIT代码合作开发

Git常用概念仓库(Repositories):类似我们生活中的仓库,存储东西,在这是网络或者本地实际存放代码的地方,同一个仓库可存多个项目。参照(References):可以看做是指向文件块中特定代码版本的指针,可沿代码版本有向图进行向前(一般指提交操作Commit),向后(一般是恢复操作Restore), 跳转(不同分支间的切换Switch)。分支(Branch):一般是为了进行代码调试或概念开发,从主要的开发版本中分离出一个副版本,并在此基础上进行修改,(实际中我们可以分离出来进行各自的模块开发

2020-06-04 10:56:48 314

原创 神经网络初探(二)

导读2016年初,DeepMind研发的以神经网络技术为基础的围棋程序AlphaGo战胜了世界围棋冠军李世石,引起了全世界的广泛关注。围棋棋盘上有19*19=361个交叉点,每一步都可能影响之后的几百步,很难从当前棋子的分布判断局势,与象棋、国际象棋相比要复杂地多,一个人类棋手需要十几年的刻苦训练以及具备极高悟性才能达到一定水平。那么,深度学习究竟有着什么样的魔力,能够让AlphaGo在短时...

2020-04-01 19:13:52 193

原创 神经网络初探(一)

导读2016年初,DeepMind研发的以神经网络技术为基础的围棋程序AlphaGo战胜了世界围棋冠军李世石,引起了全世界的广泛关注。围棋棋盘上有19*19=361个交叉点,每一步都可能影响之后的几百步,很难从当前棋子的分布判断局势,与象棋、国际象棋相比要复杂地多,一个人类棋手需要十几年的刻苦训练以及具备极高悟性才能达到一定水平。那么,深度学习究竟有着什么样的魔力,能够让AlphaGo在短时...

2020-03-31 20:40:32 594

原创 numpy基本练习(三)

# translation of typez = np.arange(10,dtype=np.int32)print(z.dtype)z = z.astype(np.float32)print(z.dtype)# print index and elementz = np.arange(9).reshape(3,3)for index,value in np.ndenumerate...

2019-11-20 20:07:39 140

原创 numpy基本练习(二)

# constitute a matrix of (6,7,8), find the index of 100th elementprint(np.unravel_index(100,(6,7,8)))# normalizationhu_array = np.random.random((5,5))hu_max = hu_array.max()hu_min = hu_array.min...

2019-11-20 19:32:19 129

原创 numpy基本练习(一)

import numpy as np# print version of numpyprint(np.__version__)# constitute a matrix of zeros and print its sizez = np.zeros((5, 5))print("%d bytes"%(z.size * z.itemsize))# print the help fil...

2019-11-20 19:15:58 173

原创 Bert应用于序列标注

NER命名实体识别(NER)(也称为实体识别、实体分块和实体提取)是信息提取的一个子任务,旨在将文本中的命名实体定位并分类为预先定义的类别,如人员、组织、位置、时间表达式、数量、货币值、百分比等。datahttps://www.kaggle.com/abhinavwalia95/entity-annotated-corpus/downloadMethods统计的方法机器学习统计和机器...

2019-11-15 16:39:38 1163

原创 XLNet简介

背景知识语言模型:自回归和自编码模式图示:黄色块为输入字符,蓝色块为字符的位置。对于自回归语言模型,它希望通过已知的前半句预测后面的词或字。对于自编码语言模型,它希望通过一句话预测被 Mask 掉的字或词,如上所示第 2 个位置的词希望通过第 1、3、5 个词进行预测。自回归式的优缺点计算效率比较高只能编码单向语义自编码式的优缺点双向编码能力BERT 假设要预测的词之间是相...

2019-11-15 16:37:05 971

原创 一个文本纠错的小例子

文本纠错又称为拼写错误或者拼写检查,由于纯文本往往来源于手打或者OCR识别,很可能存在一些错误,因此此技术也是一大关键的文本预处理过程,一般存在两大纠错类型。Non-word拼写错误第一种是Non-word拼写错误,表示此词汇本身在字典中不存在,比如把“要求”误写为“药求”,把“correction”误拼写为“corrction”。操作步骤:这类问题的解决思路可分为两个步骤,首先找到字典中...

2019-11-15 16:31:32 1351

原创 Xavier的初始化推导

一般来说,参数初始化可以用高斯分布,均值为0,方差自定义。但是随着计算的进行,数据的分布极有可能发生变化,如果动荡太大,会使模型很难收敛。目的:所以呢,我们希望保持分布的稳定性Xavier Initialization呢,就是这么一种初始化方式,它的目的在于保持每一层的输入与输出的var相同接下来看如何推导出Xavier 的初始化方式首先,对于神经元的计算而言,有如下的算式,x表示输入,...

2019-11-15 16:25:56 593

原创 每天一道算法题(2019.3.25)

题目:求二叉树是否平衡(每一个结点的两个子树的深度差不能超过1)思路:应用递归算法python代码:class solution: def isBalancedTree(self, root): def get_height(root): if not root: return 0 left_height, right_height = get_height(r...

2019-03-25 21:06:25 149

原创 每天一道算法题(2019.3.25)

题目:判断一颗二叉树是否为二叉查询树。思路:查看每一个节点是否满足两个条件(并且用递归来实现):左节点及以下节点的值比它小右节点及以下节点的值比它大python代码:class solution: def isValidBST(self, root): """ type root: TreeNode rtype: boolean """ return self....

2019-03-25 20:32:08 169

原创 每天一道算法题(2019.3.14)

Q:最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: “babad”输出: “bab”注意: "aba"也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”思路:利用动态规划的方法,拆解为子问题,并解析问题间的关系。其中dp(i,j)表示当s[i:j]子串是否是回文串。当j-i<=1时,如...

2019-03-14 10:39:55 152

原创 每天一道算法题(2019.3.8)

Q:Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.Symbol ValueI 1V 5X 10L 50C 100D ...

2019-03-08 18:39:20 191

原创 每天一道算法题(2019.3.7)

Q:给定一个范围为 32 位 int 的整数,将其颠倒。例如,给定123,返回321;给定-12, 返回-21;给定120,返回21 。思路:为了解决负数的问题,先取整数的绝对值;对于超出范围的数进行条件判断(-2^31, 2^31-1);每次取整数的最后一位,把其放到新数的末尾。python代码实现:def reverse(x): a = abs(x) n = 0 while(a!=...

2019-03-07 13:42:05 174

原创 每天一道算法题(2019.3.5)

Q:给定一个序列,求最大子序列思路1: 暴力求解法:把所有可能的子序列列出来作比较,利用双层循环,复杂度为O(n^2)。def maxSubArray(list): res = list[0] for i in range(length(list)):#the start index of subArray maxTmp = 0 for j in range(i, length(l...

2019-03-05 17:36:54 140

原创 每天一道算法题(2019.2.24)

Q: 假设我们有binary search tree (BST), 请写出search, insert, printOrder, printMax 函数二叉搜索树(BST)基本特性:所有非叶子结点至多拥有两个儿子(Left和Right)所有结点存储一个关键字非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树python 代码:class Node(): def...

2019-02-24 12:45:09 154

原创 信息抽取

信息抽取技术主要用于抽取:抽取实体:比如人,地名,时间这些一般的常见的实体,再比如在一些垂直领域,需要提取医疗领域,金融领域,教育领域等方面的实体。抽取关系:提取的是实体与实体间的关系。信息抽取应用场景:比如我们有以上一段话,需要进行实体抽取,以及实体间的关系抽取,接下来需要把这些信息整合成知识图谱的形式。更多应用:知识库的搭建Google Scholar用户库: R...

2019-02-22 15:13:23 2479

原创 实体消歧和实体统一

实体消歧概念:实体消歧的本质在于一个词有很多可能的意思,也就是在不同的上下文中所表达的含义不太一样。例子:‘我的手机是苹果’和‘我喜欢吃苹果’这两个句子中的‘苹果’代表的含义是不一样的。问题:怎么识别单词的真正含义?方法:能过上下文计算相似度。比如我们已知“苹果:是水果中的一种,一般产自于…”,“苹果:美国一家高科技公司,经典的产品有iPhone手机”,我们可以将这两种含义用向量来表示;接...

2019-02-22 11:05:14 5988

翻译 Skip-Gram模型理解

译自:http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/什么是Word2Vec和Embeddings?Word2Vec是从大量文本语料中以无监督的方式学习语义知识的一种模型,它被大量地用在自然语言处理(NLP)中。那么它是如何帮助我们做自然语言处理呢?Word2Vec其实就是通过学习文本来用词向量的方...

2019-02-22 10:18:49 361

转载 Beam Search

Q: 什么是Beam Search? 它在NLP中的什么场景里会⽤到?传统的广度优先策略能够找到最优的路径,但是在搜索空间非常大的情况下,内存占用是指数级增长,很容易造成内存溢出,因此提出了beam search的算法。beam search尝试在广度优先基础上进行进行搜索空间的优化(类似于剪枝)达到减少内存消耗的目的。在sequence2sequence模型中,beam search的方法...

2019-02-21 20:50:28 366

原创 T-SNE简介

Q:什么是T-SNE,为什么可视化词向量的时候不使⽤PCA, ⽽使⽤TSNE?t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法,是由 Laurens van der Maaten 和 Geoffrey Hinton在 08 年提出来。t-SNE 是一种非线性降维算法,非常适用于高维数据降维到 2 维或者 3 维,进行...

2019-02-21 20:39:00 2958

转载 MLE和MAP

Q:请解释什么叫MLE,什么叫MAP? 请说明它们之间的区别。 在数据量无穷多的时候,是否MAP 趋近于MLE估计?最大似然估计(MLE,Maximum Likelihood Estimation)根据数据来估计模型的参数。MLE的目标是找出一组参数,使得模型产生出观测数据的概率最大。简单地说,MLE就是根据观测到的数据来估计参数(数据产生的环境)。观测到一堆数据,假如我们知道它是从某一种分布...

2019-02-21 20:09:21 2935

原创 PCA过程

PCA(Principal Component Analysis),也称为主成分分析。降维可以解决三类问题:缓解维度灾难在压缩数据的同时让信息损失最小化维度少的数据通过可视化更容易理解从数学的角度来看,PCA的目标是什么呢?它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,即把原先的n个特征用数目更少的m个特征取代,并且,我们希望在所投影的维度上数据的方差最大,尽量使新的m个...

2019-02-21 10:44:31 752 2

原创 生成模型和判别模型

生成模型求的是联合概率,判别模型求的是条件概率。 生成模型可以生成新的样本,判别模型不可以。对于分类任务来说,生成模型记住的是每个类的特点,而判别模型关注的是类别之间的差别。从数学的角度看,p(x,y)=p(y|x)p(x),生成模型相对于判别模型多考虑了p(x),相当于多考虑了先验概率。在分类问题中,在样本较小的情况下,容易产生过拟合,而考虑先验可以减少过拟合,所以生成模型的效果较好;当...

2019-02-20 20:18:33 114

原创 正则化

Q:关于正则,我们⼀般采⽤L2或者L1, 这两个正则之间有什么区别? 什么时候需要用L2, 什么时候需要用L1?首先,过拟合的问题通常发生在变量(特征)过多的时候。这种情况下训练出的方程总是能很好的拟合训练数据。但是,这样的曲线在新的数据样本中表现不一定好。也就是说,经验误差很小,泛化误差很大的时候,过拟合就产生了。而正则化是解决过拟合的一种常用手段。正则化是一种回归的形式,它将系数估计朝零的...

2019-02-20 17:42:06 183

原创 模型的评估

一些基本概念:错误率:如果在m个样本中有a个样本分类错误,那么错误率=a/m精度:1-错误率误差:实际预测输出与样本的真实输出之间的差异训练误差/经验误差:学习器在训练集上的误差,在很多情况下,我们都可以学得一个经验误差很小,在训练集上表现很好的学习器泛化误差:在新样本上的误差,我们希望得到的是一个泛化误差很小的学习器,但这点不能通过训练误差来保证过拟合:训练误差很小但是泛化误差很...

2019-02-20 17:15:11 150

原创 监督学习

Q:监督学习的流程是什么样的?监督学习过程图示:首先我们需要带有标签的数据,接着,通过特征工程来提取特征形成特征向量。然后,我们会选择模型,相当于选择某一个目标函数,那有了一个目标之后,就可以使用优化算法来优化目标函数。这些算法一般都可以调用工具来使用。这样我们便得到了一个预测结果。如果预测结果不好怎么办呢?我们会从头开始,在每一个部分都作一些调节,一般我们算法工程师做的事情就是循环过程。其中...

2019-02-19 21:29:08 1228

原创 overflow and underflow

Q: 什么叫underflow, 什么叫overflow? 对于很多的AI问题,如果出现很多概率的相乘,我们通常都在最前面加log, 为什么? ⽐如 argmax p(x), 通常求解 argmax log p(x)。 对于softmax 函数,我们去实现的时候怎么避免underflow 或者 overflow?首先,实数在计算机内用二进制表示,所以不是一个精确值,当数值过小的时候,被四舍五入为...

2019-02-19 20:56:40 1399

原创 利用动态规划求解编辑距离

概念字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。是指利用字符操作,把字符串A转换成字符串B所需要的最少操作数。其中,字符操作包括:删除一个字符 a) Insert a character插入一个字符 b) Delete a character修改一个字符 c) Replace a ch...

2019-02-19 16:24:24 621

原创 array和linked list的区别

Q:array和linked list在数据结构中的区别是什什么?在查找,删除,增加操作中的复杂度分别是多少?ArrayList和LinkedList都实现了List接口,他们有以下的不同点:LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。ArrayList是基于索引的数据接口,它的底层是数...

2019-02-19 13:55:32 3666

原创 Python实现两个排序数组的中位数

Q: 目前有两个已经排序好的数组(从⼩小到⼤大) A,B, 请求出两个数组合并之后 的median。思路:当两个数组合并后的总元素长度是奇数时,中位数的下标是n/2。 当两个数组合并后的总元素个数是偶数时,中位数是下标n/2-1和下标n/2两个元素的平均值。运用递归法求A,B中第k个值。class Solution: """ @param A: An integer array...

2019-02-19 11:01:37 582

原创 求平方根

Q:对于给定的整数 n >0, 请求出它的平⽅方根(sqrt(n)), 保留留⼩小数点后⼀一位,不不要使⽤用任何built-in function。思路1: 用二分法求,每次取中间值,查看中间值的平方与给定整数的大小,如果差值小于0.1, 则停止计算。python代码:def sqrt1(n): if n<0: return -1 low = 0 high = n m...

2019-02-19 10:15:40 406

原创 数组中求topK的元素

Q: 我们有N个没有排序的数列列

2019-02-18 21:02:17 724

空空如也

空空如也

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

TA关注的人

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