新加坡Mozat-算法工程师-第1+2+3轮面试
面试概况
【一小部分题目忘记了】
2016/02/19 中午11:00-下午13:00
第一轮面试:1100-1130,机器学习
(1)设计一个系统,实现搜索引擎侧边栏的相关推荐的功能。
网页=》提取文本=》预处理(SEG,POS,NER,PARSE)=》实体抽取=》实体关系抽取=》构件知识库=》进行推荐;
(2)分词原理,3-gram中的四字成语怎么办?
n-gram
(3)词性标注的功能是什么?命名实体识别是什么?对句法分析的了解?停用词?
pos是识别动名词等等;
ner是识别人名,地名,机构名,时间等;
句法分析效率较低,对文本长度限制严格,例如stanford 的句法分析文本长度限制170个字符;
(4)设计一个系统实现实体抽取?
将实体抽取转化为标注问题,然后使用hmm模型进行训练和标注;
介绍了hmm的训练数据,模型的训练,模型的标注;
(5)HMM的参数包含哪些?其训练以及预测过程是怎样的?
介绍了hmm的三个组成(一个隐马尔科夫链,一个状态序列,一个观察序列)
三个参数(状态转移概率矩阵,发射矩阵,初始状态分布)
训练算法(mle算法和em算法);
预测算法(viterbi算法);
(6)稀疏矩阵的存储?数据平滑?
稀疏矩阵转换为1维线性结构;
拉普拉斯平滑,防止概率为0的情况出现;
(7)MLE与EM
mle的原理是大数定理,适用于有监督训练;
em的原理是使用上一次的结果进行迭代训练,用于训练含有隐藏变量的情况,适用于无监督训练;
第二轮面试:1130-1215,后台开发
(1)熟悉MySQL吗?使用什么存储引擎?
用过MySQL,负责编写后台API中的php代码sql语句;
InnoDB(默认的)
(2)InnoDB和MyISAM的区别?原理?
InnoDB采用B+树,叶结点为数据(部分指针),支持范围查询;
MyISAM采用B-树,叶结点为指针;
(4)如何实现1小时内只能登录5次?
设计一个登录日志表,记录用户登录信息;
(面试官提示:使用Redis缓存数据库)
(5)http事务解析过程?
域名解析=》dns解析=》tcp连接=》http请求=》服务器解析=》web root目录=》解析页面文件=》html代码=》浏览器解析html代码=》下载资源文件
(6)如何实现n条数据随机取m条?并证明概率是m/n?可否通过一次遍历实现该功能?
一个n序列,一个m序列,m次随机,从n中选取,如果冲突,就再随机;
一个n序列,以m/n的概率随机选取;(面试官给出的方法)
(7)如果数据n不确定,随机取m条,如何实现?
前m条全部取出,然后第m+1条,以1/(m+1)的概率和前边一条数据置换,依次类推;
(8)Apache和Nginx对比?
Apache多进程,占用内存,消耗资源;
Nginx多线程,节省资源,更适合反向代理以及静态文件,适合用于虚拟机;
第三轮面试:1215-1300,CEO谈心
(1)想了解公司哪些方面?
技术团队;
(2)未来三年计划?
个人能力(技术方面,团队协作)
(3)薪资期望?
4000sg
(4)业余爱好?
跑步,读书,徒步