【面试经验分享】十分值得一看! 研一下 您所在的位置:网站首页 俄罗斯套娃底部写的什么意思 【面试经验分享】十分值得一看! 研一下

【面试经验分享】十分值得一看! 研一下

2024-06-12 13:07| 来源: 网络整理| 查看: 265

青藤云安全(2月26日) 机器学习算法实习岗 微信视频面试,15分钟。主要问了下简历上做阿里云比赛的经历,后未联系,预计已挂。 主要存在的问题: 1)做的东西太简单太基础,不够看,导致面试官其实没啥可问的; 2)对自己做的项目不够清楚,模型怎么融合的说不上来;(xgboost,np.hstack) 3)在项目中遇到了什么问题,怎么解决的,收获了什么;(star模式) 4)缺乏深度学习、BERT等相关的了解; 5)没有论文阅读、代码复现的经验,工作中需要; 6)没有考六级; 7)说话逻辑性不好,断断续续的,(少说,“额,然后”,“就,那个”这种词) 返回目录

陌陌一面(3月3日)自然语言处理实习岗 acmcoder平台面试,1小时,主要是现场做了一道题,还有就是问了下阿里云比赛那个项目,一面过了。 主要存在的问题: 1)现场做题的能力还得加强,虽然题目简单,但思路比较乱。 流程大概就是,面试官让我实现个split,然后我直接str.split()写出来了, 然后她让我不要用现成的方法,直接代码实现一下,然后我就写了个for循环,然后切分字符串,这儿写对了, 然后她让封装成函数,然后传入一个待切分次数的参数,然后这儿实现也简单,也对了, 再之后她说还有两个问题,一是分隔符长度可能不是1,二是如果字符串最后几个字符刚好是分隔符,切分结果的最后面还要有个空字符串。 到这儿的时候,我当时感觉好像要调整代码结构,然后思路就有点乱了,写了一段好像不对,没写出来。

当时写的代码 def my_split(str, s, times): s_len = len(s) temp = '' result = [] left = 0 for i in range(len(str)): if (len(result) == times): result.append(str[i:]) break if str[i:(i+s_len)] != s: temp += str[i] else: i += s_len result.append(temp) temp = '' continue if (i == len(str) - 1): result.append(temp) return result print(my_split("abc,ef,ee,aaa,", ',e', 2)) 后来复盘写的代码 def my_split(str, s, times=-1): s_len = len(s) # 待切字符长度 str = str + s # 拼接一下 temp = '' result = [] # 待返回 left = 0 next = 0 for i in range(len(str)): if i 1: w = words[0].split("/") for i in w: word_dic1[i] = words[1] else: word_dic1[words[0]] = words[1] for file_path in file_list: # 替换 with open(file_path, "r") as f: content = f.readlines() str_list = [] str = "" for i in range(len(content)): for j in range(len(content[i])): if content[i][j] in word_dic1: temp = word_dic1[content[i][j]] str += temp else: str += content[i][j] str_list.append(str + "\n") str = "" # 写入文件 with open("out_" + file_path, "w") as f: for str in str_list: f.writeline(str)

问:线上的话,这个代码怎么优化? 我说,可以用散列表解决一下查找简繁转换表这块。 面试官说,散列表并没有优化啥,主要耗时操作在IO上,这个字符串处理是不是有问题? 我说,我这儿全部写一遍确实有问题,应该是只修改需要做简繁转换的字符,做写操作。

总体评价: 1)编码能力还可以,但是读题目不够仔细,还有代码细节小问题比较多。 2)看了前面几轮的面试评价。简历上的术语不要太多,这些术语无非就是想说明做了很多东西,但写的很多都是面试官感兴趣的、想问的。 能写在简历上的就得是确定会的,问不倒的。如果问了之后回答不清楚,反而成为减分项。

自我总结: 1)没想到会问课程的东西,一来可能学得也马虎,二来面试前没有复习一下,有些问题回答得不清楚; 2)现场编程细节还是注意不够,暴露出来潜在的习惯问题。 两方面的习惯问题,一是平时写代码经常简单地随便写完大体,然后再调试细节,没有在写代码的过程中关注细节问题,等于给自己挖坑。 二是经常题目看个大概有思路就开始写了,对题目中的细节关注不够,没有提前把需求里的点理清楚,也是在给自己挖坑。 返回目录

将门创投(3月17日) 自然语言处理实习岗 20分钟,微信电话。给了口头offer,已拒。技术战略部,部门主管面试。 问了下,是否在北京,最快何时能到岗,一周能实习多久,还有薪资要求,以及对于他们的业务需求有没有兴趣之类的。 还有就是给我介绍了下他们公司,以及介绍了下他们的初创团队,业务需求之类。并约时间周内和他们CTO聊一下。 (主要考虑到他们公司没有专职的NLP工程师可以带我,当天下午拒绝了) 这周开始在BOSS直聘以及拉勾网上海投简历。 返回目录

睿企科技(3月18日)自然语言处理实习岗 1个小时,笔试。题目比较简单,不过时间有点紧。 1)元组与列表的区别。 2)写一个动物类(Animal),初始化函数输入名称(name),类型为字符串,再写一个狗类(Dog)继承动物类,初始化函数输入名称(name)和颜色(color)。 3)DataFrame:

import string import random import numpy as np import pandas as pd 随机生成一些名字和分数 name = set() while len(name) 'name': name, 'class': [random.choice(classes) for _ in range(100)]}) df_class = df_class.sample(frac=1).reset_index(drop=True) df_class.head() 题目 1: 按照名字合并分数和班级 题目 2: 取出 A 班的成绩表,按照分数降序排序 题目 3: 计算 A、B、C 班的平均分

4)训练集、验证集和测试集的区别是什么,为什么需要验证集? 5)介绍你使用的深度学习框架(如 TensorFlow、PyTorch)。 6)介绍卷积运算的过程,比如输入一个 3通道,尺寸为 (5, 5) 的图像,如果要输出 6 通道,尺寸为 (3, 3),卷积层的参数应该如何设置? 假设输出矩阵 A 的尺寸为 (6, 3, 3),它的第一个数字A[0, 0, 0] 是如何计算出来的。 7)排好序的数组,从中找到相加等于target数字的两个数的所有可能 比如,输入 数组:[2, 3, 4, 7, 10, 12] Target数:14 输出: [(2, 12), (4, 10)] def get_all_combs(array, target) 8)编写正则表达式,匹配身份证号码、电话号码、手机号码或银行卡号,要求写出两个或以上的表达式。 9)输入一个变形数组,及某个数字,输出这个数字在变形数组中的位置 def find_num(array, num) 要求算法复杂度为 log(n) 变形的方法是将一个排好序的数组某个位置之前的数放到数组末尾,比如 原始数组为: 2 3 6 9 10 12 24 34 得到以下变形数组(将2 3 6放在了数组末尾): 9 10 12 24 34 2 3 6 比如,输入24和变形数组,输出 3 说明: 不需要写变形的code,输入已经是一个变形的数组了 不知道具体将多少个数放在了数组的末尾 返回目录

交叉科技(3月18日)自然语言处理实习岗 2个多小时,笔试。题目有点难。 1)100!(100 阶乘)最后有多少个连续的零!。例如,12!=479001600 结尾处有两个连续的零。 2)匹配生日:你在一个满屋子有 N 个人,你问他们的生日是什么时候。假设每人生日是 365 天中随机的一天,至少有两个人共享同一个生日的概率有多大? 3)什么是蒙特卡罗方法?设计一个 Monte Carlo 实验来估计π?(或其他类似的 monte carlo 实验) 4)国王要求从他国家的 10 个地区各征收 1000 金币的税。每个地区的税务员在年底都会给他带来一袋金币。一个线人告诉国王,一个税务员作弊,给的硬币总是比标准硬币轻 10%,但他不知道哪个税务员作弊。国王知道每一枚硬币的重量应该正好是一盎司。国王怎么能准确地用一次称重来识别那个骗子呢? 5)你站在半径 R 的圆形区域的中心。该区域周围有一个低铁丝网。附在铁丝网上的是一条饿狗,它喜欢吃任何它能抓住的人。你可以以速度 v 跑。不幸的是,狗可以以 4 v 的速度跑。如果你试图逃离战场,狗会尽力抓住你。你的跑动策略是什么,不用喂狗就可以逃出球场? 6)输入是一个 32 位无符号整数 A。现在要求输出 32 位无符号整数 B,满足 B 的二进制表示是 A 的二进制表示的颠倒。 例子 输入:10 输出:5 解释:10 的二进制表示是 1010,二进制表示 0101 对应数字 5 输入最多可以是 9 位数 7)我们给你一个三角形的矩阵(见例子) 你的任务是找出自顶向下的最短路径。路径上的每一步只能移动到下一行中相邻的结点上。 输入: [2 2], [1 1,4], [6,2 2,7], [4,1 1,7,3] 输出:6 解释:自顶向下的最小路径和为 6(即,2 2 + 1 1 + 2 2 + 1 1 = 6)。 8)给定 n 个非负整数,每个那一列柱子的高度(如下图),计算最多能接多少水。

示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 解释:数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示柱子的高度,蓝色部分代表水,这个例子可以接 6 个单位的雨水。 9)Explain how to view (soft-margin) SVM as a penalization method (i.e.,explain the objective SVM as a Loss+Regularization term) 10)Explain the principle of the stochastic gradient descent algorithm. What is the benefit of using stochastic gradient descent (instead of gradient descent)? 11)What is overfitting? How to prevent overfitting (in both traditional method and deeplearning)? 12)Explain what are the gradient vanishing/explosion problems in RNN? (we need the underlying mathematical reason) 13)Consider the image captioning problem. Given a picture as the input, your algorithm should output a sentence describing the picture. (a)Describe a neural network structure that can do this. (if you use well known CNN or RNN structures, you don’t need to go into the details. Just say how to use them (what the input, what is the output).) (b)Describing the training process (what is the training data? what is the objective?) ©Describe the test process (In the testing phase, give a picture as the input, how your algorithm output a sentence describing the picture.) (d)Suppose we want to have a parameter to determine the diversity of the output sentence (on one extreme, the output is almost a deterministic sentence, and on the other extreme, the output is almost a random sequence) This can be done by adding a temperature parameter to the softmax function. How would you do it? (there may be more than one reasonable answers.) 返回目录

感易智能(3月19日)自然语言处理实习岗 电话面试,30分钟。未通过。 面试过程: 1)自我介绍 2)介绍下参加的比赛 3)比较下ngram和tf-idf 4)为什么ngram更适合这个场景 5)还用过别的方法吗 6)最后集成用了哪些模型 7)比较过不同方法的差异吗,为什么集成后效果会提升 8)解释一下方法之间的差异 9)说一下CNN和全连接层的差别,是如何把参数变少的 10)为什么这样做可行,这种简化是满足了什么条件 11)说一下平移不变性,subsampling 12)说一下word2vec的原理 13)词向量是怎么学出来的 14)还记得训练过程中的小trick吗,层次softmax,nagative sampling,(没回答好) 15)了解NLP一些任务,比如问答,阅读理解之类的 16)了解最新的技术吗 17)能说一下Transformer 18)可以介绍下多头注意力机制,怎么实现的(没回答好) 19)attention的权重是怎么训练出来的(没回答好) 返回目录

千芯科技(3月19日) 深度学习/人工智能实习生 我看JD里有NLP相关的就投了,没想到是一个sb公司。 约好的面试时间,迟到了半小时(因为他们时间安排不合理,上一个还没面完)。 面试居然是多面一,好几个人面,甚至HR都在。 一上来就问CV的东西,我还以为自己投错了岗位。 我说我是做NLP的,另一个人问我更喜欢NLP还是ASR。 还问我一般用啥模型,我说了几个,人说这不都是机器学习的吗,(内心os:机器学习的方法就不能用来做NLP了?) 问我用没用过最新的技术,我说去年预训练模型BERT很火,我用BERT跑过MRPC, 问我roBERTa知道不,我说没用过roBERTa,人说那你还说自己是做NLP的,roBERTa都不知道。(内心os:一个BERT变种,这都能奚落人?) 然后没人再问问题,HR说面试结束了,让我退群。 (迟到半小时,面试十分钟,还不尊重人,真是一个sb公司) 返回目录

微播易(3月20日) NLP算法实习生 笔试,1小时,做了一道简单的编程题,tf-idf, 生成文档的向量表示。代码如下。

读入文件 content = None # 文本列表 with open("./segmented.txt", encoding="utf-8") as f: content = f.readlines() content[:5] ['\ufeff好 了 我 要 放大 招 了 我们 班 的 美女 们 看 压轴 的 哦 有没有 小 啊\n', '小 舞王\n', '现在 的 小朋友 都 这么 6 的 吗\n', '不断 给 你们 带新 的 作品 新 的 造型 我 是 咖啡师 因为 有 你们 在 我 才能 一直 坚持下去 点 赞点 赞\n', '老 胳膊 老 腿 了 不 接受批评 哦\n'] 预处理 content[0] = content[0][1:-1] for i in range(1, len(content)): content[i] = content[i][:-1] content[:5] ['好 了 我 要 放大 招 了 我们 班 的 美女 们 看 压轴 的 哦 有没有 小 啊', '小 舞王', '现在 的 小朋友 都 这么 6 的 吗', '不断 给 你们 带新 的 作品 新 的 造型 我 是 咖啡师 因为 有 你们 在 我 才能 一直 坚持下去 点 赞点 赞', '老 胳膊 老 腿 了 不 接受批评 哦'] 文档总数 n = len(content) n 4570 扫描文件和计数 docCount = {} tf = [] content_lst = [] for i in range(len(content)): word_lst = content[i].split(' ') content_lst.append(word_lst) tfCount = {} for word in word_lst: if word != ' ': if word not in tfCount: tfCount[word] = 1 if word not in docCount: docCount[word] = 1 else: docCount[word] += 1 else: tfCount[word] += 1 tf.append(tfCount) tf[0] {'好': 1, '了': 2, '我': 1, '要': 1, '放大': 1, '招': 1, '我们': 1, '班': 1, '的': 2, '美女': 1, '们': 1, '看': 1, '压轴': 1, '哦': 1, '有没有': 1, '小': 1, '啊': 1} 词表大小 dic_cnt = len(docCount) dic_cnt 8927 import math vect = [] # 向量表示,用tf-idf值 for i in range(len(content_lst)): word_lst = content_lst[i] tf_idf = [0] * dic_cnt cnt = 0 for word in docCount: if word in word_lst: idf = math.log(n / docCount[word], 2) tf_idf[cnt] = tf[i][word] * idf cnt += 1 vect.append(tf_idf) print(docCount['了'], tf[0]['了'], len(vect)) print(math.log(n / docCount['了'], 2)) 916 2 4570 2.3187746618484883 print(vect[0][:30], len(vect[0])) [4.723350222308707, 4.637549323696977, 2.3015529213199013, 5.203782139558557, 12.157978449945432, 9.573015949224276, 5.543268605830224, 9.157978449945434, 3.0902199053087824, 8.350623527887828, 6.514122260170708, 5.403090947781964, 12.157978449945432, 5.968153891065415, 7.29999745481786, 3.340994826690051, 5.180698526445516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 8927 print(vect[1][:30], len(vect[1])) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.340994826690051, 0, 11.157978449945432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 8927

返回目录

东方棱镜(3月20日) 算法实习岗 约好了面试时间,然后被放鸽子,联系不上HR了。。。。 返回目录

微播易(3月20日) NLP算法实习岗 电话面试,30分钟。 1)讲下做文本分类的项目 2)准确率怎么定义,准确率高意味着什么,召回率高意味着什么(没答好) 3)如何衡量两个分类器的好坏(没答好) 4)用混淆矩阵的作用是什么 5)如何把混淆严重的两类分开(没答好,应该是特征工程这块) 6)对NLP哪个细分领域有比较深入的研究 7)对工程,还是科研更有兴趣 8)介绍了下他们有深度学习/多模态方面的业务需求 返回目录

交叉科技(3月20日)算法实习岗 迟到了半小时,因为HR把这事给忘了。CEO面试,微信电话面试半小时。(感觉会给offer) 主要是看简历问了些问题,基本这些问题之前面试都问过了,所以回答地挺好的。 其他问题的话,包括LDA,word2vec,bert的原理之类的,也有所准备,回答的也蛮好的。 然后介绍了下他们在做一个根据新闻事件预测股票涨跌的需求,然后问了下有没有兴趣,目前有几个offer,一周能实习几天之类的问题。 返回目录

微播易(3月23日)NLP算法实习岗 电话沟通,10分钟左右。后来没联系,感觉应该没通过,微播易两轮面试都答得不好。 算法负责人是北邮的一个学长,问的问题也偏基础,没有答好,挺遗憾的。

1)对深度学习有哪些了解 2)做文本分类有用过其他的方法 3)朴素贝叶斯效果不好,有没有什么改进思路 4)textcnn有做过吗 5)cnn的输入输出是什么 6)对pytorch,TensorFlow有哪些了解 7)对实习有哪些期望 8)一周可以实习几天 返回目录

有鱼科技(3月23日)算法实习岗 电话面试,20分钟左右。已挂。 1)问了下个人情况 2)讲一下项目 3)讲一下tf-idf 4)讲一下word2vec的负采样 5)文本分类有没有试过其他方法 6)问了下数据结构的问题,最长递增子序列(动态规划)、快速排序(以及计算复杂度)(这块没回答好,不熟) 返回目录

鲸航科技(3月23日)语音识别算法实习岗 视频面试。半个多小时。然后给了口头offer 1)面试主要讲了下项目 2)问了准确率,回归率,分类与回归的区别,分类方法等各种基础问题 3)然后就是,面试官介绍了下他们公司的业务啥的 4)然后问有没有兴趣做语音识别语言模型这块 5)这个是北邮校友的公司,感觉对北邮人很开放,所以聊的挺愉快的,希望我能去

返回目录

亚信科技(3月23日)算法实习岗 电话面试,20分钟。可能未通过。 他们这边主要是做聊天机器人,我对这方面不了解。

返回目录

百度(3月24日)数据挖掘实习岗 视频面试,一个小时,问了一些机器学习的问题,然后做了两道算法题。面试过程非常友好。 我这问题回答地都比较好,然后算法题也写对了(当然应该不是最优解法)。 (总共应该是有两轮技术面,加一轮经理面) 未联系,可能是因为岗位不对口,未通过。

问题包括: 0)为什么研一就出来实习等个人问题 1)对图像这方面感不感兴趣 2)讲一下xgboost,还有就是向量表示方法 3)xgboost和GBDT的差别 4)讲一下随机森林以及它的优点 5)讲一下后向传播算法 6)python你常用的库有哪些 7)python2和python3的区别(除了语法上有些区别之外,其他不清楚) 8)word2vec了解多少,讲一下 9)讲一下CNN和RNN的区别,以及优缺点,使用上有什么区别 10)平衡二叉树相比于普通树有哪些优点 11)监督学习和非监督学习的区别 12)讲一下自监督学习(这块不清楚,我问是不是和强化学习差不多,然后我讲了下强化学习的) 13)其他问题,忘记录音了,不记得了

编程题目如下: 1)一个循环有序数组,比如[4, 5, 6, 7, 8, 1, 2, 3],找出数组中的最大值

def compute(lst): i = len(lst) // 2 if len(lst) lst[i+1]: return lst[i] else: first = compute(lst[:i]) return first if first != -1 else compute(lst[i+1:])

2)跳步计算,查了下,是一道LeetCode原题 比如[2, 3, 1, 1, 4],每个位置是可以跳的最大值,问最少可以跳几步到最后一个位置。示例的答案是2

def compute2(lst2): temp_lst = [] # 保存状态信息 steps = [] # 保存最终步数信息 if len(lst2) == 0: return temp_lst.append([lst2[0], 0, 0]) while len(temp_lst) > 0: # 取数据 data, index, step = temp_lst[0] temp_lst.pop(0) # print(data, index, step) # 添加最终步数 if index == len(lst2) - 1: steps.append(step) continue for i in range(1, data+1): if index+i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有