NLP面试

1. NLP工程师的职责和工作内容

注:以下五个问题难度递增

  1. 分类问题:文本分类、情感分析(二分类和多分类);
  2. 匹配问题:检索与某句话类似的话,或者与它相关的回答。如kaggle的quora question pairs比赛;
  3. 翻译问题:文本翻译;
  4. 结构化预测:将一段文本转化为结构化的输出序列,如将文本中的词进行词性标注,语法树生成;
  5. 人机对话:建模为马尔科夫决策过程,当前要采取的动作和上一个状态和动作有关,代表性的系统是多轮人机对话系统,如何根据当前用户的话和最近的上下文信息进行回复。(PNN、人机对话)

2. NLP工程师的技能树

  1. 机器学习常用算法(必须):
  2. 深度学习(必须):搞清楚原理,如RNN及其变种
  3. 词向量表示方式:one-hot、BoW、n-gram、TF-IDF、word2vec、sentence2vector
  4. 文本分析:包括分词tokenize、停用词stopwords、关键词提取、意图识别、词性标注POS-Taging(标注名词、动词、形容词等)、命名实体识别named entity rocignition(标注人名、地名、时间、机构名等)、依存句法分析(找主谓宾,构造依赖树)。可以参考jieba,NLTK,gensim
  5. 多轮对话:如何实现?
  • 首先对用户的输入进行分类(专业话题or闲聊话题),根据分类结果不同匹配不同的库,然后向用户返回不同的结果,根据MDP实现多轮对话,见rasa项目
  1. 知识图谱:用于搜索、闲聊

3. NLP面试常见问题

  1. 机器学习问题
    LR、SVM(推导及原理)、树模型(xgboost推导及原理)、集成学习(原理和区别)
  2. 深度学习(重点)
    CNN、RNN、LSTM、GRU、过拟合、dropout原理、梯度消失梯度爆炸、BN、SGD、Adam
  3. 其他(重点)
  • word2vec:两种训练方式(skip-gram和cbow)(重点)
  • 为什么用哈夫曼树做优化
  • textrank(用户关键词提取)
  • LDA(用于关键词提取)
  • 余弦相似度(用于文本匹配,精确度较高)
  • simhash(更加适合于文本比较长的匹配)
  • elasticsearch(搜索引擎数据库,可以加快搜索匹配过程)

你可能感兴趣的:(自然语言处理,机器学习)