31 Dec

2016年全年天象

Astronomy Calendar of Celestial Events
2016年全年天象

翻译自NASA:http://eclipse.gsfc.nasa.gov/SKYCAL/SKYCAL.html

(北京时间)

2011年版本

2012年版本

2013年版本

2014年版本

2015年版本

点击阅读全文...

14 Dec

端到端的腾讯验证码识别(46%正确率)

最新结果请参考:http://kexue.fm/archives/4503/

前段时间有幸得到了一个网友提供的一批带标签的腾讯验证码样本(验证码样板:http://captcha.qq.com/getimage),于是抽了点时间,测试了一下验证码识别的模型。

腾讯验证码

腾讯验证码

样本

这批验证码比较简单,4位的英文字母,有大小写,但输入的时候不区分大小写,图案有一定的混淆,传统的基于分割的方案估计比较难办。端到端的方案是,直接将验证码输入,做几个卷积层,然后连接几个分类器(26分类),然后就直接输出四个字母标签了。其实还真没有什么好说的,有样本就能做了,而且这个框架是通用的,可以用到区分大小写的情形(52分类),也可以用到英文数字混合的情形(再加10个类别而已)。

点击阅读全文...

31 Dec

2017年快乐!Responsive Geekg for Typecho

2016年即将画上句号了,在此祝各位读者2017年快乐,新的一年事事大顺哈~

happy new year 2017

happy new year 2017

所谓新年新气象,科学空间也换上新外衣。咦,怎么感觉没什么变化?别急,请继续看下去。

点击阅读全文...

31 Dec

2015年全年天象

Astronomy Calendar of Celestial Events
2015年全年天象

翻译自NASA:http://eclipse.gsfc.nasa.gov/SKYCAL/SKYCAL.html

(北京时间)

2011年版本

2012年版本

2013年版本

2014年版本

点击阅读全文...

31 Dec

2017年全年天象

Astronomy Calendar of Celestial Events
2017年全年天象

翻译自NASA:http://eclipse.gsfc.nasa.gov/SKYCAL/SKYCAL.html

(北京时间)

2011年版本

2012年版本

2013年版本

2014年版本

2015年版本

2016年版本

点击阅读全文...

6 Jan

获取并处理中文维基百科语料

中文语料库中,质量高而又容易获取的语料库,应该就是维基百科的中文语料了,而且维基百科相当厚道,每个月都把所有条目都打包一次(下载地址在这里:https://dumps.wikimedia.org/zhwiki/),供全世界使用,这才是真正的“取之于民,回馈于民”呀。遗憾的是,由于天朝的无理封锁,中文维基百科的条目到目前只有91万多条,而百度百科、互动百科都有千万条了(英文维基百科也有上千万了)。尽管如此,这并没有阻挡中文维基百科成为几乎是最高质量的中文语料库。(百度百科、互动百科它们只能自己用爬虫爬取,而且不少记录质量相当差,几乎都是互相复制甚至抄袭。)

门槛

尽量下载很容易,但是使用维基百科语料还是有一定门槛的。直接下载下来的维基百科语料是一个带有诸多html和markdown标记的文本压缩包,基本不能直接使用。幸好,已经有热心的高手为我们写好了处理工具,主要有两个:1、Wikipedia Extractor;2、gensim的wikicorpus库。它们都是基于python的。

然而,这两个主流的处理方法都不能让我满意。首先,Wikipedia Extractor提取出来的结果,会去掉{{}}标记的内容,这样会导致下面的情形

西方语言中“数学”(;)一词源自于古希腊语的()

点击阅读全文...

7 Jan

基于遗忘假设的平滑公式

统计是通过大量样本来估计真实分布的过程,通常与统计相伴出现的一个词是“平滑”,即对统计结果打折扣的处理过程。平滑的思想来源于:如果样本空间非常大,那么统计的结果是稀疏的,这样由于各种偶然因素的存在,导致了小的统计结果不可靠,如频数为1的结果可能只是偶然的结果,其频率并不一定近似于$1/N$,频数为0的不一定就不会出现。这样我们就需要对统计结果进行平滑,使得结论更为可靠。

平滑的方法有很多,这里介绍一种基于遗忘假设的平滑公式。假设的任务为:我们要从一批语料中,统计每个字的字频。我们模仿人脑遗忘的过程,假设这个字出现一次,我们脑里的记忆量就增加1,但是如果一个周期内(先不管这个周期多大),这个字都没有出现,那么脑里的记忆量就变为原来的$\beta$比例。假设字是周期性出现的,那么记忆量$A_n$就满足如下递推公式
$$A_{n+1} = \beta A_n + 1$$

点击阅读全文...

13 Jan

【中文分词系列】 6. 基于全卷积网络的中文分词

之前已经写过用LSTM来做分词的方案了,今天再来一篇用CNN的,准确来说是FCN,全卷积网络。其实这个模型的主要目的并非研究中文分词,而是练习tensorflow。从两年前就开始用Keras了,可以说对它比较熟了,也渐渐发现了它的一些不足,比如处理变长输入时不方便、加入自定义的约束比较困难等,所以干脆试试原生的tensorflow了,试了之后发现其实也不复杂。嗯,都是python,能有多复杂。本文就是练习一下如何用tensorflow处理不定长输入任务,以中文分词为例,并在最后加入了硬解码将深度学习与词典分词结合了起来

CNN

另外,就是关于FCN的。放到语言任务中看,(一维)卷积其实就是ngram模型,从这个角度来看其实CNN远比RNN来得自然,RNN好像就是为序列任务精心设计的,而CNN则是传统ngram模型的一个延伸。另外不管CNN和RNN都有权值共享,看上去只是为了降低运算量的一个折中选择,但事实上里边大有道理。CNN中的权值共享是平移不变性的必然结果,而不是仅仅是降低运算量的一个选择,试想一下,将一幅图像平移一点点,或者在一个句子前插入一个无意义的空格(导致后面所有字都向后平移了一位),这样应该给出一个相似甚至相同的结果,而这要求卷积必然是权值共享的,即权值不能跟位置有关系。

点击阅读全文...