自然语言处理:要方法,还是要数据?

自然语言的处理,在很长一段时间内都处于争执和迷茫中。人类在最初的交流中构建起最基本和最简单的交流方式,并逐渐将这个方式复杂化和丰富化,直至形成一个足够大的集合,以及这个集合元素之间的关系,也就是语法。看起来,机器似乎可以通过了解语法来了解语言,毕竟从某种程度上来说,语法不过是一个类似函数的东西,而词汇虽然变化多端,但总的来讲数量并不多,即使是对于数十年前的计算机来说,存取某种语言的常用字词也是毫不费力的事情。因此在自然语言处理的初期,主流的观点是使计算机尽可能多和熟练地掌握人类语言的文法。
这个观点看起来并没有什么问题,但它的实际效果是惨不忍睹的。十多年来,精英们所做的努力几乎全部打了水漂。即使文法处理的方式又坚持了十余年,它也无法阻止自己走向不可避免的失败:基于文法分析的自然语言处理还是被时代抛弃了。
事实上,计算机科学家们的预判是过于乐观的。词汇的集合虽然并不大,但它在文法约束下的组合复杂度却是惊人的。句子可以划分为成分,成分再变成短语,短语又分解为类型各异的词汇,最后形成一个无比庞大的体系。随着词汇的增加,文法规则也要不断的更新,乃至根本不能处理,这种取巧的方法反而变成了笨办法。
在这种情况下,越来越多的人开始寻求其他的方法,而基于统计的自然语言处理方法就此登上历史舞台。相比文法,统计处理的原则简单的可怕:选取出现概率最大的含义就可以了。统计原理不关心词与词之间是否遵守了文法规则,它只是粗暴地假设某个词的出现概率只与前面少数的词汇(一般最多也就四个)是相关的,然后收集大量的语料并得出令人信服的概率统计。最后直接利用概率计算求出不同含义的概率,就可以做出哪个含义更有可能出现的判断。
这种方法一度被认为是野蛮而无用的,而且、语料库的建立严格受限于过去的技术水平。然而,这种困局不可能持续多久。随着计算机计算和存储能力的发展,收集大量语料并不是那么困难了。云计算的出现将这种设想彻底变成了可能:在现在,较为成熟的技术可以轻松地对自然语言进行处理,并得出高准确度的结果。看起来不可一世的文法理论就这样被暴力算法击败了。
一个事实是:大数据的出现才是文法与统计之争的终结者。随着计算能力的大量提高,繁重的计算似乎不是那么不可接受了,逻辑简洁的方法在实现上也变得简洁了。数据规模的极速扩大,在根本上影响了计算机科学乃至其他行业和领域的发展进程,而这个变化还会继续下去。

猜你喜欢

转载自blog.csdn.net/Esteban123/article/details/88562560