该文被密码保护。 阅读全文
摘要:
所谓排列,是指从给定的元素序列中依次取出元素,需要考虑取出顺序。比如,取出元素3, 5,因取出顺序的不同,则形成的序列{3, 5}与{5, 3}是不同的排列序列。对于长度为n的元素序列取出k个元素,则共有A(n, k)种取法。所谓组合,也是从元素序列中依次取出元素,与排列不同的是不需要考虑取出顺序; 阅读全文
摘要:
文章标题借用了Hawstein的译文《 "动态规划:从新手到专家" 》。 1. 概述 动态规划( Dynamic Programming, DP)是最优化问题的一种解决方法,本质上状态空间的状态转移。所谓状态转移是指每个阶段的最优状态(对应于子问题的解)可以从之前的某一个或几个阶段的状态中得到,这个 阅读全文
摘要:
1. 问题 Kaggle上有一个图像分类比赛 "Digit Recognizer" ,数据集是大名鼎鼎的 "MNIST" ——图片是已分割 (image segmented)过的28 28的灰度图,手写数字部分对应的是0~255的灰度值,背景部分为0。 手写数字图片是长这样的: 手写数字识别可以看做 阅读全文
摘要:
1. 什么是新词 现在大部分的分词工具已经做到了准确率高、粒度细,但是对于一些新词(new word)却不能做到很好地识别,比如: 快的打车优惠券 英雄联盟怎么不可以打排位 “快的”、“英雄联盟”应该被作为一个词,却被切成了两个词,失去了原有的语义。未登录词(out of vocabulary, O 阅读全文
摘要:
1. 排序 排序(sort)是一种常见的算法,把数据根据特定的顺序进行排列。经典的排序算法如下: 冒泡排序(bubble sort) 插入排序(insertion sort) 选择排序(selection sort) 快速排序(quick sort) 堆排序(heap sort) 归并排序(merg 阅读全文
摘要:
从2014年8月开始在博客园写博客,~~至今已经积累了82篇~~,集中在机器学习、NLP、数据结构与算法、大数据、编程语言等方面。在此做个总结,以后还会陆续更新…… 1. 机器学习 【十大经典数据挖掘算法】系列: 1. "C4.5" 2. "K Means" 3. "SVM" 4. "Apriori 阅读全文
摘要:
1. 介绍 "thulac4j" 是THULAC的Java 8工程化实现,具有分词速度快、准、强的特点;支持 自定义词典 繁体转简体 停用词过滤 若想在项目中使用thulac4j,可添加依赖: thulac4j支持中文分词与词性标注,使用示例如下: 模型数据较大,没有放在jar包与源码。训练模型下载 阅读全文
摘要:
1. 链表 数组是一种顺序表,index与value之间是一种顺序映射,以$O(1)$的复杂度访问数据元素。但是,若要在表的中间部分插入(或删除)某一个元素时,需要将后续的数据元素进行移动,复杂度大概为$O(n)$。链表(Linked List)是一种链式表,克服了上述的缺点,插入和删除操作均不会引 阅读全文
摘要:
1. 数组 直观地看,数组(Array)为一个二元组``的集合——对于每一个index,都有一个value与之对应。C语言中,以“连续的存储单元”实现数组: 数组提供以$O(1)$的复杂度访问元素,下标从0开始。但是,数组的插入、删除操作却非常耗时,因为这涉及到了元素间的移动。 常见的矩阵,可用二维 阅读全文
摘要:
我准备开始一个新系列【LeetCode题解】,用来记录刷题,顺便复习一下数据结构与算法。 1. 二叉树 二叉树(binary tree)是一种极为普遍的数据结构,树的每一个节点最多只有两个节点——左孩子结点与右孩子结点。C实现的二叉树: DFS DFS的思想非常朴素:根据结点的连接关系,依次访问每一 阅读全文
摘要:
CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建、查询、更改、删除,俗称“增删改查”。Elasticsearch作为NoSQL数据库(虽然ES是为搜索引擎而生的,但我更愿意将其看作带有强大文本搜索功能的NoSQL)。 以下示例基于E 阅读全文
摘要:
1. 引言 Airflow是 "Airbnb" 开源的一个用Python写就的工作流管理平台(workflow management platform)。在 "前一篇文章" 中,介绍了如何用Crontab管理数据流,但是缺点也是显而易见。针对于Crontab的缺点,灵活可扩展的Airflow具有以下 阅读全文
摘要:
1. 引言 众所周知,Oozie( "1" , "2" )是基于时间条件与数据生成来做工作流调度的,但是Oozie的数据触发条件只支持HDFS路径,故而面临着这样的问题: 无法判断Hive partition是否已存在; 无法判断Elasticsearch index是否已写入完成; ... 因此, 阅读全文
摘要:
MySQL的数据类型主要分为三大类: 1. 数值型(Numeric Type) 2. 日期与时间型(Date and Time Type) 3. 字符串类型(String Type) 1. 数值 MySQL的数值类型按照精确程度,大致可以分为两类: 精确数值(Exact Value),包括INTEG 阅读全文
摘要:
1. 引言 在做OLAP数据分析时,常常会遇到过滤分析需求,比如:除去只有性别、常驻地标签的用户,计算广告媒体上的覆盖UV。OLAP解决方案Kylin不支持复杂数据类型(array、struct、map),要求 "数据输入Schema必须是平铺" 的,但是平铺后丢失了用户的聚合标签信息,而没有办法判 阅读全文
摘要:
看了《 "从数据角度解析福州美食" 》后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了 "Node.js爬虫" 爬取了合肥的大众点评数据。分析数据库我并没有采用MySQL而是用的MongoDB,是因为爬取的数据存在字段缺失的情况(schema不一致)。 1. 数据准备 MongoDB简介 不同于 阅读全文
摘要:
大众点评上有很多美食餐馆的信息,正好可以拿来练练手Node.js。 1. API分析 大众点评开放了查询商家信息的API, "这里" 给出了城市与cityid之间的对应关系,链接 以GET方式给出了餐馆的信息(JSON格式)。首先解释下GET参数的含义: start为步进数,表示分步获取信息的ind 阅读全文