百度NLP三面
首先,面试官根据项目经验进行提问,主要是自然语言处理相关的问题;然后写代码题,字符串处理和数字运算居多;再者是一些语言基础知识,百度用的linux平台,C++和python居多。下面列出我面试中的一些问题:
- 文本挖掘中,分词算法?如何选取特征?如何进行相似度计算,文本聚类结果如何评估?
- 分词时,为了提高效率,怎么存储词典?(键树)如何压缩存储?
- 一个字符数组中,每个字符都出现了3次,只有一个出现了2次,如果快速找出这个出现2次的? 可以参考《编程之美》中的一个题。
(1)先排序再找,慢!
(2)hash,耗空间
(3)位运算 - 使用 collabedit 写代码。很多公司的电话面试都会使用collabedit 来测试面试者的编码水平。比如美团、微软、百度。 输入:数组 int a[n]
要求:去掉连续的重复数字,
输出:新数组
例如:1,2,2,2,1,3,5——> 3,5 - C关键字 entern用法,define和const区别
总结:基础知识需要有,但是更看重编码能力。如果写代码时表现优秀,可以弥补专业的不足。所以咯,还是要刷题刷题,leetcode!
基本的要求:熟悉linux,会写shell脚本,最好会python
基本的NLP知识,比如分词,词性标注,专名识别等等
数据挖掘或者机器学习的算法,比如KNN,决策树,逻辑回归,SVM之类的
厚积薄发,行胜于言@飞鸟各投林