这两天翻开我20年前关于汉语短语结构文法的博士论文,重读一遍,有些感慨。
我的博士做得比较辛苦,其中的曲折和坎坷,不足道也。总之是,做实验做了很多现象,舍不得放弃,可博士论文要求有一条主线,讲究的是点入。不知道草稿了多少提纲,一律被导师忽视或枪毙,最后是不断舍弃,不断聚焦,千锤百炼,才打造出这么个棱角全部被磨圆了所谓博士论文。感觉上,多数的博士论文都是这种过分打磨,读起来了无趣味的文字,在下的更是如此。但里面包含多少不眠之夜的挣扎、艰辛和血泪,天知地知也。
其实,所谓PhD哲学博士是一个历史遗留下来的错误称号,当代的博士基本都是专才,一点也不“博”,很少通才。很多年的辛苦研究基本是掘地三尺的劲头,重精不重广,除了自己的一亩三分地,其他领域无知得很,哲学就更谈不上了。北美的博士制度耗费了人一生中最有创造力的时期,长达5-8年,感觉是太超过了。见过很多博士磨圆了锐气,了无成就,面对真实市场手足失措的案例。难怪俗话有说,傻得像博士。这里的得失留给教育学家研究点评吧。
话说我终于一边工作,一边完成了定稿,导师也首肯了。那时甜甜刚四岁。
I should thank my four-year-old daughter, Tian Tian. I feel sorry for not being able to spend more time with her. What has supported me all these years is the idea that some day she will understand that as a first-generation immigrant, her dad has managed to overcome various challenges in order to create a better environment for her to grow.
PhD Thesis Dedication
To my daughter Tian Tian
whose babbling accompanied and inspired the writing of this work
I still remember I was in tears when writing this to give a final touch on this degree thesis
现如在正在做中文 deep parser,已经很有规模了。正好回顾一下,看 20 年前的思路与20年后做法,有何不同。离校后开始工业开发至今,我毫不犹豫就抛弃了博士的自动分析的路线,虽然做博士时说得头头是道。实际是扬弃吧。有抛弃有继承。抛弃的是单层的CFG,继承的是词法句法的无缝连接。这个转变反映的是理论和实践的距离以及学术与工业的关系。
做博士的时候,正是 unification systems 最被热捧的时候。于是跟随导师,在 Prolog平台上用 HPSG 做了一个汉语文法的MT双向实验(同一个汉语文法被用来同时做分析与生成,支持汉语英语的双向机器翻译),做了个 toy。需要写论文了,不得不把做过的各种现象不断缩小,最后集中到汉语的词法(包括切词)和句法的接口上做文章。整篇论文论述的就是一个思想,切词、词法与句法必须一体化,用的是单层 CFG parsing,说得头头是道。
一体化理论上当然是成立的,因为语言现象中的相互依赖,只有在一体化的框架下才好对付。哪怕 90% 的现象不是相互依赖的,是可以摘开的,你总可以用 10% 的现象证明一体化的正确性(理论上不妨碍那 90%)。
20年后呢,去球吧。早抛弃了单层一体化的思路,那是一个死胡同,做 toy 可以,很难 scale up,也做不深入,做不了真实世界的系统。继承的是一体化的通信管道和休眠唤醒似的patching机制。但宁肯修修补补,也不追求语法体系的完美。
对 HPSG 好奇,或感兴趣汉语怎么用HPSG的同学可以看看我整理出来的博士论文,虽然是过气了的 formalism,记得半年前冯志伟老师还系列编译介绍了 HPSG 讲座。有读者问,怎么用到中文呢?其实对于这种涉及一系列理论assumptions和技术细节的所谓 theoretical formalism,不做一遍基本是雾里看花。Unification 和 typed 数据结构逻辑上看上去很美,做起来也觉得好玩,做过后就洗手不干了。玩过 Prolog 的人也许有类似的体会。
决定把当年在博士论文中列举的具有句法分析难点的例子,当作 unit test 都 parse 一遍,看变了设计思想的系统是不是还可以抓住这些语言现象。
“头羊”(类似案例还有“个人”、“难过”)带有所谓切词的 hidden ambiguity,因为直接违反 longest principle,是中文切词的痛点,也是一体化的有力证据。理论上,任何的切词 ambiguity (不仅仅是 hidden ambiguity)都需要带入整个句子才能最后确认,local context 永远有漏洞,你永远可以营造出一个 context 使得你的 local 决策失效。但实践中还是可以大体把 local 与 全局分开,没必要带着切词的 ambiguity 一路跑到终点。hidden ambiguity 不影响大局者可以休眠,如上例。必要的时候可以用 word-driven 的句法后模块再唤醒它 。
【相关篇什】
PhD Thesis: Morpho-syntactic Interface in CPSG (cover page)