An Introduction to Functional Programming

昨天在振声苑做了一个叫做An Introduction to Functional Programming的talk,这周事情尤其多,就没有做很多准备,没想到的是竟然有那么多学弟学妹来听,但很遗憾这个talk需要有一些程序设计的基础,可能对18级的来说相对难以接受。

教学相长,在准备这个talk的过程中我开始思考函数式编程的本质是什么,之前一直觉得这是个非常炫酷非常强大的工具,但现在我才发现函数式编程的优势全都是“不可变”和“高阶函数”带来的,而它的缺点也是由“不可变”带来的,还是需要针对实际的问题选择不同的工具。但领略函数式编程中的思想,能够在以后的学习工作中多一种强大的思维方式,也是非常不错的。

Read more
Neural Machine Translation by Jointly Learning to Align and Translate

Neural Machine Translation by Jointly Learning to Align and Translate 是神经机器翻译(Neural Machine Translation, NMT)的代表性论文,指出encoder-decoder将源语言句子压缩成一个固定维度的向量是造成性能瓶颈的主要原因,并提出了基于Attention的模型,有效地处理较长的句子。

Motivation

目前大多数神经机器翻译模型都是基于encoder-decoder的,而且是将源句子encode成一个固定大小的向量。这篇论文认为固定大小的向量会成为性能的瓶颈,特别是句子长度比训练集中的句子还要长的时候,Cho et al. (2014b)也表明,当句子长度增加时,RNNenc的性能会急剧下降。于是这篇论文提出了基于Attention的模型,能够有效地处理较长的句子。

Read more
Data-Driven Response Generation in Social Media

Data-Driven Response Generation in Social Media 是个比较古老的(2011年)论文了,做的事情是通过统计机器翻译(Statistical Machine Translation,SMT)来做回复生成。什么是对话生成呢?即给定用户的任意的一句话,输出一个合适的回复。

有这样一个发现,在自然的话语中,相邻的句子间常常有较强的结构上的关系(Hobbs, 1985),比如:

Stimulus: I’m slowly making this soup…… and it smells gorgeous!
Response: I’ll bet it looks delicious too! Haha

其中”this soup”对应”it”,”smells”对应”looks”,”gorgeous”对应”delicious”,这和翻译是很相似的,所以我们想能不能使用SMT去做回复生成呢?

Read more
数据结构课程设计 公交线路的优化查询问题

这是我数据结构课设的题目,我觉得我在这道题目里的做法是比较经典,比较有启发意义的,对以后图的优化问题提供了一个比较好的思路。我在课上做的slides可以点击此处下载。

题意

问题描述

最短路径问题是图论中的一个经典问题,其中的Dijkstra算法一直被认为是图论中的好算法,但有的时候需要适当的调整Dijkstra算法才能完成多种不同的优化路径的査询。

对于某城市的公交线路,乘坐公交的顾客希望在这样的线路上实现各种优化路径的查询。

Read more