摘要: "THULAC" 是一款相当不错的中文分词工具,准确率高、分词速度蛮快的;并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等。 1. 前言 THULAC所采用的分词模型为 "结构化感知器" (Structured Perceptron, S阅读全文
posted @ 2017-02-22 15:57 Treant 阅读(272) 评论(0) 编辑
摘要: 结构化感知器(Structured Perceptron, SP)是由Collins "1]在EMNLP'02上提出来的,用于解决序列标注的问题。中文分词工具[THULAC" 、 "LTP" 所采用的分词模型便是基于此。 1. 结构化感知器 模型 "CRF" 全局化地以最大熵准则建模概率$P(Y|X阅读全文
posted @ 2017-02-19 17:03 Treant 阅读(131) 评论(0) 编辑
摘要: 1. 链表 数组是一种顺序表,index与value之间是一种顺序映射,以$O(1)$的复杂度访问数据元素。但是,若要在表的中间部分插入(或删除)某一个元素时,需要将后续的数据元素进行移动,复杂度大概为$O(n)$。链表(Linked List)是一种链式表,克服了上述的缺点,插入和删除操作均不会引阅读全文
posted @ 2017-02-10 13:05 Treant 阅读(168) 评论(0) 编辑
摘要: 1. 数组 直观地看,数组(Array)为一个二元组``的集合——对于每一个index,都有一个value与之对应。C语言中,以“连续的存储单元”实现数组: 数组提供以$O(1)$的复杂度访问元素,下标从0开始。但是,数组的插入、删除操作却非常耗时,因为这涉及到了元素间的移动。 常见的矩阵,可用二维阅读全文
posted @ 2017-02-08 14:51 Treant 阅读(158) 评论(0) 编辑
摘要: 我准备开始一个新系列【LeetCode题解】,用来记录刷题,顺便复习一下数据结构与算法。 1. 二叉树 二叉树(binary tree)是一种极为普遍的数据结构,树的每一个节点最多只有两个节点——左孩子结点与右孩子结点。C实现的二叉树: DFS DFS的思想非常朴素:根据结点的连接关系,依次访问每一阅读全文
posted @ 2017-01-25 13:33 Treant 阅读(146) 评论(0) 编辑
摘要: Top K问题在数据分析中非常普遍的一个问题(在面试中也经常被问到),比如: 从20亿个数字的文本中,找出最大的前100个。 解决Top K问题有两种思路, 最直观:小顶堆(大顶堆 最小100个数); 较高效:Quick Select算法。 LeetCode上有一个问题 "215. Kth Larg阅读全文
posted @ 2017-01-21 10:54 Treant 阅读(89) 评论(0) 编辑
摘要: 1. 前言 随机森林 Random Forests (RF) 是由Breiman "1]提出的一类基于决策树[CART" 的集成学习(ensemble learning)。论文 [5] 在121数据集上比较了179个分类器,效果最好的是RF,准确率要优于基于高斯核SVM和多项式LR。RF自适应非线性阅读全文
posted @ 2017-01-18 11:19 Treant 阅读(149) 评论(0) 编辑
摘要: 原本准备在元旦写完『2016年总结』,因为个人事(lan)情(duo)而未写完。最近手头不是太忙,正好补完吧,算是给工作第二个年头的纪念。 1. 2016总结 先给个简短的总结: 1. 写了 52 篇博客,主要集中在大数据、机器学习、Java、Python; 2. 读了一些书,工作后自己的读书习惯发阅读全文
posted @ 2017-01-16 16:57 Treant 阅读(140) 评论(0) 编辑
摘要: 在提出基于滑动窗口的LZ77算法后,两位大神Jacob Ziv与Abraham Lempel于1978年在发表的论文 [1]中提出了LZ78算法;与LZ77算法不同的是LZ78算法使用动态树状词典维护历史字符串。 "【数据压缩】LZ77算法原理及实现" "【数据压缩】LZ78算法原理及实现" 1. 阅读全文
posted @ 2017-01-13 16:37 Treant 阅读(326) 评论(0) 编辑
摘要: "Ansj" 是由孙健(ansjsun)开源的一个中文分词器,为 "ICTLAS的Java版本" ,也采用了Bigram + HMM分词模型(可参考我之前写的 "文章" ):在Bigram分词的基础上,识别未登录词,以提高分词准确度。虽然基本分词原理与ICTLAS的一样,但是Ansj做了一些工程上的阅读全文
posted @ 2017-01-11 19:21 Treant 阅读(411) 评论(0) 编辑
摘要: 双数组Trie树(Double array Trie, DAT)是由三个日本人提出的一种Trie树的高效实现 [1],兼顾了查询效率与空间存储。Ansj便是用DAT(虽然作者宣称是三数组Trie树,但本质上还是DAT)构造词典用作初次分词,极大地节省了内存占用。本文将简要地介绍DAT,并实现了基于D阅读全文
posted @ 2017-01-09 14:49 Treant 阅读(306) 评论(0) 编辑
摘要: 1. 前言 "Jieba" 是由fxsjy大神开源的一款中文分词工具,一款属于工业界的分词工具——模型易用简单、代码清晰可读,推荐有志学习NLP或Python的读一下源码。与采用分词模型Bigram + HMM 的 "ICTCLAS" 相类似,Jieba采用的是Unigram + HMM。 "Uni阅读全文
posted @ 2016-12-29 18:08 Treant 阅读(471) 评论(0) 编辑
摘要: 1. 前言 ICTCLAS是张华平老师推出的中文分词系统,于2009年更名为 "NLPIR" 。ICTCLAS是中文分词界元老级工具了,作者开放出了free版本的源代码(1.0整理版本 "在此" ). 作者在论文 "1] 中宣称ICTCLAS是基于 HHMM (Hierarchical Hidden阅读全文
posted @ 2016-12-27 11:05 Treant 阅读(464) 评论(2) 编辑
摘要: 之前介绍的 "MMEM" 存在着label bias问题,因此Lafferty et al. [1] 提出了CRF (Conditional Random Field). BTW:比较有意思的是,这篇文章的二作与三作同时也是MEMM的作者。 1. 前言 本节将遵从tutorial [2] 的论文结构阅读全文
posted @ 2016-12-23 11:04 Treant 阅读(324) 评论(0) 编辑
摘要: Xue & Shen '2003 "2]用两种序列标注模型——MEMM (Maximum Entropy Markov Model)与CRF (Conditional Random Field)——用于中文分词;看原论文感觉作者更像用的是MaxEnt (Maximum Entropy) 模型而非ME阅读全文
posted @ 2016-12-20 11:17 Treant 阅读(373) 评论(0) 编辑
摘要: 在 "前一篇" 中介绍了用HMM做中文分词,对于未登录词(out of vocabulary, OOV)有良好的识别效果,但是缺点也十分明显——对于词典中的(in vocabulary, IV)词却未能很好地识别。主要是因为,HMM本质上是一个Bigram的语法模型,未能深层次地考虑上下文(cont阅读全文
posted @ 2016-12-15 15:43 Treant 阅读(348) 评论(6) 编辑
摘要: Nianwen Xue在《Chinese Word Segmentation as Character Tagging》中将中文分词视作为序列标注问题(sequence tagging problem),由此引入监督学习算法来解决分词问题。 1. HMM 首先,我们将简要地介绍HMM(主要参考了李航阅读全文
posted @ 2016-12-12 13:37 Treant 阅读(498) 评论(0) 编辑
摘要: CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建、查询、更改、删除,俗称“增删改查”。Elasticsearch作为NoSQL数据库(虽然ES是为搜索引擎而生的,但我更愿意将其看作带有强大文本搜索功能的NoSQL)。 以下说明基于E阅读全文
posted @ 2016-12-08 09:02 Treant 阅读(740) 评论(0) 编辑
摘要: 【十大经典数据挖掘算法】系列 1. "C4.5" 2. "K Means" 3. "SVM" 4. "Apriori" 5. "EM" 6. "PageRank" 7. "AdaBoost" 8. "kNN" 9. "Naïve Bayes" 10. "CART" 我特地把PageRank作为【十大阅读全文
posted @ 2016-12-02 10:40 Treant 阅读(652) 评论(1) 编辑
摘要: 1. 引言 Airflow是 "Airbnb" 开源的一个用Python写就的工作流管理平台(workflow management platform)。在 "前一篇文章" 中,介绍了如何用Crontab管理数据流,但是缺点也是显而易见。针对于Crontab的缺点,灵活可扩展的Airflow具有以下阅读全文
posted @ 2016-11-30 19:16 Treant 阅读(586) 评论(0) 编辑