mathacker

no math, little hacker

本文主要整理自《Fluent Python》的第16章。

David Beazley(又)尝言,协程是py文档中最语焉不详、模糊的,看起来是一个毫无用处的特性。当然,事实并非如此,他写过关于协程与并发的系列文章:A Curious Course on Coroutines and Concurrency

yield一次在英语中有两个主要含义:产生和让路。在生成器中,这两个含义都适用:每次产生一个值,生成器都会挂起,“让路”给调用者。

协程的语法看起来像是生成器,但协程一般出现在表达式的右边(如datum = yield),它也不一定需要产生一个值。调用者使用.send()时,协程接受到一个值。

甚至可以完全没有数据从yield进出,所以不妨把yield看作一个流程控制装置,可用于实现协作式多任务处理:每个协程交出控制给central scheduler,随后其它协程可被激活。

协程的基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from inspect import getgeneratorstate


def simple_coro(a):
print('-> Started: a =', a)
b = yield a
print('-> Received: b =', b)
c = yield a + b
print('-> Received: c =', c)


coro = simple_coro(14)
print(getgeneratorstate(coro))
print(next(coro))
print(getgeneratorstate(coro))
print(coro.send(28))
print(coro.send(99))

从调用者角度看,它获取数据的方式与生成器类似,但是它同时多了两次send操作,sendnext多了一个方向的数据流转,但对于yield,它依然会挂起当前例程(此处为协程),将执行交给调用者。

协程示例:持续计算均值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def averager():
total, count = 0, 0
average = None
while True:
term = yield average
total += term
count += 1
average = total / count


co = averager()
print(next(co))
print(co.send(10))
print(co.send(30))
print(co.send(5))

实现这一功能不是非得用协程,也可以用类或闭包,但在协程里,total和count都是简单的局部变量。

在上面两个例子中可以看到,使用协程都需要最开始调用一次next,这次操作一般称为“启动”(prime)。每个协程都需要启动,而协程也是函数,所以装饰器就派上用场了。

启动协程的装饰器

1
2
3
4
5
6
7
8
9
10
from functools import wraps


def coroutine(func):
@wraps(func)
def primer(*args, **kwargs):
gen = func(*args, **kwargs)
next(gen)
return gen
return primer

协程的终止与异常处理

.throw().close()

协程的返回值

协程是生成器函数,因此可以有返回值,此时协程必须是正常终止的,比如whilebreak之后。

本文主要整理自《Fluent Python》的第14章。

**迭代(iteration)**在数据处理中不可或缺的。当数据在内存中放不下时,我们需要偷一下懒(lazily),每次按需取一个数据项,这就是所谓的迭代器(iterator)模式。

Python 2.2(2001)添加了yield关键字,用以构造生成器(generator),生成器可达成迭代器的效果。而且,在Python社区中,生成器与迭代器同义。

Read more »

原书链接:线性代数及其应用

0.1 前言

完成微积分的学生学习起来更易接受。

本书特点

  • 提前介绍主要概念
  • 矩阵乘法的现代观点:定义和证明中使用矩阵的“列”,而非“元素”,核心课题是将矩阵与向量之乘积$Ax$视为关于$A$的列的一个线性组合。这种现代方法简化了很多论述,并将向量空间和线性系统的研究联系在了一起。
  • 线性变换:贯穿整本书,增强了本书的几何趣味。
  • 特征值和动力系统:特征值来源并应用于离散动力系统和连续动力系统。
  • 正交性和最小二乘法:与普通入门教材相比,本书对这些主题的讨论更为全面。
Read more »

数学分析八讲 原书链接,作者辛钦。

前言

非数学专业的工程师、经济学家等,一般会先行学习较为简单的微积分,到了某个时候发现需要更为牢固的数学基础。如果找一本《微积分学教程》来看,事实证明效果不佳。学习者要么无法安排足够的时间去学习,要么还没有足够好的数学基础,无法从研究中区分出哪些是原则的内容,哪些是较为微末的细节。

要满足这类学生的需求,所需其实有限。我的秘诀是:从一开始就拒绝充分详细地讲授哪怕只是阐述本课程牟一章的想法,而只限于讲授那些具有原则性的内容。我讲的更多地是关于目的和趋势、问题和方法、基本的分析概念之间的以及它们与应用之间的关系,而不是个别的定理与证明。但在有着主导作用和原则意义的概念或方法上,我则不吝时间,力求用各种手段,通过各种表述和直观形象等,尽可能明白而有效地把这些基本内容教给我的学生。有了这个基础,他们每一个人在需要更深入地研究数学分析的某一章节时,就能够独立地找到他所需的材料,然后进行研究,也就是说,可以自立地区分主要和次要、本质和非本质

Read more »

初听,“普通话”令人震惊。

1、导语:跟你的焦虑和解

焦虑,带着我们过去生活的匮乏,也带着对未来的担心和希望。焦虑的本质就是一种失控感。担心某些东西不在掌控范围内。担心上帝或命运不会善待我们,以至于忘了我们本能够掌控一些东西。

即使在二战集中营这样的环境,我们依然能作出选择。那么理论上,我们的生活中也可以做出不同的选择。

焦虑源于失控感,而失控感源于我们总是试图去控制那些我们控制不了的东西,却不愿对可控者承担起自己的责任。

控制力幻象:我们可以控制很多东西。认清现实后,又不甘心只能控制这么一点,看不到这一点的丰富。

不同的心理咨询的流派都在帮助我们重新建立控制感。

生活是一个修行的道场。

Read more »

来自美剧非典型孤独(Atypical)


Nobody’s normal

在剧中山姆被诊断为患有自闭症,还提到他是一个高功能自闭症,以及自闭症不能完全治愈。如果你看过《生活大爆炸》,也许会想到谢耳朵,其饰演者吉姆·帕森斯认为谢耳朵的表现很接近于阿斯伯格综合征。同时IMDB的剧集简介中提到了自闭症光谱。我想,有必要先了解一下这几个术语,下面相关术语的信息摘自维基。

自闭症

自闭症(Autism)为一种脑部因发育障碍所导致的疾病,其特征是情绪表达困难、社交互动障碍、语言和非语言的沟通有问题,以及日常上常见的,表现出限制的行为与重复的动作,明显的特定兴趣。不能进行正常的语言表达和社交活动,常做一些刻板和守旧性的动作和行为。自闭症的病因仍然未知,很多研究人员怀疑自闭症是由基因控制,再由环境因素触发。

部分自闭症患者可经过诊疗、实习及特殊教育,可改善他们的社交能力,而可参与主流教育及社交活动。但以现时医疗科技水平来说,并不可能完整根治自闭症,仅是提升自闭儿的功能

高功能自闭症

高功能自闭症(High-functioning autism,简称HFA),指智商中等或更高的自闭症患者,且多数具有语言能力,学习能力较佳、自闭倾向较不明显;但语言理解与表达力、人际互动与聊天的能力仍有困难的自闭症患者。

阿斯伯格综合征

阿斯伯格综合征(Asperger syndrome,简称AS),属一种发展障碍,其重要特征是社交与非言语交际的困难,同时伴随着兴趣狭隘及重复特定行为,但相较于其他泛自闭症障碍,仍相对保有语言及认知发展。亚斯伯格症患者的智力正常,其中有许多人智商偏高具有天赋,只有极少数的人属于高智商,经常出现肢体笨拙和语言表达方式异常等状况,偶尔会发出怪声音,但并不作为诊断依据。其症状一般在两岁前出现,并伴随患者终生,目前没有有效治疗方法,预后差。

自闭症光谱

自闭症光谱(Autism spectrum)是一种心理状况的谱系障碍,亦称自闭症谱系障碍或泛自闭症障碍,描述了一个被DSM-5(精神障碍诊断与统计手册(第5版))归类为神经发展综合征的症状群的范围。 被诊断为自闭症(autism spectrum disorder (ASD))的人必须存在下列两个症状。

  • 缺乏社交沟通与社交互动。(或社交及沟通上的广泛性异常)
  • 局限的、重复的行为、兴趣或活动。(或异常局限性的兴趣、高度重复性的行为)

自闭症光谱有三个主要项目:自闭症、亚斯伯格综合征、待分类的广泛性发展障碍。自闭症在光谱核心位置,而阿斯伯格综合征在手册(第5版)中被移除。


原书信息

陈海贤(动机在杭州),浙江大学心理学博士,中国临床心理学会注册心理师。曾在浙江大学心理中心任职,期间开设《积极心理学》的通识课,广受欢迎,被誉为浙江大学版的“幸福课”。

你大概也正处于某种“匮乏”当中,也因此,你的内心会有种种不安。这些不安一方面推动你去想象未来、远方、更好的自己,让你急着想要成长和改变;另一方面,也容易让你对自己、对世界采取一种防御的姿态,让你在自我怀疑中裹足不前。所以,你经常觉得自己敏感内向;你有关于未来生活的远大设想,却总会责怪自己没有足够的意志力去执行它;你一边焦虑自己变平庸,一边害怕竞争的激烈;你会为如何与他人相处头疼,会纠结于他人的负面评价;有时候你会害怕孤独,有时候又宁可回归孤独;偶尔,你还会感到空虚沮丧,并经常怀疑人生的意义……

如果是这样,那这本书就是为你写的。

如果你也感到焦虑,因焦虑而焦虑;总感觉时间不够用,但内心却深知,自己并没有利用好时间;不允许自己闲下来。

Read more »

此文内容整理自Coursera课程文本检索与搜索引擎(Text Retrieval and Search Engines)Part 1笔记在此

这一部分将更详细地了解VSM,考虑它的不同优化思路,以及借助于倒排索引实现信息检索系统(即搜索引擎)。

主要概念:

  • 关键词词频(Term Frequency,TF)
  • 文档频率(Document Frequency,DF)与逆向文档频率(Inverse DF, IDF)
  • TF transformation
  • Pivoted length normalization
  • BM25
  • 倒排索引(Inverted Index)与posting
  • Binary coding,unary coding,gamma-coding和d-gap
  • Zipf法则
Read more »

此文内容整理自Coursera课程文本检索与搜索引擎(Text Retrieval and Search Engines)

课程结构

Course Schedule

术语表

  • Text Retrieval(TR):文本检索
  • Information Retrieval(IR):信息检索
  • Natural Language Processing(NLP):自然语言处理
  • Information Need:信息需求
  • Document:文档
  • Query:查询
  • Relevance:相关度
  • Similarity:相似度
  • Ranking Function:排序函数
  • Vector Space Model(VSM):向量空间模型
  • Term:关键词(文档中的基本概念),可以是词、短语或ngram等
  • Bag of Words(BOW):词袋
  • Bit Vector:位向量
  • Dot Product:点积
Read more »
0%