【李白之46:做NLP想不乐观都找不到理由】

白:
“这个人的演奏水平不怎么样。” 问题:是“这个人的演奏+水平”,还是“这个人的+演奏水平”?

如果是前者,“演奏”需要被结构强制,然后再与“水平”结合;如果是后者,“演奏”不变性,可以直接与“水平”结合。“水平”的pos tagging可以直接定义为N/X,既接纳名词填坑,也接纳动词填坑。如果是前者,名词化的“演奏”做大主语,“水平”做小主语。如果是后者,主语不分层,“演奏”做内层定语,“这个人的”做外层定语。如果演奏和水平中间不加标点,个人倾向于后者。如果加逗号或者语音上有较长时间的明显停顿,可以考虑前者。

平行的句式还有“这本书的出版时间真不凑巧。”

我们看到两种不同的定中结构:一种是N+遇上N,一种是N或者S遇上N/X。前者是萝卜皮和萝卜的关系,后者是萝卜与坑的关系。

李:
什么是 N 遇上 N/X?什么是 S 遇上 N/X?
有一类名词,经常要求逻辑动词做修饰语,譬如“计划”,“水平”,“能力”:学习计划;作战水平;融资能力。这时候,如果恰好这个逻辑动词也是及物的,理论上就造成了结构歧义:譬如第一例 “学习计划”,定中还是动宾?

白:
有歧义

李:
标配还是定中。也许这个标配的来源,有音节的因素:双音化趋势使得双音修饰双音 显得特别自然,构成四字NP。而汉语的【动宾结构】比起【定中结构】,音节上“头轻脚重”比较突出。定中有一种四平八稳的趋向(heuristic),动宾则不然。动宾的本性是短V长NP,所谓头轻脚重。正因为此,更突出了头(动词谓语)的统率作用。

白:
问题来了:定中标配是获知四字结构之后才有的,还是此前就有?

这里还涉及了另外一个之前讨论过的问题:交叉。“他的学习成绩优秀”当中,“他”填“学习”坑的事情,怎么算?当没看见,还是承认可以交叉?

李:
定中结构对音节数的条件敏感。双音修饰双音当然最自然理想,四字成语的大批形成就有不小数量的定中结构。作为对比,双音修饰单音,就非常勉强。即便出现,也大多是例外,可以作为合成词绑架到词典去的。

白:
犀利哥,漂亮妞,糊涂蛋

李:
是啊,这些都是词典绑架。词典绑架的一律不算,因为可以死记。而且相对有限。

白:
问题是还有一点点能产性。说不定怎么就流行一个。比如“带路蓝”。

李:
能产性不强。对付这种一点点能产性,句法是先不去形成NP,尽管让其他路径优先,parsing到后面,不得已了,才把这种音节数不符合要求的patch一下。

白:
不理,会被拐跑的

李:
目的就是给拐跑让路。拐不走的,句法勉强同意结合。这就对付了能产性。我们说优先,说多层,贯穿的就是这类原则。本来音节就不和谐,没对上眼,拐跑了太正常了。这时候统计上看,拐跑的往往都是应该被拐的。万一还是拐错了,那就扔进词典。这时候词典就成为一个垃圾站,专门收容这些介于固定搭配与能产性之间的东西,如果这些东西成为句法优先策略的例外的话。例外一个收一个,把这个收取例外的过程,作为研发系统的一个动态过程,就不可怕了。

白:
有大数据,可以颠倒一下顺序。不做第一个吃螃蟹的,做第N个总可以吧。词典应该和大数据无缝连接起来。词典没有、构词法允许,大数据支持的,非标配也应占优,回头再收进词典。

“二孩概念股”

李:
系统越做越好就是这么来的,不断扩大测试,9成的测试符合预期,不到1成的例外,也懒得伤筋动骨,扔词典就完。今天的例外bug,成为明天的词典绑架,岂有不好之理

我是相当相信蛮力的。词典就是最好的蛮力。上帝造语言非常了不起,但百密一疏,无论如何无法与逻辑比规整性。好在上帝留了个垃圾回收的口子,词典。NLP起初拼算法, 拼到最后就是拼蛮力。就是一个力气活。长尾问题大多体现在蛮力上。

对,结合了大数据,自然是另一个风景。

白:
绑架的动作不用都人工完成,可以借力。

李:
那是,lexicon acquisition,说的就是一种。基本是无监督学习。其实就弄成一个流水作业,ngram不断去学,不仅进入领域数据需要学领域词典。而且时间维度上,要不断从动态数据去学习,以对付流行词汇和新词。然后让人过一遍,把把关。把这个过程变成系统维护的常规作业。

对NLP总体乐观,一直有十足信心这是可以搞定的事儿。这个信心就建立在,自然语言的规律性部分,至少对于某些“砖家”,总体是路线清晰的,句法有很多上帝赋予universal的基因,而例外表面上没完没了,屁股擦不完,但本质是有限的。词典有如饿虎,永远吃不饱,特别好例外这一口。想不乐观都找不到理由。

白:
学习也有lazy和active两种策略。lazy是parser首次碰到了才启动,active是闲时准备忙时用。

李:
正是。一般而言,系统总是要鲁棒,就是说lazy是设计时候已经尽量考量的。开始做系统的时候,可以有意避免上大辞典,少用绑架。一个个OOV(out-of-vocabulary)就成为鲁棒性测试点,然后看对付例外,有没有一个合理的鲁棒机制在。譬如汉语的合成词的应对。系统越来越成熟,这时候lazy的策略逐渐被active的作业方式取代,就可以大肆扩张词典的绑架。哪怕句法可能搞定的现象,如果来不及测试,或为了力求保险,扔进词典最心安。

甚至可以设想,将来的NLP实用系统,所有的ngrams短语全部进词典。可以把n设置成4或5,词典出来的短语都是预制板、标准件,句法三下五除二把它们搭成积木。至于这4-grams内部有啥,理论上词典都可以绑架,而且很多时候也无碍大局。

白:
可看穿的词条(白盒)和不可看穿的词条(黑盒),用起来待遇还是很不相同的。有构词法垫底,一定数量的白盒词条对于休眠唤醒和拆零复用大有好处。

李:
百盒词条的本质就是小句法。不过是优先级高而已。因为优先级高,做出被绑架的黑盒子的样子。但里面埋下了种子,什么时候要唤醒就唤醒了。这种策略,先绑架后(反悔)释放,非常经济合理。因为绑架满足了95%以上的场景需求,反悔释放则满足了不到5%的特殊需求。断断没有为了不到5%的场景,让全局一路受累。总是到了某个点,trigger 这个反悔机制才妥。

“开始做系统的时候,可以有意避免上大辞典”,说的就是knowledge poor development to start with。knowledge poor 才可以打好鲁棒的基础,而鲁棒性是一个NL系统的关键指标之一。这个小词典开发策略 也包括开始不要有太多 features or subcats, 不要有本体知识库 (ontology)。这些东西都是精细的活儿,是鲁棒的另一面。鲁棒的本义就是凑合事儿,但不要离谱。

 

【相关】

【立委科普:结构歧义的休眠唤醒演义】 

【立委科普:歧义parsing的休眠唤醒机制再探】 

【语义计算:李白对话录系列】

《朝华午拾》总目录

发布者

liweinlp

立委博士,自然语言处理(NLP)资深架构师,Principle Scientist, jd-valley, Netbase前首席科学家,期间指挥团队研发了18种语言的理解和应用系统。特别是汉语和英语,具有世界一流的分析(parsing)精度,并且做到鲁棒、线速,scale up to 大数据,语义落地到数据挖掘和问答产品。Cymfony前研发副总,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个美国国防部的信息抽取项目(PI for 17 SBIRs)。立委NLP工作的应用方向包括大数据舆情挖掘、客户情报、信息抽取、知识图谱、问答系统、智能助理、语义搜索等等。

《【李白之46:做NLP想不乐观都找不到理由】》有1个想法

发表评论