刚刚参加的2013百度笔试题(自然语言理解部分)

刚参加的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("情况“})  因为没时间了,我写得比较简单