百度Q-T语义一致性比未获奖 (总结)

           应该说参加这个比赛很累,完全低估了自然语言处理的难度和复杂性。不过经过这个比赛,熟悉了自然语言处理的分词ICTCLAS和句法分析Stanford Parser建立句法树进行处理的流程,同时也写了海量的正则表达式用来问题分类,还有就是理解了自然语言处理是多么的难。

          首先,讲一下我对问题的理解。我的理解可以将问题划分为 问题分类,问题关键词匹配和 问题语义理解三部分。

          首先说一下问题分类,问题分类,我们将问题拿过来,首先想到的就是问题的所在的领域。

          第一次尝试:  我们参考了一些国内的和国外的问题分类模型和文章,将问题按照领域分类,人物类、历史类、电影、汽车呀、娱乐呀等等的,其实也想跑到搜狗的细胞词库下载了海量的分类词库词库过来使用。不过后来发现这种方法效果不好的,因为首先百度比赛的时候每对句子之间的相似度其实是挺高的,而且只是句子的表达和句法不同而已,基本上每个句子都是属于同一个领域的。

        

           第二次尝试: 我们按照问题的疑问词和问题的内容对问题进行分类,即对问问题的目标(典型的例子:1 人民大学在哪里?(地点类)人民大学怎么样(评价类)?人民大学的校长是谁(人物类)?)。因为标记的数据只有800条,就这800条,也标注很累的了。如果使用统计的方法,很容易就可以确定特征值提取和选取正则表达式进行分类的。现在我们因为缺乏语料库,只能人工手动标注了这800条数据,还是很少了。对着这800条数据,编写了好多好多的正则表达式来方便对问题进行分类。这个就是导致我编写了超过80条以上(如果包含使用|,区分的表达式数目)的正则表达式 ~ ~ 。

     

           第三次尝试:这个时候就是用ICTCLAS分词程序对句子进行分词。分词之后,直接比对A句子中的词语和B句子中的词语的重复出现的数目了。典型的就是A中的词语在B句子中出现的,然后呢B句子中不在A句子中出现的词语的数目要很少。当然这一步的副作用就是,我们需要编写海量的同义词库。人工手动的编写了测试数据集中的同义词库,耗时2人*天。这一步结果算出来之后呢,效果还行吧,反正就是从一开始毫无希望,让我们看到了一丝希望。具体的就是A中的名词、动词等一定要在B中出现,


          第四次尝试:以失败而告终。第一名此时最后一点一直优化,F值已经达到了0.66了。我们的还在0.52进行徘徊的。这次尝试是希望使用句法树来进行语义解析的。首先这一步最好的并且最优的我觉得就是,首先使用正则表达式将句子分类为很多很多的类,然后对每个小类再识别句子的主题词和重要的位置。比如 你为什么吃西瓜。按照”为什么“,前后的词语重要性就是  你,西瓜   很重要的。对这个问题希望提取出重要的主题词为 你,西瓜。  但是这个方法由于到最后已经十分耗时了,而且我们的精力有限毕竟没有最终实现的。最后的结果就停留在0.511左右了。但是小伙伴们我们已经尽力了,期间因为这些不靠谱的比赛,哎不说了。我很想解释计算机方向的比赛其实都很难的,特别是热门方向上。特别是NLP这个人工智能最难得问题,哎。

       

          最后的总结就是,自然语言处理不是直接就能搞的。这个需要长时间的积累,如果我们在一个搞自然语言处理的实验室,有语料库和具体的分析应该会好很多的,还有就是人数太少,两个人标注数据基本也不够的。还有一个就是这里用户的问题都是口语化的,这个对分词系统也带来了很大的挑战,很多词语,“咋能” ”咋样能“,没有最坑只有更坑。还有比如 “色戒里面男主角杀了女主角么?”  “色戒里面梁朝伟杀了那个女主角么?”,诸如此类的种种,真实没有办法分析的。


           后面根据我和面试官的聊天发现我以后应该更加专注于一个小点上,我希望可以适用一句话来介绍我自己的研究方向和学习的方向的。自然语言处理这个比赛只能说是过来打打酱油的了。不过中途看了一些文章,了解了自然语言处理的分词和句法树的技术。而且从现在来看我们的自然语言处理的解决方案写的还是太简单了的,无比基础,虽然中文自然语言处理技术确实比较难。没有语义语料是硬伤,最近看了LSI的模型觉得隐语义模型是对这个比较好的一个方向。

           还有最不爽的就是遇到了360的面试官,他说你做这个干什么,你本身又不是做自然言语言处理的。其实仔细想一想也对,我一定要找好自己的职业发展方向,在一个点上发力。这样才是最好的。


教训:

        我想想我之前看过什么书哈,看过C++,看过linux操作系统,看过java开发,搞过Android开发,搞过算法,搞过数据挖掘,搞过自然语言处理,这样太乱了,不行的。一定要找一个自己擅长的方向,并且一句话就能概括你这个人的技术特长的,一定要有技术特长。术业有专攻的。

       失败原因总结,NLP太复杂,没有相关的语料积累,对于语义理解不熟悉。我看了一篇learning to understand the meaning of sentence,觉得我们还是做的太简单了。以后有时间,我也会看一些NLP的知识的,补充过来。

参考文献:

某牛人写的自然语言处理的简介文章:http://www.matrix67.com/blog/archives/4212

漫话中文自动分词和语义识别(下):句法结构和语义结构 http://www.matrix67.com/blog/archives/4870

我爱自然语言处理,自然语言处理傲慢与偏见:http://www.52nlp.cn/

LSF随机句法分析http://wenku.baidu.com/view/4032ecd4195f312b3169a535.html



 

 

 

PS:大赛网址:http://openresearch.baidu.com/topic/52.jspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值