刚刚参加的2013百度笔试题(自然语言理解部分)
今年的第一场笔试,回忆一下,供大家参考,特别是打算下一年参加笔试的人参考
一共三道大题,实际上只有第三道题是自然语言理解部分。
简答题(30分)
1、什么是序列化和反序列化,简述其目的。
我写了存储和读取到内存,http://baike.baidu.com/view/160029.htm#3
2、网络的七层模型,http在哪一层
写对了物理层,和链路层,其余不写写什么,就写了IP层,协议层,通信层,应用层..... 真正的层是: http://baike.baidu.com/view/1868389.htm
3、以一段程序为例说明C语言编译执行的过程
算法题:(35分)
1、(15)以递归实现一段字符串中连续出现的最大个数,如aaabbcc, 为3,aabb为2, abc为1
2、(20)编辑距离算法。如the, that
the--->th
th---> tha
tha---->that
为3
这个题,突然发现我自己弄错了,最后做的一道题。写了两种方法,一种暴力查找(我只写了这一句话,没时间了,也没地方写了),一种是启发法(不一定是最准确结果,但应该是非常接近准确结果的高效率算法)
我是分别设了两个指针,p1,p2,
case 相同,same++,p1++,p2++;
case 漏掉,leaked++, p2++,
case 多余时more++,,p1++
我只写到这,但忘记写最终结果,最后结果应该是more+leaked
自己写的算法,不一定对,请大家指教。
三、应用题(35分)
关于百度新词(以“听风者”为例)
1、设计新词提取方法,并说出其应用场景(40%)
我:画了两张图,横轴为时间,纵轴分另为百度搜索框中的新增搜索频率和网页中新增频率,并画了几个阈值线和拐点。
2、怎么处理badcase, 两小问:
(1)“用字头上加一撇”,“*字头上加一点”(*字忘记了),怎么把“头上”,“加一”这样的短词给去掉
我:把“头上... 加一” 作为一个字处理,按“头上” “加一”之间的空间间隔加权,越远,权越小,记得《统计自然语言处理》的前言还是概论里,提的有结构提取的方法
(2)”神马情况“的处理,频率高但,不该算是一个字
我:计算 P("神马”),P("情况“, P("神马情况”,P("“神马”|“情况”)概率大小 与P("神马情况”)/ {P("神马”)* P("情况“}) 因为没时间了,我写得比较简单