面试攻略:第一次面试研发岗
中国搜索(研发工程师):两面
一面:具体讲讲简历上的有关项目
一面主要针对自己简历上写的项目经历,问的超级细
我的一些主要问题:
1.机器翻译中集外词具体是怎么替换的?
根据双语分词平行预料可以用giza++得到一个双语词典,对于集外词的翻译,用一个和他距离最近的集内词替换,翻译后通过查词典再把这个词替换回来。
2.中文分词用的是双向lstm+crf,具体是怎么实现的,整个网络的实现(直接写代码),详细讲一下(一层一层的主要tensorflow语句)
3.LSTM与RNN相比有什么优点?
可以解决长句子依赖的问题,,,有三个门,,,
二面:编程题直接写代码实现(考虑时间复杂度和空间复杂度),一些相关知识(与平时工作环境有关)
1.写一个程序,a.txt,b.txt是两个文档,每一行都是一个URL。求在a中但不包含在b中的元素。
我用词典实现的,还有一个更好的方法数据结构是用集合实现,能占用更少的空间,另外考虑还有什么优化方案可以减少时间复杂度?
2.python脚本中为什么要在目录前加一个r?
r是保持字符串原始值的意思,就是说不对其中的符号进行转义。因为windows下的目录字符串中通常有斜杠"\",而斜杠在Python的字符串中有转义的作用。例如:\n表示换行如果路径中有\new就会被转义。加上r就是为了避免这种情况。
3.写一个程序,判断一个链表有没有环?
http://www.cnblogs.com/zhyg6516/archive/2011/03/29/1998831.html
https://www.cnblogs.com/kunpengv5/p/7784791.html
4.c++基本的知识点,常量
https://blog.csdn.net/xuxiatian/article/details/51247972
5.平衡二叉树(数据结构),为什么被称为平衡二叉树?
平衡:为了保证平衡,AVL树中的每个结点都有一个平衡因子(balance factor,以下用BF表示),它表示这个结点的左、右子树的高度差,也就是左子树的高度减去右子树的高度的结果值。AVL树上所有结点的BF值只能是-1、0、1。反之,只要二叉树上一个结点的BF的绝对值大于1,则该二叉树就不是平衡二叉树。
6.虚函数有没有听说过?(完全不知道)
7.多线程和多进程有没有使用过?(宝宝的操作系统真的很烂,不懂ing)
8.反向传播算法,讲讲依存树
9.讲讲优化方法,adam,(哈哈哈哈,内心是崩溃的,前几天组会师弟刚讲了优化方法的专题,然鹅在我脑海中留下的印象只有找局部最优解,跳出来找局部最优解,很快速,adapation,还是讲不出来)
10.机器学习算法还了解哪些?SVM,马尔克夫模型讲一下,决策树,决策森林
11.常用的Linux系统的命令:查看程序在哪个端口跑,查看程序是否跑上了,除了top之外的操作,比如上面都占满了看不到自己的程序,查找一个文件,查找这个目录下有没有某个文件,find的参数有哪些,建目录,建下属目录
总结:简历很重要,要把简历上的东西掌握,还有必须提高代码能力,一方面自己搞的东西要会,另一方面,一些代码实现的简单算法要会,比如写到了TensorFlow,别人就会问这个,c++,即使全忘了的话也要掌握一些基本的知识,最好买一本求职宝典,练习编程题或者刷leetcode
自己有些浅尝辄止,生活从来都不简单,可以用单纯的心面对生活,但不能用简单的心态面对工作,若自己简单对待,那回报也依旧简单。
我是个大人了,要保护好心里的那个小孩子!
北京的每一处风景背后都是精心的设计,正是因为在意,正是因为深入研究,才能把握大众心理,给我们一个美丽的现在,我也想成为这里的一份子,感受这里的美好,建设这里的美好,悄悄地默默地成长,润物细无声,要渐渐长成自己想成为的模样,如此才能不负年华!