人生第一次面BAT,记录一下,为明年找工作赞经验,毕竟网上很少自然语言处理相关的面经。
先来点干货!
面试流程
1. 自我介绍
2. 谈谈项目
3. 上黑板写代码
按照上述流程分为三块,如下。
简单的自我介绍了一下
我:我做的项目是关于自然语言生成,…
面试官1:为什么不用生成式的方法来做呢?
我:我尝试了char-rnn和seq2seq的方法,…
面试官1:rnn是怎么运行的你能说一下吗?
我:巴拉巴拉…
面试官1:什么是char-rnn,你能画一下rnn的结构图吗?
我:OK,(开始画画画,画完解释了一通)
扫描二维码关注公众号,回复: 1372878 查看本文章面试官2:那如果是seq2seq的结构是什么样的你能画一下吗?
我:OK,(继续画,此时我给自己挖了一个坑)这是不加attention的seq2seq,加上attention,encoder后的编码向量就不是固定的了(此刻的我觉得自己回答的还蛮好)。
面试官1:那你能画一下attention的结构吗?是怎么做的?
我:我有点忘记了,能翻下笔记本吗?(思考了一下,大脑一片空白,想想前两周每天都在研究attention啊,年纪大了记性不好,出来翻了下笔记,这么熟悉的attention啊,那一刻怎么就不记得了!!!)
面试官1:没事,那来道代码题吧。
面试官2出题,一个struct含有start,end属性,现在有一个这样结构的数据集,统计这个数据集中具有相同start和end的数据有多少个?【 简化一下就是统计{[0,2),[0,2),[2,4)…}中[0,2)、[2,4)…分别有多少个?】
解题思路:输入格式为一个存放string的list
data = ["0 2", "2 4", "3 6", "0 2", "2 4", "2 4"]
ret = dict()
for d in data:
if d in ret:
ret[d] = ret[d] + 1
else:
ret[d] = 1
for d in ret:
print(d+":"+str(ret[d]))
当时跟面试官应该没沟通彻底,隐约感觉他想要的输入是struct类型。
然后就结束了。
基于本次面试,未来需要做的准备:
1)准备一个完美的自我介绍
2)刷LeetCode
3)熟记主流框架公式
4)项目深入了解