《语言形式的无中生有:从隐性到显性》

话说华裔语言学泰斗赵元任先生曾经有过一个游戏名作,通篇只用同一个音,讲了这么个故事,天下人无不叫绝。

《施氏食狮史》
石室诗士施氏,嗜狮,誓食十狮。氏时时适市视狮。十时,适十狮适市。是时,适施氏适市。氏视是十狮,恃矢势,使是十狮逝世。氏拾是十狮尸,适石室。石室湿,氏使侍拭石室。石室拭,氏始试食是十狮尸。食时,始识是十狮尸,实十石狮尸。试释是事。

这是比较浅白的文言文,读起来拗口,看懂这篇并不难。俏皮在通篇只有一个音节 shi,但对应了文言中不同的汉字。文言文汉字基本上就是一个独立语素(有意义的最小单位),属于孤立语,没有形态,虚字也极少用。文句主要就是靠实字概念之间的相谐(所谓“意合”)以及语序来表达内容,使人看得懂。

如果我们假设每个汉字对应一个确定的概念(多义汉字可以假设通过二字组或三字组来消歧),那么通过这些概念在西方语言中的词汇对应物及其组合成句的对比,我们就可以把孤立语与形态语之间的句法区别凸显出来。想来做一下这个练习会很有意思的,因为我们可以揭示语言的奥秘之一:无中生有。

这个对比练习最令人启发和好玩的地方,是做文言文与世界语(Esperanto)的对比,因为世界语实词的形态变化有两大特点:第一是形态词尾不可省略(起码词类词尾对于实词是必须存在的,不允许零形式);第二所有的形态变化是100%规则化的。这就会凸显形态这种词尾形式和小词这种形式怎么冒出来的。

咱们先建一部双语词典,让相同概念的实词一一对应:

石:ŝton / 室:ĉambr / 诗:poem / 士:ist / 施:Shi / 氏:S-ro / ,嗜:hobi / 狮:leon / ,誓:promes / 食:manĝ / 十:dek / 狮:leon / 。氏:S-ro / 时:temp / 时:temp / 适:ven / 市:merkat / 视:vid / 狮:leon / 。十:dek / 时:hor / ,适:ĝust / 十:dek / 狮:leon / 适:ven / 市:merkat / 。是:tiu / 时:temp /,适:ĝust / 施:Shi / 氏:S-ro / 适:ven / 市:merkat / 。氏:S-ro / 视:vid / 是:tiu / 十:dek / 狮:leon /,恃:fid / 矢:sag / 势:potencial /,使:kauz / 是:tiu / 十:dek / 狮:leon / 逝:forlas / 世:mond / 。氏:S-ro / 拾:kolekt / 是:tiu / 十:dek / 狮:leon / 尸:korp / ,适:ven / 石:ŝton / 室:ĉambr / 。石:ŝton / 室:ĉambr / 湿:malsek /,氏:S-ro / 使:kauz / 侍:servist / 拭:viŝ / 石:ŝton / 室:ĉambr / 。石:ŝton / 室:ĉambr / 拭:viŝ /,氏:S-ro / 始:ek / 试:prov / 食:manĝ / 是:tiu / 十:dek / 狮:leon / 尸:korp /。食:manĝ / 时:temp /,始:ek / 识:kon / 是:tiu / 十:dek / 狮:leon / 尸:korp /,实:fakt / 十:dek / 石:ŝton / 狮:leon / 尸:korp / 。试:prov / 释:klarig / 是:tiu / 事:afer /。

我们做语言对比的目的是考察完全不同类型和语系的语言之间,语言形式的不同是如何体现在组词造句的句法上,来帮助我们表达、理解和翻译的。因此,我们把多义字(词)的问题先放在一边,假定只有一个词义。但实际上不少字是有歧义的,即便在本篇中,也还有几个相同的字,意义不同(从而词类和用法也不同)。不过,这个问题可以用二字组(bigrams)来解决。本篇中需要用到的二字组有5条就够了:

施Shi / 氏S-ro –》S-ro Shi (倒装)
时temp / 时temp –》 tempo-al-tempo;de tempo al tempo
适ven / 市merkat –》 venas merkaton;venas al merkato
十dek / 时hor –》 dek-horon;je la dek horo
逝forlas 世/mond –》 forlasas mondon;forlasas la mondon

Ŝtonoĉambre poemisto S-ro Shi, hobias leonojn, promesas manĝi dek leonojn. S-ro tempo-al-tempe venis merkaton vidi leonojn. Dek horon ĝuste dek leonoj venis merkaton. Tiu-tempe ĝuste S-ro Shi venis merkaton. S-ro vidis tiujn dek leonojn, fidis sagopotencialojn, kauzis tiujn dek leonojn forlasi mondon. S-ro kolektis tiujn dek leonokorpojn, venis ŝtonoĉambron. Ŝtonoĉambro malsekis, S-ro kauzis serviston viŝi ŝtonoĉambron. Ŝtonoĉambro viŝinte, S-ro ekprovis manĝi tiujn dek leonokorpojn. Manĝtempe, ekkonis tiuj dek leonokorpoj faktis dek ŝtonoleonajn korpojn. Provu klarigi tiun aferon.

实际上等价于:

石o室e 诗-士o 氏o 施/NNP,嗜as 狮ojn,誓as 食i 十/Num 狮ojn。氏o 时时e 适as 市o 视i狮ojn。十/Num 时-on,适-e 十/Num 狮oj 适as 市on。是/DT 时-e,适-e 氏o 施/NNP 适is 市on。氏o 视is 是/DT 十/Num 狮ojn,恃is 矢o势ojn,使is 是/DT 十/Num 狮ojn 逝i 世on。氏o 拾is 是/DT 十/Num 狮o尸ojn,适is 石o室on。石o室o 湿is,氏o 使is 侍on 拭i 石o室on。石o室on 拭inte,氏o 始-试is 食i 是/DT 十/Num 狮o尸ojn。食-时e,始-识is 是/DT 十/Num 狮o尸oj,实is 十/Num 石o狮ajn 尸ojn。试u 释i 是/DT 事on。

Ŝton-o-ĉambr-e poem-isto S-ro Shi, hobi-as leon-ojn, promes-as manĝ-i dek leon-ojn. S-ro temp-o-al-temp-e ven-as merkat-on vid-i leon-ojn. Dek hor-on ĝust-e dek leon-oj ven-is merkat-on. Tiu-temp-e ĝust-e S-ro Shi ven-is merkat-on. S-ro vid-is tiu-jn dek leon-ojn, fidis sag-o-potencial-ojn, kauz-is tiu-jn dek leon-ojn forlas-i mond-on. S-ro kolekt-is tiu-jn dek leon-o-korp-ojn, ven-is ŝton-o-ĉambr-on. Ŝton-o-ĉambr-o malsek-is, S-ro kauz-is servist-on viŝ-i ŝton-o-ĉambr-on. Ŝton-o-ĉambr-o viŝ-inte, S-ro ek-prov-is manĝ-i tiu-jn dek leon-o-korp-ojn. Manĝ-temp-e, ek-kon-is tiu-j dek leon-o-korp-oj fakt-is dek ŝton-o-leon-ajn korp-ojn. Prov-u klarig-i tiu-n afer-on.

世界语形态很简单:

o 名词词尾,e 副词词尾,as 谓语现在时,ojn 名词-复数-宾格,i 不定式,on 名词-宾格,is 谓语过去时,inte 副词-主动-完成体,oj 名词-复数-主格,u 谓语命令式

那这些形态是怎么来的呢?

形态原文根本就没有,这是在翻译过程中“无中生有”的,否则就不符合世界语文法,也无法正确表达原文的结构内容。可以问:中文没有这些形态,不也是一样表达吗?凭什么知道它表达的,正好对应上面的形态呢?答案是,中文用的是隐性形式,而世界语的形态是显性形式。在我们用具体例句讲解隐性形式在文法上是如何工作的之前,我们再看看世界语的另外一种形式,所谓分析形式,是如何表达这一篇故事的。前面译文采用的语言形式是所谓综合语言的形态形式,世界语也可以更多依赖小词,采用所谓分析语言形式来表达,结果大致是这样的:

En la ŝtonoĉambro, la poemisto S-ro Shi hobias leonojn, kaj promesas manĝi dek leonojn. S-ro de tempo al tempo venis al merkato por vidi leonojn.  Je la dek horo, ĝuste dek leonoj venis al merkato.  Je tiu tempo, ĝuste S-ro Shi venis al la merkato. S-ro vidis tiujn dek leonojn, fidis sagopotencialojn, kaj kauzis tiujn dek leonojn forlasi la mondon. S-ro kolektis tiujn dek leonokorpojn, venis al la ŝtono-ĉambro.  La ŝtonoĉambro malsekis, kaj S-ro kauzis serviston viŝi la ŝtonoĉambron. Kiam la ŝtonoĉambro estis viŝinta, S-ro ekmanĝis tiujn dek leonokorpojn. Je la manĝtempo, li ekkonis ke tiuj dek leonokorpoj fakte estas dek ŝtonoleonaj korpoj. Provu klarigi tiun aferon.

En la 石o室o 诗-士o 氏-o 施/NNP,嗜as 狮ojn,kaj 誓as 食i 十/Num 狮ojn。氏o 时时/de tempo al dempo 适is al 市o por 视i 狮ojn。Je 十/Num 时o,适-e 十/Num 狮oj 适is al 市o。Je 是/DT 时o,适e 氏o 施/NNP 适is al la 市o。氏o 视is 是/DT 十/Num 狮ojn,恃is 矢o势ojn,使is 是/DT 十/Num 狮ojn 逝i la 世on。氏o 拾is 是/DT 十/Num 狮o尸ojn,适is al la 石o室o。La 石o室o 湿is,kaj 氏o 使is 侍on 拭i la 石o室on。Kiam la 石o室o estis 拭inta,氏o 始-试is 食i 是/DT 十/Num 狮o尸ojn。Je la 食-时o,始-识is ke 是/DT 十/Num 狮o尸oj,实e estas 十/Num 石o狮aj 尸oj。试u 释i 是/DT 事on。

(En la) ŝtono-ĉambro poemisto S-ro Shi hobias leonojn, (kaj) promesas manĝi dek leonojn. S-ro (de) tempo (al) tempo venis (al) merkato (por) vidi leonojn. (Je la) dek horo, ĝuste dek leonoj venis (al) merkato. (Je) tiu tempo, ĝuste S-ro Shi venis (al la) merkato. S-ro vidis tiujn dek leonojn, fidis sago-potencialojn, (kaj) kauzis tiujn dek leonojn forlasi (la) mondon. S-ro kolektis tiujn dek leono-korpojn, venis (al la) ŝtono-ĉambro. (La) ŝtono-ĉambro malsekis, (kaj) S-ro kauzis serviston viŝi ŝtono-ĉambron. (Kiam la) ŝtono-ĉambro (estis) viŝinta, S-ro ek-manĝis tiujn dek leono-korpojn. (Je la) manĝ-tempo, (li) ek-konis (ke) tiuj dek leono-korpoj fakte (estis) dek ŝtono-leono-korpoj. Provu klarigi tiun aferon.

其中用到的世界语小词是:en (in),la(the),kaj(and),de(from/of),al(to),por(for,in order to),je(at/in/about),dek(10),S-ro(Mr/Sir),tiuj(these), estas (is/am/are),  estis(was/were)

我们以第一句为例:“石室诗士施氏,嗜狮,誓食十狮。” 相当于:

(En la) 石-o-室-o 诗-o-士-o 施/Shi 氏/S-ro,嗜-as 狮-ojn, (kaj) 誓-as 食-i 十/Num 狮-ojn.

好玩吧,概念不变,里面多出了很多文法形式和小词。原文没有,为什么要加?怎么加?为什么加了才是对的?

前面说过,文言是孤立语,缺乏显性形式手段,它的文法关系是隐藏在词内部的“隐性形式”,通过揭示这些隐性形式,我们可以知道是什么语法关系,到了目标语,又该用什么显性语言形式。

自动句法解析例示如下,第一张是所谓短语结构句法树(PS tree),第二张是分析更加深入的依存关系结构图(DG graph):

“石/室/诗/士/施/氏” 这头6个字都是名词 N,虽然没有 -o 这样的形式。怎么知道的,这是词所对应的词义概念决定的。在我们头脑里面是有词典记忆的,如果建立词典的话,N 这样的词类特征就在词典里面了。可见所谓隐性形式,就是词典里面的藏在词背后的东西。词类是一种,更多的词的子类也是隐性形式,也是查词典可以得到的。

下一个问题是,6个名词串在一起,怎么知道它们之间的关系,又怎么知道它们在句子中的角色,从而知道世界语该如何合法组织它们呢?

第一条规则是,单字名词与单字名词在一起,经常是先组织成合成词。(这叫词法双音化倾向,当然有例外,但很多时候是这样。)于是,我们把6个字变成三个合成词::石室 / 诗士 / 施氏。

到了世界语,N 与 N 怎么联系为合成词呢,通常加 -o- 连。如果后面的N是后缀,或者前面的N是前缀,则不用加 o,而 -ist(者/士)正是后缀。最后两个字有一个小规则,就是:百家姓(这是隐性形式,查词典可得)+ “氏” 组合成人的专有名词,这种组合到了世界语正好要倒过来:

X+氏 –》 S-ro X

为什么两种语言表达人名与称呼的词序不同(词序本身也是语言显性形式)?没有道理,就是两个语言在这方面习惯不同。把它当成语言之间的转换规则记住就好了。

这样一来,这6个字的词法(组合成词)都有了表现的形式:

石-o-室-? 诗-士-? 氏/S-ro 施/Shi

前面两个合成词后面的问号表示世界语还需要确定用什么形态(或小词)来把合成词之间的关系,或合成词在句子中的角色搞清楚。通常名词组合的合成词默认就是 -o,但有例外,这个例外也是隐性形式决定的。

这样讲下去太累了,虽然也不知道如何才能既简单也能讲清楚语言的奥秘。所有在这里讲的过程,都可以在电脑上实现。也就是说,这里的讲的隐性形式最后转换成世界语的合法的形态和小词形式,都是一个完全透明可以一步步机械实现的过程。句法为基础的“经典式”机器翻译当年就是这么做的。(最新的机器翻译不是这样做的,是用所谓神经网络算法,纯粹从大量的平行翻译语料死记硬背模仿出来的,这话先放下。)

好,运用了专有名词组合的小规则以后,我们就有了:

石-o-室-? 诗-士-? 施氏/S-ro Shi

第一个合成词与第二个合成词可以有三种结合方式:一种是第一个修饰第二个(做定语),于是第一个用形容词词尾 -a,第二个用 -o,这是最常见的默认的“定中式”名词组合:

(1)石-o-室-a 诗-士-o 施氏/S-ro Shi

另一种结合方式是, 遇到 “地点名词/时间名词”(这是名词的子类,也是词典里面可以记录的隐性形式)在句首的话,我们可以认为它是状语,而不是前面说的默认的定语。状语在世界语有两个形式:一个是用副词词尾 -e表示,一个是用介词 je(或 en ),于是我们有了第二种和第三种译法:

(2)石-o-室-e 诗-士-o 施氏/S-ro Shi

(3)en 石-o-室-o 诗-士-o 施氏/S-ro Shi

把上面三种译法替换成实词对等物,于是我们有了这个片段的世界语:

(1a)ŝton-o-ĉambr-a poemist-o S-ro Shi
(2a) ŝton-o-ĉambr-e poemist-o S-ro Shi
(3a)En ŝton-o-ĉambr-o poem-ist-o S-ro Shi

如果用分析形式(3a),最好适当加上冠词:

(3b):En la ŝton-o-ĉambr-o la poem-ist-o S-ro Shi

冠词怎么加就不细说了,总之有些微妙,好在是可加可不加的。

这句后面还有几个字:“……, 嗜狮,誓食十狮”。

查了词典,我们知道它们各自的词类: 嗜V 狮N ,誓V 食V 十Num 狮N,名词外,也出现动词 V,数词 Num 了。动词后面跟名词,通常就是宾语,要用 -on 或 -ojn;数词(除了1)后面跟名词必须要用复数形式 -ojn。动词本身默认是现在时态 -as(讲故事情节的时候,最好改用过去时态-is)。两个动词连用的时候,后一个动词通常变成不定式 -i(严格地说这是由前一个动词的子类决定的)。于是我们就有了:

嗜-as 狮-ojn ,誓-as 食-i 十Num 狮-ojn

把实词换成世界语的等价概念,于是我们就“无中生有地”生成了合法的世界语翻译:

(1) ŝtonoĉambra poemisto S-ro Shi,hobias lionon, promesas manghi dek leonojn.
(2)ŝtonoĉambre poemisto S-ro Shi,hobias lionon, promesas manghi dek leonojn.
(3)En ŝtonoĉambro poemisto S-ro Shi,hobias lionon, promesas manghi dek leonojn.

后面的句子都可以如法炮制。就是说,词典里面记录的词概念的词类、子类特征越丰富,我们就有了隐性形式的充足依据,拿它作为条件,根据上下文实词的组合,就可以指明世界语需要添加什么形态和小词,就可以用这些貌似无中生有的语言形式,表达隐藏在文言中的句法关系和语义逻辑,从而实现形式不同,但内容一样。

最后说一下,到底是中文文言这样的隐性形式好,还是用形态和小词把关系都挑明了好?当然是后者更胜一筹。小葱拌豆腐,一清二白呀。当然你也可以说,对于中文为母语者,也没觉得利用隐性形式,通过头脑里面看不见的词典记忆,组词造句是个负担。的确如此。但是对于其他语言来学中文的人,这不就要人命吗(语言天才例外)。对于机器分析和理解,也难得多。做一套世界语的电脑解析系统,一个星期妥妥的,做一个文言的解析系统,几年也不一定能做好呢。复杂度天壤之别。

好了,这次分享比开始想象的长多了。希望对于感兴趣的同好们,能有个启发。也在讲故事的过程中了解一下传统机器翻译的背后原理。也顺便普及一下世界语的文法概貌。

 

 

【相关】

语言形式漫谈

世界语论文钩沉:世界语的语言学特点(2/3)

Lingvistikaj Trajtoj De La Internacia Lingvo Esperanto

立委:一小时学会世界语语法

硕士论文: 世界语到汉语和英语的自动翻译试验

立委硕士论文全文(世界语版)

《朝华午拾:shijie-师弟轶事(3)——疯狂世界语 》

灵感有如神授,巧夺岂止天工

立委世界语论文(1986): 《国际语到汉语和英语的自动翻译》

立委(1988)《世界科技:世界语到汉语和英语的自动翻译试验》

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

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

 

 

 

 

 

【李白之40:逻辑语义是语义核心,但不是全部】【存档】

李:
“不晓得是啥”:不晓得[ ]是啥

不晓得【萝卜】是啥。
这个宾语从句中的主语的坑省略以后,萝卜哪里去了呢?

萝卜不晓得是啥
不晓得是啥的萝卜
一口可口可乐喝完, 吐出一块不晓得是啥的东西

白:
“拿一些自己都不晓得是啥的东西来糊弄别人。”
定语从句反而是自然的

李:
why not 不晓得 NP[是啥的东西]? “晓得”的 subcats 既可带宾语从句,也可带NP宾语的:

不晓得啥东西
不晓得这东西

then, why the parse [[不晓得是啥]的东西] is better than [不晓得[是啥的东西]]?回答清楚这个问题,貌似需要一点说法。

白:
“他是个连微积分都不晓得是啥的东西”
又回去了。“晓得”带小句宾时,不满足穿透性,就是说晓得的逻辑主语并不必然成为小句的逻辑主语。这样“不晓得是啥”作为一个整体进入定语从句的时候,就出现了两个坑,不知道反填哪一个,这是要避免的。

李:
是吗?
“我不晓得到哪里去” == 我不晓得【我】到哪里去。

白:
不一定,可自主决策类,可以穿透。一般性的动词,无法穿透。

李:
“不晓得是啥的东西” 与“狂吠的狗”应该是一个逻辑。

白:
狂吠是不及物的,一个坑。没有歧义。

李:
“不晓得是啥” 也是vp 也是不及物 或 宾语已经内部 saturated。

白:
不晓得是啥,两个坑:a不晓得b是啥。但“连微积分都不晓得是啥”,微积分填掉了一个坑,就没这个问题了。b锁定,只剩a了。“东西”必然指“晓得”的逻辑主语。只剩下这个可能。东西只有在负面情感时才可指人,虽然逻辑上包含人。连……都不晓得是啥,显然承载了这个负面情感。

李:
对。两个坑。但是 b 坑比 a 坑更具有必填性。

在“不知道是啥的东西”里,“东西” 与 “晓得” 没有直接关系, “东西” 微观上是 “是啥” 的主语,宏观上 是 “不晓得是啥” 的主语。“这玩意是大家都不晓得是啥的东西。”
这里“晓得”的主语是“大家”。

白:
有“大家”,先填掉了逻辑主语。“东西”拔不走了。

李:
“晓得”的第二个坑 是宾语子句。“东西” 显然与 “晓得” 没有直接关系,因为根本就没坑了, “晓得” 已经饱和了。如果引进短语结构ps,可以说 “不晓得是啥” 这个 vp,还有两个坑。有两个坑的 vp 听上去很奇怪。但在汉语的所谓 “双主语句式”中有可能存在。

白:
“是”的两个坑,“啥”占了一个

晓得的逻辑宾语是X,S比N优先,顺序比逆序优先。
“这玩意儿他们不晓得”。这种情况又可以了。晓得的逻辑主语跟另一个不兼容。又多出来一个。整体上还是相当于一个及物动词。

李:
大主语 topic,有可能是一个 arg 的坑 也有可能不占坑 那就是 mod。小主语必然填一个坑。

白:
双主语有两种情形,一种是大小主语,往往有part of联系;另一种是宾语提前或话题化,这种没有part of联系。有part of的,可以名词自带坑。没有的,只能消费里面的坑。名词自带坑的,里面就可以是不及物动词了。一个坑就够。另一个靠带坑的名词自吃自吐。自带坑的名词甚至可以传导到更遥远的补语。“他眼睛哭肿了”实际是:1、他哭;2、眼睛肿;3、眼睛是他身体的部分。眼睛,和哭,共享“他”这个萝卜。因为“肿”合并到“哭”,“肿”辖域内的残坑(谁的眼睛)获得免费额度。可以复用已填坑的萝卜。

李:
有 part of 这种特别有意思:“他身体不错”。

== 【他 身体】不错。
== 他 【身体 不错】

这两个看似水火不容的结构,都有各自的合理和优点,二者互补才反映全貌。

(1) “他的身体不错”:显性形式的小词“的”,让“他”降格为修饰语,属于填了“身体”所留的坑的修饰语。

白:
有“的”,修饰语辖域自然归并到被修饰语辖域,也获得免费额度。他,可以既填“的”本身的坑,也可以再填“身体”的坑。

李:
(2) 他身体方面不错:“身体”被降格,降格成后置词短语PP“身体方面”(Postpositional Phrase),类似状语。
(3) “他么,身体不错”,“他”降格为话题状语,用了口语小词“么”。
(4) “他身体好,又聪明” 可算是谓词“升格”(或“小句降格”)。从一元化领导升格为集体领导。本来谓词(譬如“聪明”)就是谓语,但现在“身体好”这个短语或小句整体变成了谓语,与另一个AP谓语“聪明”并列。

白:
“身体好”整体相当于一个不及物动词。两个带坑的成分级联,略去中间环节,还是吃N吐S。

李:
这些现象极端有趣,fascinating。表明 在基本相同的逻辑语义底层结构中,语言表达可以借助语言学的形式手段,给这个底层结构穿不同的衣服,打扮成不同的形象。进而对其语义做某种非核心的修饰。

白:
从填坑角度看只是初等的数学运算。免费额度算清楚了,其他都是小菜一碟。这又打破树的形态,真心不是树。

李:
但是 即便所有的坑都填妥了,那也只是逻辑语义的胜利,底层核心的被求解,表层的细微语义差别(nuances), 那些不同表达方式,那些“升格”、“降格”的不同语言形式。它们所反映的东西 严格地说 也应该被恰当的捕捉和表达。

白:
两件事情,谁和谁有什么关系是逻辑语义的事儿。用什么顺序表达是另一件事。后者也负载信息。

李:
对呀。

白:
比如听说双方之前各知道什么,强调什么,诸如此类。这些不在“主结构”框架内,但是是一些“环境变量”,需要的时候可以从里面捕捉这些信息。

李:
最典型的例子是 “我读书” 与 “我读的书”,二者语义的区别,虽然逻辑语义核心以及填坑关系是相同的。

白:
焦点不同、有定性不同,已然未然不同,甚至单复数也可能不同。我当下正在读的书可能标配是单数,我读过的书标配就是复数。

李:
这些语义 与 逻辑语义,处于不同的层面。逻辑语义是本体(ontoogy)作为模版, 这些语义与本体模版无关。所谓本体模版,说到底就是规定了坑与萝卜,及其 type appropriateness(相谐性),他不反映这些有待填充的模版之间的结构关系,也不反映关系中的节点上附加的语义或细微差别,诸如 强调、委婉、正式、非正式、语气 等。

白:
这些都可以抽象为:语境的坑,只不过这些是需要经常update和reshuffle的。做下一代人机对话不做这个的,都是耍流氓。

李:
不仅仅人机对话,机器翻译也要这个。
30年前,董老师强调要以语言之间的核心,即逻辑语义,作为机器翻译的基础。让我们脑洞大开 深受启蒙。然而 这只是翻译需要正确传达的一个方面,的确是最核心的一面,但不是全部。边缘意义和细微差别,在核心问题基本解决后,就成为需要着力的另一方面。典型的例子是被动语态的机器翻译。从逻辑语义的角度看,主动被动是表层的语言现象,在逻辑上没有地位。因此所有的被动语态都可以转变为逻辑等价的主动语态来翻译。这有合理、逻辑和简明的一面,但人不是这样翻译的:一个高明的译者懂得,什么时候被动可以翻译成主动,什么时候需要翻译成显式的被动,什么时候可以翻译成隐式的被动,什么时候改造成反身自动的表达方式(譬如在英语到法语的翻译中加 se)。

白:
视角选择,也是一个考量因素。有时,被动语态的采用,纯粹是为了视角的连贯。跟立场态度并无直接瓜葛。

李:
总之 逻辑语义是个纲 纲举目不一定张 对目下功夫是区别一个好的系统和一个很好的系统重要指针。

白:
纳入语境的坑,一个好处就是所有填坑的机制可以复用过来,无需另起炉灶。说话人、听话人、处所、时间、先序语段、先序焦点、相对阶位等等,都可以套用本体的subcat。

李:
这个方向探索不多。但现在是可以考虑的时候了。

白:
我考虑很久了。语义是船,语境是河。船有内部结构,但行进也受到河的左右。内部结构不能完全决定行进的选择。

白:
不知道“王冕死了父亲”算是交叉还是不交叉?
王冕游离在外,另一部分的中心词是死,但王冕却不填它的坑,而是去填“父亲”留下的残坑。成为“死了父亲”这个短语的事实上的逻辑主语。但是还原到二元关系,这个link还是在王冕和父亲之间。从形式上看,王冕(N)和父亲填坑后的残坑(/N)中间隔着中心谓词“死(S)”,但这个吃饱了的S对N和/N之间的眉来眼去是无感的。
乐见其成。

F:
如果是语义依存,是non-projective的,是有交叉的,”父亲”这个词的投射不连续。

白:
‘’倒是“父亲”填“死”坑的一刹那,让我们见证了“右侧单坑核心成分”比“左侧单坑核心成分”优先级高的现实。如果双坑,则是左侧核心成分优先级高,我把它们处理成句法上存在填坑关系了。

李:
“王冕死了父亲”的交叉与否的问题,这个以前想过。不交叉原则针对的是句法关系
这是句法关系的逻辑底线,交叉了逻辑上无法说通,所以判违规。还没见过例外:句法关系可以并列,嵌套,但不能交叉。但不交叉原则不适用于逻辑语义关系。其实,严格说,相对于逻辑语义的不应该叫句法关系,也包括词法关系(可以看成是小句法)。总之是形式层面的结构关系。形式层面的结构关系不允许交叉,这个原则是对的。有意思的是,语言中的不同层面的形式结构关系,戴上逻辑语义的眼镜,或映射到逻辑语义的表达的时候,就可能发现交叉现象。原因是昨天说过的,逻辑语义讲的是萝卜和坑的语义关系。逻辑语义的图(graph)中是不包含句法结构层次之间的关系语义的。换句话说,逻辑语义把“结构”打平了。譬如在句法中被局限在词法层面的萝卜,完全有可能去填句法层面的逻辑语义的坑。反之亦然:词法层面中的坑,完全有可能让句法层面的萝卜去填。用乔老爷的Xbar句法框架或概念来说就是,语言单位X的层次,在逻辑语义看来是不重要甚至不存在的,无论是 X 是 -1 (我把词法内部的层上标为负数),0(词一级),1(组一级),2(短语一级)。萝卜与坑可以在这些不同层次中继承或跳转,但是句法上却有层次之间的区别和禁忌。

这些层次以及层次间的关系和规定(譬如不交叉原则)是客观存在的反映,是逻辑语义以外的另一层结构语义。这种东西在重视层级的短语结构句法(PSG)及其表达中,体现得较好。在不重视层级的依存文法(DG)中就反映和表达得不好或不够。不管我多么喜欢DG,多么讨厌PSG表达的叠床架屋,我还是要指出DG的某些不足,正是PSG的长处。

回到白老师的例子,可以看得清晰具体一些:“王冕死了父亲”。PSG句法上,王冕 是NP,“死了父亲”是VP,构成S。VP里面“死了”是V-bar, “父亲”是NP宾语。这里面的结构不可能有任何交叉出现。“王冕”与“父亲”处于不同的层次,句法不允许一个单位钻进另一单位的里面去建立联系,这是违反了君臣父子的天条。一个句法结构,对外就是一个元素,里面是黑箱子,不透明(但可以利用某种机制传递某种东西)。唯此,才能维护结构的清晰。但是到了逻辑语义,这些条条框框都可以打破:一个儿子可以有n个老子,交叉也不是不可以。树(tree)是无法承载逻辑语义的任意性和结构扁平化了,于是需要用图(graph)。我早就说过,DG本性上比较亲近逻辑语义(深层核心结构),而PSG则亲近的表层句法结构。很多人以为它们是互换的或等价的,只是表达(reprentation)方式不同。其实不仅如此。在我们饭还吃不饱的时候,我们首先想到的肚子问题,核心问题。当我们衣食无忧的时候,我们就要讲究全面一些,核心和边缘都不放过。并不是不放过边缘,不放过表层结构语义,就一定要回到PSG,但是至少仅仅逻辑语义是不够的,还需要添加其他,就如白老师昨天提到的那些以及他的一些表达方案。

白:
这些所谓的句法,功劳不大,脾气倒是不小。比他多识别出有价值的二元关系,反而有毛病了。哪儿说理去。我认为这里面存在一个次序问题。

站在外层N的角度,它确实填了一个/N的坑。但不同粒度会看见不同的结果。“死了父亲”是一个联合体,这个联合体挖了一个名词坑,“王冕”填进去,天造地设、严丝合缝。既没有穿越也没有交叉。“他哭肿了眼睛”也是一样。“肿了眼睛”作为一个联合体挖了一个名词坑。和“哭”的名词坑一道,共享“他”这个萝卜。

中心词作为组块的代表,统一对外提供坑。这是对的。但是这坑未必是中心词自带的,可以是中心词在组块内部兼并而来的。把坑拘泥于中心词自带的坑,相当于用镣铐把自己锁起来。何苦自己为难自己?

李:
今天的对话,符号逻辑,参杂点黑话与绿色幽默,有点绕,烧点脑。管他呢,还是发了吧。

白:
“把字句”与补语所带坑的深度捆绑,也是受这个“联合体意义上的坑”规律所支配的。“他把眼睛哭肿了”单看“哭”和“肿”,没有坑可以共享萝卜,“哭”与human相谐,“肿”与body part相谐,二者尿不到一个壶里。但是“眼睛”恰恰在这里起到了“转换插头”的作用,吃human,吐human body。看这个“肿了眼睛”的联合体所带的坑,与“哭”所带的坑,完全相谐,恰恰是可以共享的了。所以,在PSG那里避之唯恐不及的穿越交叉,其实隐藏着重大玄机。恰如其分地把它请回句法,可以起到四两拨千斤的作用。我对什么该放在句法层面,其实只有一个标准,能描述谁和谁有关系。如果谁和谁就是交叉着发生关系,句法不仅不应该回避,而且应该忠实描述。更何况,大的方面,中心词代表所在组块对外发生关系方面,并无违反。只是“过继的坑”也可以代替“亲生的坑”而已。树状结构、亲生的坑,都不应该成为忠实描述“谁跟谁有关系”的障碍。如果有障碍,一定是障碍错了而不是关系错了。

退一步海阔天空。只要把“在你辖域里残留的坑”统统在名义上算作“你的坑”,什么都结了。

李:
说得不错。但估计乔老爷是不认账的。他在句法与语义之间打隔断,坚信不隔断 谁也做不好 做不纯粹和深入。何况 语义是全人类共同的 哪有句法有性格和多姿多彩又万变不离其宗呢。他的普遍文法(UG) 仍然基于句法独立于语义的根本原则。只有句法才是真正的语言学。到了语义,语言学就开始参杂逻辑的杂质了。

白:
我说的也都是句法,不是语义。只不过是能给语义省点事儿的句法。

李:
夹杂了本体,或本体的隐藏式 譬如 大数据中间件,就不能说是纯句法,因为常识揉进了形式系统。

白:
只是在控制(怎么做)层面引入了本体/大数据,在描述(是什么)层面无需引入。而老乔的语言学一样是不管控制层面的事儿的。也就是说,如果只是为了写一本句法书而不是为了做parser,本体连一句话都不需要提。那就在这个层面比,谁揭示了更多的结构性信息。

【相关】

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

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录



http://blog.sciencenet.cn/blog-362400-1051610.html

上一篇:辨析相对论、相对论性与相对论性(的)效应
下一篇:【李白之41:Gui冒VP的风险】

【李白之44:“明确”是老子还是儿子,需要明确】【存档】

白:
“北京大学率先明确入雄安路线图”。“明确”是副词还是动词,需要先明确。

李:
我觉得这不是问题的关键。pos 在抽象层面只规定非常宽泛的框框。关键还是语义之间的相谐。正确的问题不是pos,而是 “明确” 在这里是状语(儿子),还是谓词(老子)。在【明确+ vp】里面,pos 上它没有什么限制,所谓跨类词。跨类就是两可。 对于跨类 这是一个没啥意义的问题 或者说 这是一个 circular 的问题。

“明确”的最常见的 subcat 带的是 np,但是 在 “明确v” 出现时,这个 v 可能是 vp,因此 “明确”可能做其状语。也可能这个 v 是np内部的修饰语。

(1) 明确规定游泳违规
(2) 明确规定 严明纪律 这两条是整顿金融秩序的关键所在
(3) 我们要明确规定条例

大数据可以帮到 (1);(2) 是排比的力量 压住了大数据,把潜在的动宾可能激发出来。 但排比因素的形式化实现还需要探究(虽然形式特征在人看来是蛮明显的)。(3) 仍然歧义:“明确(地)规定(相关)条例”,还是 “明确(一下)(有关)规定(方面的)条例”?大数据似乎选择前一个解读,为什么我们仍然感觉得到后一种解读的可能性。设想 如果大数据中 “规定条例” 比例开始高到可以与 “明确规定” 相匹敌的时候,这就是大数据也搞不定的边界之争。

白:
“北京大学率先明确入雄安路线图”这个例句中,“明确”只有一种走得通的词性,就是动词S/N,X。如果是副词,“入”就会过饱和。虽然过饱和也是能处理的,但放着正常饱和的不用却去用过饱和的,终究不妥。因为“入雄安”只剩下一个坑了。副词“S+”不会改变萝卜数和坑数。

李:
“率先明确入雄安的是习大大吗?当年是毛主席率先明确入京的。虽然有人提议仍在南京建都。” 什么叫 入 的过饱和?

看样子 “明确” 的subcat 也有带 vp 的,虽然不如带np的 subcat 用得广。

另。假设 native speaker 的语感与大数据(作为语言共同体语言表现的代表)吻合(实际上当然不会总是吻合), 那么大数据搞不定的歧义就应该视为真歧义。大数据能搞定的就是伪歧义 尽管这个伪歧义以前被认为是句法真歧义。“以前”指的是没有大数据语义中间间或没有语义或常识消歧手段的句法分析器的那个时期。

【相关】

《李白之零:NLP 骨灰级砖家一席谈,关于伪歧义》

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

《朝华午拾》总目录



http://blog.sciencenet.cn/blog-362400-1055262.html

上一篇:【李白之43:谈谈绑定和回指】
下一篇:【李白宋铿锵行:聪明的一休与睿智的立委】

泥沙龙笔记:真伪结构歧义的对策(2/2) 【存档】

【存档】者,恢复科学网博客被遮蔽之博文也。有些文字也不知道犯了啥规矩,譬如本篇,纯学术沙龙,也莫名其妙封杀了。总之现在是风声鹤唳,杯弓蛇影。也难为编辑了,宁可错杀一千,不能放过一个,这也是高压下自保之策,可以理解。人在弯腰树,惹不起可以躲一躲,不是?

泥沙龙笔记:骨灰级砖家一席谈,真伪结构歧义的对策(2/2)

 

【立委按】读者的反应是,这次笔记是《立委科普》专栏中最深奥的。看得稀里糊涂,不明觉厉。的确,没有专业背景不行,这两篇不算严格意义的科普,当然也不是科唬,而是严肃的探讨,希望对后学和同仁更有价值。

好了,咱们接着聊,第二章:为什么多层系统,尤其是 多层 FSAs ,不受伪歧义的困扰?

白: 只要证明毛毛虫以外不是人话,就只管放心玩毛毛虫好了。

头头绪绪,怎么讲好呢?

白: 伪歧义跟规则的递归形式无关,跟规则的词例化水平和压制机制有关。但是,要hold住十万百万量级的规则,CFG一开始就必须被排除在外。

对。

说到底是规则的个性与共性关系的处理,这是关键。这个不是我的发现,我的导师刘倬先生早年就一再强调这个。刘老师的系统命名为 专家词典(expert lexicon )系统,就是因为我们把个性的词典规则与共性的句法规则分开了,并且在个性与共性之间建立了一种有机的转换机制。

白老师说得对,单层的 CFG 基本是死路。眉毛胡子一把抓,甚至所谓词典主义的 CFG 流派,譬如 HPSG 也不能幸免,不出伪歧义才怪呢。如果规则量小,做一个玩具,问题不严重。如果面对真实自然语言,要应对不同抽象度的种种语言现象,单层的一锅炒的parsing,没有办法避免这种困扰。

白: HPSG 之类可以依托树做语义信息整合,但是在树本身的选择数目都在爆炸时,这种整合是不能指望的。

可以说得具体一点来阐释其中道理。分两个小节来谈,第一节谈多层系统中,单层内部的伪歧义问题。第二节谈多层之间的伪歧义问题。

白: 但是仍然困惑的是某种结构化的压制,比如“美国和中国的经济”’。“张三和李四的媳妇”

如果这两种伪歧义都有自然的应对方式,那么伪歧义不是困扰就理所当然了。待会儿就讲解白老师的例子。我这人啰嗦,学文科的,生存下来不容易,各位包涵了。说到现在,从白老师的眼中,都是偏离主题核心了的。

白: 抽象的并列,天然优越于抽象的长短不齐。似乎并不关乎词例,词例化的、次范畴化的规则,都好理解。抽象的结构化压制,处于什么地位呢?

但是难得大家围坐在一起,忍不住借题发挥一下,顺带进一步阐释了上次“上海会面”上的论点:我对乔老爷既爱且恨,爱他批判单层统计派的一针见血;恨他一竿子打翻一船人,敌我不分,重理论轻事实。

白: 是因爱成恨好吧

我们实际上半条身子在统计派的船上,大家都是有限状态;半条身子在语言派船上,毕竟我们不是单层的有限状态。统计派的有限状态的典型表现 ngram 实际上是 n-word,而我们的有限状态是真正的 ngram,这个”gram“ 就是刘老师当年一再强调的 “句素”,是一个动态的句法单位,可以是词、短语或者小句,随 parsing 的阶段而定。这样的 ngram 是统计派难以企及的,因为它反映的是真正的语言学,统计学家天然不懂。

白: 世界上只有深层派和浅层派,这是复旦美女教授教导的。我认为只要touch深层,无论什么派都会殊途同归。

先说单层内部的伪歧义。这个白老师心里应该没有疑问了,不过为了完整还是先讲它。

单层的有限状态说到底就是一个 regex (正则表达式),只不过面对的单位根据语言层次的不同而不同而已。如果是 POS tagging 这种浅层,面对的单位就是 words (or tokens)。如果是句法关系的解析层,面对的单位就是短语(可以看作是头词,它代表了整个短语,“吃掉”了前后修饰语)。

对于单层,有两种结构歧义,一种是伪歧义,占多数;一种是真歧义,占少数,但存在。单层系统里面的每一条规则都是一个 pattern,一个缩小版的局部 parser (mini-parsing),试图模式匹配句子中的一个字符子串(sub-string)。歧义的发生就是 n 个 patterns 对相同的输入文句的字符子串都成功了。

白: 然后?

这是难免的:因为描述语言现象的规则条件总是依据不同的侧面来描述,每条规则涵盖的集合可能与其他规则涵盖的集合相交。规则越多,相交面越大。每条规则的真正价值在于其与其他规则不相交的那个部分,是那个部分使得 parsing 越来越强大,涵盖的现象越来越多。至于相交的部分,结论一致的规则表现为伪歧义,这是多数情形。结论不一致的规则如果相交则是真歧义。这时候,需要一种规则的优先机制,让语言学家来定,哪条规则优于其他规则:规则成为一个有不同优先度的层级体系(hierarchy)。

白: 在线?

FSA Compiler 事先编译好,是 FSA Runner 在线做选择。

白: 那要隐含规则的优先关系,不能初一十五不一样。

个性的现象优先度最高。共性的现象是默认,优先度最低。这个很自然。一般来说,语言学家大多有这个起码的悟性,什么是个性现象,什么是共性。

白: ”张三的女儿和李四的儿子的婚事“

如果优先语感不够,那么在调试规则过程中,语言数据和bugs会提请语言工作者的注意,使得他们对规则做有意义的优先区分,所谓数据制导 (data-driven) 的开发。

白: specificity决定priotity,这是个铁律。在非单调推理中也是如此。

这个优先权机制是所有实用系统的题中应有之意。

优先级别太多太繁,人也受不了。实际情形是,根本不用太多的优先级别区分,只要三五个级别、最多八九个优先级别的区分就足够了。

白: 我还是觉得优先级初一十五不一样的时候一定会发生,而且统计会在这里派上用处。

一切是数据制导,开发和调试的过程自然做到了这种区分。而更多的是不做优先区分的歧义,恰好就落在了原来的伪歧义的区间里面。这时候,虽然有n条规则都产生了 local parses,他们之间没有优先,那就随机选取好了,因为他们之间没有 semantic 的区别价值。

换句话说,真歧义,归优先级别控制,是数据制导的、intuitive 的。伪歧义则随机选取。这一切是那么自然,以至于从业者根本就没有真正意识到这种事情可能成为理论上的困扰。

关于初一15的问题,以及白老师的具体实例,等到我们简单阐释第二节多层之间的伪歧义的应对以后,可以演示。

第二章第二节,多层之间可能的真伪歧义之区分应对。

对多层之间的真歧义,不外是围追堵截,这样的应对策略在开发过程中也是自然的、intuitive 的,数据制导,顺风顺水。围追堵截从多层上讲,可以在前,也可以在后。在前的是,先扫掉例外,再用通则。在后的是先做默认,然后再做修补(改正,patching)。道理都是一样的,就是处理好个性和共性的关系。如果系统再考究一点,还可以在个性中调用共性,这个发明曾经是刘老师 Expert Lexicon 设计中最得意的创新之一。个性里面可以包括专业知识,甚至常识(根据应用需要),共性里面就是句法模型之间的变式。

好,理论上的阐释就到此了,接下去可以看实例,接点地气。白老师,你要从哪个实例说起?我要求实例,加问题的解释。

白硕: “中国和美国的经济”。这就是我说的初一十五不一样。

这是真的结构歧义,Conjoin (联合结构)歧义 。在语言外知识没带入前,就好比西方语言中的 PP attachement 歧义。结构歧义是NLP的主要难题之一。Conjoin 歧义是典型的结构歧义,其他的还有 “的”字结构的歧义。这些歧义在句法层无解,纯粹的句法应该是允许二者的共存(输出 non-deterministic parses),理论上如此。句法的目标只是区分出这是(真)歧义(而这一点在不受伪歧义困扰的多层系统中不难),然后由语义模块来消歧。理论上,句法和语义/知识 是这么分家的。但是实践中,我们是把零散的语义和知识暗度陈仓地代入句法,以便在 parsing 中一举消歧。

白: 一个不杀当然省事。但是应该有个缺省优先的。

缺省优先由”大数据“定,原则上。统计可以提供启发(heuristics)。

白: 有次范畴就能做出缺省优先。不需要数据。

当然。次范畴就是小规则,小规则优先于大规则。语言规则中,大类的规则(POS-based rules)最粗线条,是默认规则,不涉及具体的次范畴(广义的subcat)。subcat based 的其次。sub-subcat 再其次。一路下推,可以到利用直接量(词驱动)的规则,那是最优先最具体的,包括成语和固定搭配。

白: 次范畴对齐的优先于不对齐的,就联合结构而言。但是,about 次范畴,理论上有太多的层。

那是,联合结构消歧中的次范畴不是很好用,因为这涉及词的语义类的层级体系。不管是 WordNet 还是董老师的 HowNet,里面的 taxonomy 可以很深,统统用来作为次范畴,不太现实。但理论上是这样使用的。

白: 再一个,“张三的女儿和李四的儿子的婚事”。这个也是真歧义吗?

上例的问题和难点,白老师请说明。”的”字结构的 scope歧义加上联合结构的歧义的叠加现象?

白: 上例是处理深度的问题,各自理解即可。歧义叠加,只有更加歧义了。可是实际相反,叠加限制了歧义。

在分层处理中,我们是这样做的:

(1)Basic NP, 最基本NP层的结果是:NP【张三】 的 NP【女儿】 和 NP【李四】 的NP【儿子】 的 NP【婚事】

(2)Basic XandY, 最基本的联合结构层:在这个层次,如果条件宽,就可能发生联合错误,错把 【女儿 和 李四】 联合起来。这个条件可以是 HUMAN,二者都符合。而且在 95% 的现象中,这个条件是合适的。如果条件严的话,譬如用 RELATIVES 这个语义次范畴(HUMAN的下位概念),而不是 HUMAN 来限定的话,这个句子在这一层的错误就避免了。

那么具体开发中到底如何掌握呢,这实际上决定于设定的目标,没有一定之规。做细总是可以做到更好质量,大不了多加几层 NP 和 XandY 的模块(FSAs),但还是增加了开发和维护的负担。如果做粗一点,只要所造成的 parsing 质量上的后果能控制在应用可接受的范围,那也未尝不可,因为说到底,世界上没有完美的系统。上帝允许人类的不完美。

雷: 联合类的问题一直是nlp的难点。

白: 把这个换成“AB的中点与AC的中点的连线”?同样的结构。

另一个思路,就是多层协调中的修补。对于上述两个例子,修补的办法似乎更好。与其分多层,代入各种繁琐的语义条件来消歧,不如任他出错,然后根据pattern的平行因素加以修正。在多层系统中,这个常常是有效的策略,也符合开发的总体规划。先把系统大体弄得work了,可以对付多数现象,然后有时间和余力了,后面可以 patching。前提是,错误是 consistent 和 predictable 的。对于多层管式系统(pipeline system),错误并不可怕,只要这种错误 consistent 有迹可循,后面总可以把它们修正。

多层管式系统常常被批评存在一个 error propagation(错误放大)的难题。其实,多层系统也可以做到负负得正(矫枉过正是也)。一个好的系统设计,是后者,通过 data-driven,可以做到把错误放大控制到最低限度,并发扬负负得正来得到最终正确的结果。

白: 伟哥的诀窍其实是把握一个适中的词例化-次范畴化水平问题。太粗则伪歧义盛行,太细则边际效益大减。

上例中 “中点与AC” 可以联合,不过是一个暂时的内部错误而已,后面可以修正。总之,这些都不是根本的 challenge,想做就可以做,实际操作上,也可以选择不做。问题大了,就做;用户发飙了,就做;否则就无视。很少有歧义是做不出来的,功夫和细节而已。最终决定于值得不值得花这份力气,有没有这样的开发时间和资源。

白: 做与不做,有可能影响架构选择。补丁有好处也有后遗症。

NLP 可以做一辈子,在基本机制(优先机制,修正机制,范畴、次范畴机制,专家词典等)由平台实现提供以后,慢慢磨到最后就是 diminishing return,与爬山类似,这决定了我们何时罢手。如果85%的精度作为parsing的目标,那么系统会选择不做一些稀有的现象。有了这个 85%,已经可以满足很多应用的要求了。

有了 85% 做底, 还可以让机器变得智能起来,自动地自我提高,所谓 self-learning,这是研究课题了,但是是可以实现的。实际上在我指导的实习生实验中已经实现,不过就是不大实用而已。

白: 再看“馒头吃光了”?

这个例子更容易讲清楚,。在系统的某一层,可以有个规则 把某种 “V+光” parse 成为动补结构,这个V的限制可以调试出合适的子范畴来。

白: “光”词例化肯定是可以的。

好,这就解决了95%以上这类以“光”收尾的现象。如果遇到了反例,譬如,”黑洞吃光了“, 那么或者修正它,或者作为个体知识的规则前置。围追堵截是也。总是可以把零碎的专业知识做成规则,如果需要的话。至于这么做值得不值得,那是应用层面的决定。很多时候是不必要的。错了就错了,不过是显得系统缺乏专家的知识,so what?

即便是人,也决定于他的知识面,小学生和文盲一般不能正确 parse 理解 ”黑洞吃光“  的动宾语义来。动宾的语义是需要语言外知识在语言内非优先的潜在结构上作用才能得出。而动补结构则不需要,那是语言内的句法知识(最多说是句法子范畴或小规则,但不涉及专业知识),是所有国人的默认理解。

白: 这一点非常重要。一个开放,一个封闭。一个外部,一个内部。

外部的事儿,就算没有专业知识,也可以大数据招呼。

今天似乎可以结束了,说到底,就是

一,平台需要提供一些基本机制来处理共性与个性的关系,从而应对歧义,这些在 FSA formalism 的教科书定义中可能不存在,或被忽略,但却是实用系统不可或缺的。

二,NLP 的确是个力气活,有无限的可能深入。当然,我们可以选择不深入,可以选择何时罢手。

至于大数据招呼,那个在前述的自学习上也必须用到。

雷: 人在语言理解中也会发生许多歧义。如果机器发生的理解歧义同人的歧义,这个反而正常了。

我们教授机器做到 85%,大数据基础的自学习可以让它自行提高到 90%,这个是部分证实了的,可惜还没有发表出来,以前说过,懒得成文。都骨灰级老革命了,谁在乎那个。

雷: 大数据太笼统了。言语理解有太多层了。比如,比喻或隐喻。

白: 他就是要抹平这些层 @雷

我说的大数据是指与大语料库对应的 grammar trees 自动形成的 forest,比 PennTree 大好几个量级。

啰里啰嗦,把大家都吓跑了,只剩咱哥仨了?

雷: 这些抹平是暂时的还是永久的?

白: 实用主义的

雷: 同意,实用主义

对。实用主义,就是小平的猫路线。

这次神侃算不算基本回答了疑惑,可以得出 ”伪歧义在多层系统中不是困扰“ 这个结论?

白: @wei 是,非常感谢

不过,我们一方面实用制导,一方面没有忘记基本面和大局。与纯粹的实用主义,头痛医头,脚痛医脚,还是不同。

雷: @wei 这些可以发表在你的博客吗?@wei 许多东西在博客里更好更有指导意义

既然讲了,就博客吧。这种积一辈子挖煤的经验之谈,正式论文中罕见,也算一件功德。

难得的是白老师还有雷司令身为主流精英,居然能一开始就高于主流,不排斥异端或少数派。

所以上次上海聚会,我就说,火药味的架掐不起来的, 因为相互的理解和欣赏多于分歧。

白: 可以再关心一下NLP的商业模式,怎么能讲一个好故事。我们说fsa也好分层也好,资本都是不感冒的。

雷: 是,商业模式, 如李长官以前说的,怎么2c,而不是仅仅2b

白: 只要聚焦于深层,一定会殊途同归。

但我知道也有很多统计死硬派,甚至大牛,是不尿这壶的。

白: RNN记在统计账上,但已经是深层了。

滑稽的是发现有些死硬派做了n年NLP,却真地不懂语言学,有个别大牛连常识都不懂,让人跌破眼镜。当然这个只能内部说说,不能博客的。所以往往是互相地不尿对方那一壶,与宗教之战类似。

RNN 我还需要学习,才敢发言, 不过从白老师零星的介绍来看, 很可能殊途同归。不过 FSA 这套 deep parsing 是已经稳定成熟的技术。RNN 的工业成熟度如何,我不知道。

可能都是核弹, 不过是原子弹氢弹区别而已。

白: Ngram说不定变出个什么花样来,也殊途同归。

其实 多层 FSAs 本质上就是 ngram 的花样,不过 gram 不再仅仅是词了,而是等于或大于词的句素。能以动态句素作为 ngram 的对象,是因为多层的原因,跟剥笋子一样,层层扒皮,gram 当然就是动态的了。这一点很关键,是乔姆斯基都没想到的 power。

白: 对,边扫描边归约,边抛出句素。

黄: ngram是简单的统计,这几年也有许多进展,representation learning 算是深度学习在自然语言处理的热点。

这里面最 tricky 的不是机制而是细节。魔鬼在细节,就是指的这个。FSA 是”古老“简单的机制了,细节就是玩平衡,玩模块之间的协调。玩得好的就好比中餐的大厨,可以做出满汉全席来,玩不好的还不如麦当劳、keywords。到这一步,经验因素开始起作用。没碰过n次壁,甚至几万小时的炼狱,这个火候掌握不好。

白: 句素的个头大,影响范围就大,相当于抛得就远。可以进入远距离的滑动窗口,伟哥说的Ngram的缺点就不存在了。

黄: 很多新的模型都试图去capture long distance, sentence, paragraph的依赖关系,这里头可做的事情很多。

这类系统很难做得表面上漂亮光洁,总是在混沌中前行,要忍受不完美。这方面的忍受,数学家不如语言学家。他们天生追求简洁完美,不愿意将就。

白: dirty是必然的

ngram 的缺点是主流的缺点,不是语言多层派的缺点。恰好相反, ngram 多层以后,很容易比任何 CFG 做得细致深入,以至于,想怎么深入就怎么深入, 如果持续开发的话。

黄: 我感觉统计模型的优点之一是在某种程度上加上了semantic,比pure syntactic有很多好处

CFG 那套单层范式,无论统计模型还是传统文法加以实现,真地深入不下去,是框框决定的。两边都玩过,这种对比太强烈了。我对我的博导说过, HPSG 真地不好用,那边费那么大劲的事儿,在我这儿是小菜。说拿的是牛刀,可对象不是牛,而是鸡。不如我剪刀和匕首好宰鸡。

白: 我一个学生搞蛋白质折叠的分析。蛋白质大分子折叠的点恰好是若干局部的代表(相当于语言的head中心词)之间发生全局相互作用的地方。真是神了。

为世界和平和人类福祉计,统计模型和规则系统一定是要融合和弥补的,in some form。

这个忽视统计的教训我们也有过。如果没有统计的概念,没有大数据的制导,往往拍着脑袋而过度开发,最终是系统的臃肿不堪,甚至报废。我们语言学家是一种可能走火入魔的动物。必须要用数据制导和工程操作规范来制约我们,不能由着我们任性胡闹。

白:飞机要起飞了。关机。到北京再继续。

今天到此,特别谢谢白老师的互动和精彩的及时点评。

黄: 大胆假设,小心求证。复杂模型的威力如果有了海量带标数据没准能发挥。这几年好些统计模型都是老树开花。

黄老师还沉浸在主流的傲慢与光荣中,呵呵。

黄: 不好意思。

 

当然,任何奇迹都可能发生,就如在图像和语音中发生的奇迹一样。也许 deep learning 在 parsing 方面会有突破。可以想见,很多 DL 研究者正在朝着这个目标奔跑,似乎谁跑得快,谁就可以摘除NLP皇冠上的明珠。

不过这边厢有半个多世纪的传承和几十年的积累,奇迹已经发生了。

我最乐观的预测是,统计的奇迹一旦发生,从功能上也就是多层规则派奇迹的再现。从今后扩展上,也许更具优势?

拭目以待-ing。

【相关博文】

泥沙龙笔记:骨灰级砖家一席谈,真伪结构歧义的对策(1/2) 2015-09-21

 乔姆斯基批判

【置顶:立委科学网博客NLP博文一览(定期更新版)】



http://blog.sciencenet.cn/blog-362400-922450.html

上一篇:泥沙龙笔记:真伪结构歧义的对策(1/2)
下一篇:【旧文翻新:温哥华,我的梦之乡】
 

1  陈辉

发表评论评论 (4 个评论)

删除 回复 |赞[2]李维   2015-9-24 15:35
一不小心,把我以前的关于有限状态不是确定性状态的回复覆盖了,懒得重写了。总之,有限状态是一个 formalism,用来描写输入串如何模式匹配,而确定性和非确定性(deterministic、nondeterministic)是指的输出结果的形式。
删除 回复 |赞[1]srrc   2015-9-21 23:09
这种方法总觉得离人对语言的理解有偏差,人阅读会有回溯。但很多情况下,读如花园小径句子并不需要重读,可见人脑中本身就有多种后选,这与确定性状态有悖。
 回复  : 有限状态(finite state)不是确定性状态。有限状态只是一个formalism,一个捕捉语言句型和现象的工具,并非不允许不确定的状态。更加接近这个概念的是 deterministic,有限状态的方法并不是天然地输出 deterministic results,虽然实际上还是 deterministic 的过程实用。Non-deterministic 的结果,如果真地需要和有益的话,也还有其他的方法和技巧在系统中体现。
2015-9-21 23:491 楼(回复楼主)赞|回复
 回复  : 微博的一些评论转抄如下:

王伟DL
文章透露着落地的经验(经历)的光泽,不同的人对此文吸收和反射的谱线也会不同。我贪婪地一连看完,很多地方只觉得在理,的确是是是,有些地方也想表己见,却欲辨已忘言。“…指与大语料库对应的 grammar trees 自动形成的 forest,比 PennTree 大好几个量级。”,好羡慕这个大块头!大块头有大智慧!

@算文解字:这篇顶级高手对话,充满思想,可以当武林秘籍参悟的文章,竟然没人转。。。强烈推荐啊!

算文解字
依存关系的确更好用//@立委_米拉: (1) 分层是正道。最起码要两层,基本短语层和句法关系层。(2)顺便一提,作为生成结果,短语结构的表达远不如依存关系的表达。短语结构叠床架屋,不好用,也不够逻辑和普世(不适合词序自由的语言)。当然,这后一点是另外的话题了,不仅仅是 CFG vs FSG 之争了。

算文解字
也对,镜老师批评的是用同一层次的规则处理不同层次的现象的”原教旨”CFG生成方法,提出的对策为FST分层处理。而在CFG下用coarse2fine的(分层)策略,也算是殊途同归了。//@沈李斌AI: 没必要排斥CFG。CFG树是生成结果,不是生成步骤。设计好coarse to fine的生成策略,控制每一步的perplexity和recall
2015-9-24 15:242 楼(回复楼主)赞|回复
 

《李白之零:NLP 骨灰级砖家一席谈,关于伪歧义》

题记:此地有金八百两,隔壁RNN不曾偷。

李:今天我们可以讨论伪句法歧义(pseudo-parses)的问题。我说过,多层 FSA 的 deep parser 不受伪歧义的困扰,虽然这是事实,但也还是需要一个阐释。这个问题是革命的根本问题,虽然文献中很少讲述。

第一章,事实篇。

话说某年某月某日,立委与白老师在微博狭路相逢。其时,立委正海吹深度分析(deep parsing)乃是自然语言之核武器,批评主流只在浅层做文章,摘下的不过是低枝果实(low-hanging fruit)。白老师当时插话说(大意): 你们搞深度分析的不算,你们也有自己的挑战,譬如伪歧义问题。最后留下三个字:你懂的。

各位看官网虫,大凡社会媒体,只要留下这三个字,那就是宣告对手的不上档次,不值得一辩,叫你无还手之力,无掐架之勇,先灭了你的志气。此前,与白老师未有私人交往,更无卡拉ok,江湖上下,白老师乃神人也,天下谁人不知,况青年偶像,粉丝无数。立委见势不妙,战战兢兢,唯唯诺诺:“那自然”。我懂的。心里却颇不以为然:伪歧义其实不是一切深度分析的命门,它只是单层分析的挑战,特别是 CFG (Context-Free Grammar)类 parsers 的困扰。

这是第一章第一节,是锲子。

虽然心里不以为然,但是“我懂的”,却是有丰富的事实依据。骨灰级老革命有一个好处,就是碰壁。无数的碰壁。革命,碰壁,再革命,再碰壁,直至百毒不侵,火眼金睛。老革命可能还有一个好处,就是走运,走狗屎运(譬如赶上上世纪末的网络泡沫,米国的科技大跃进,天上掉馅饼),直至反潮流也没被杀头,硕果仅存。

话说自上世纪80年代社科院出道以来, 就开始做deep parsing, 跟着两位导师,中国NLP的开山前辈,中国MT之父刘先生。他们的几十年的机器翻译积累,在分析这块的传承就是多层模式匹配(multi-level pattern matching)。用 CL术语,就是 multi-level FSA (finate state automata)或 cascaded FSA,有限状态的。我是苦力、主力,新毕业生嘛,为 deep parsing 写了无数个性的词典规则和反复调试精益求精的600条抽象句法规则。埋头拉车,无需抬头看路。从来就没有碰到过什么伪歧义的问题。这是事实一。

事实二发生在我做博士的时候,90年代中期。在风景如画的SFU山头上。当时我的两位导师,电脑系的 Fred 和 语言系的 Paul 合作开了一个自然语言实验室。这两位博导虽也绝顶聪明,但毕竟还年轻。在 NLP 场面上,需要站到一条线上,才好深入。实际上,他们是加拿大 NLP 的代表人物。他们于是选择了当时流行的 unification grammar school (合一文法学派)之一种,就是继 Prolog 以后,开始火起来的合一文法中的后起之秀,名叫 HPSG (Head-driven Phrase Structure Grammar)。这一个小流派,斯坦福是主打,欧洲有一些推崇和践行者,在北美,闹出动静的也包括我的导师的实验室。HPSG 说到底还是 CFG 框架,不过在细节上处处与乔老爷(Chomsky)过不去,但又处处离不开乔老爷。理论上有点像争宠的小妾,生怕得不到主流语言学界乔老爷的正视。

白: 还没进正题

李:白老师嫌拖沓了??现在还在事实篇内。不讲道理。

HPSG 推崇者不少,真懂的怕不多,特别是把 HPSG 用于中文 parsing 方面。看过一些国人不着边际的 HPSG 论,造成了这个印象。这玩意儿得跳进去,才知优劣深浅。当然没跳的也不必跳了,合一(unification)这一路没成气候,现在跳进去也是白跳,浪费时间。HPSG 有一个好处,就是它的词典主义,它实际上就是此前流行的 GPSG 的词典主义版本。NLP 领域各路英豪你争我斗,但有一个很大的共识,就是词典主义,lexicalist approach or lexicalist grammar。这也反映在 HPSG,LFG 等风行一时的文法派中。

我呢,有奶便是娘。本来嘛,导师做什么,学生就要做什么,这才是学位正道。于是,我在HPSG里面爬滚了几年。照猫画虎,写了一个 CPSG,就是 Chinese 版本的 HPSG。用它与实验室的英文 HPSG 对接,来做一个英汉双向机器翻译的实验,当然是玩具系统。这是我博士论文的实验部分。

为什么双向?这正是 Prolog 和所有 unification grammars (又称 constraints based grammars)所骄傲的地方:文法无需改变,文法就是对语言事实的描述,文法没有方向。无论做分析(parsing),还是做生成(generation),原则上,规则都是一样的,不过是执行层面的方向不同而已。理论听上去高大上,看上去也很美,一度让我入迷。我也确实完成了双向的实验,测试了几百个句子的双向翻译,得到了想要的结果。细节就不谈了,只谈相关的一点,就是,伪句法歧义在这些实验中是一个 huge problem。这个 HPSG parsing 中,伪歧义的事实有多严重呢?可以说是严重到令人窒息。当时用PC终端通过电话线连接到实验室的server上做实验,一个简单的句子在里面绕啊绕,可以绕出来上百条 parses。当然,可以设置成只输出一条 parse 来。有时忍不住好奇心,就耐心等待所有的 parses 出来,然后细细察看,究竟哪个 parse 对。

额的神!

乍看全长得差不多,细看也还是差不多。拿着放大镜看,才看出某个 feature value 的赋值不同,导致了 parses 之间的区别。可这种不同基本上没有语义的区别性价值,是为 pseudo parses 之谓也。要都是伪歧义也好,那就随机选一个parse 好了,问题出在,这百来条 parses 里面有时候会混杂一两条真的歧义,即语义上有区别性价值的 parses,这时候,选此废彼就具有了操作层面的价值取向。否则就是以一派压制另一派,反对党永无出头之日。

这个问题困扰了整个 HPSG community(其实是整个 CFG 框架下的 community)。记得在 HPSG 内部邮件组的讨论中,怨声鼎沸,也没人能找出一个理论上和实践上合理的解决途径来。

白: 简单说就是时间复杂性上去了,结果复杂性没下来。折了兵,真假夫人还混在一起不知道赔谁合适。

李:这就是为什么当时您那么肯定地指出我作为深度分析语言工作者所面临的挑战,他是把我归到主流语言学乔老爷 CFG 的框架里说的。

在第一章事实篇结束前,简单说一下实践中的对策。后来我的导师与本省工业界合作,利用 HPSG MT 帮助翻译电视字幕。在真实应用中,他们只好选择了第一条成功的 parse 路径,完全忽略其他的 parses。这也是没有办法的办法。质量自然受损,但因为无区别意义的 pseudo-parses 占压倒多数,随机选第一条,在多数场合也还是可以的。

第一章小结:骨灰级老革命在没有理论探索的情况下,就在 deep parsing 的 field work 中经历了两种事实:一种是不受困扰的多层 parser,一种是深陷其中的单层 parser。因此,当白老师一口咬定深度分析的这个挑战的时候,我觉得一脑门道理,但就是有理说不清。至少一句两句说不清,只好选择逃遁。

对于绝大多数主流NLP-ers,NL的文法只有一派,那就是 CFG,无论多少变种。算法也基本上大同小异,chart-parsing 的某种。这个看法是压倒性的。而多层的有限状态文法做 parsing,虽然已经有半个多世纪的历史,却一直被无视。先是被乔姆斯基主流语言学派忽视,因为有限状态(FSA)的名字就不好听(多层不多层就懒得细究了),太低端小气下位了。由于语言学内部就忽视了它,自然不能指望统计派主流对它有重视,他们甚至对这路parsing没有啥印象(搞个浅层的模式匹配可以,做个 NE tagging 啥的,难以想象其深度parsing的潜力),尽管从有限状态这一点,其实统计派与FSA语言派本是同根生,二者都是乔老爷居高临下批判的对象,理论上似乎无招架还手之力。

白: 概率自动机和马尔可夫过程的关系

李:但是,多层 FSA 的精髓不在有限状态, 而是在多层(就好比 deep learning 的精髓也在多层,突破的是传统神经网络很多年停滞不前的单层)。这就是那天我说,我一手批判统计派,包括所有的统计,单层的多层的,只要他们不利用句法关系,都在横扫之列。因为这一点上还是乔老爷看得准,没有句法就没有理解, ngram 不过是句法的拙劣模仿,你的成功永远是浅层的成功, 你摘下的不过是低枝果实。不过恰好这种果子很多,造成一种虚假繁荣罢了。

另一方面,我又站在统计派一边,批判乔姆斯基的蛮横。实践中不用说了,管用的几乎都是有限状态。乔老爷要打死单层的有限状态,我没有意见。统计派的几乎所有模型(在 deep learning 火起来之前)都是单层,他们在单层里耗太久了不思长进,死不足惜,:)。 蛮横之处在于乔老爷对有限状态和ngam多样性的忽视,一竿子打翻了一船人。

白: RNN可以完美模拟FSA, 但是现在的人都把RNN当做统计派的功劳。

李:但是他老人家忘记了, 我只要叠加 FSA 就可以比他所谓的 more powerful 的 CFG 做得深透,而且合体(特别适合白老师说的自然语言的毛毛虫体型)。他对有限状态的批判是那么的无视事实和缺乏理性。他是高高在上的神,不食人间烟火的,我们各路NLP实践派对他都敬而远之,基本没有人跟他走。在他本应发挥影响的领域,他其实缺乏起码的影响力。倒是语言学内部被他控制了,语言的形式化研究跟着他亦步亦趋走了半个多世纪,离作为其应用场景的 NLP 却渐行渐远。这是一个十分滑稽的领域怪相。 

白: RNN加层、计数器、加栈、加长时记忆,本质上都在突破单层FSA的计算能力

李:好了,咱们接着聊第二章:为什么多层系统,尤其是 多层 FSAs ,不受伪歧义的困扰?

白: 只要证明毛毛虫以外不是人话,就只管放心玩毛毛虫好了。伪歧义跟规则的递归形式无关,跟规则的词例化水平和压制机制有关。但是,要hold住十万百万量级的规则,CFG一开始就必须被排除在外。

李:对。

说到底是规则的个性与共性关系的处理,这是关键。这个不是我的发现,我的导师刘倬先生早年就一再强调这个。刘老师的系统命名为 专家词典(expert lexicon )系统,就是因为我们把个性的词典规则与共性的句法规则分开了,并且在个性与共性之间建立了一种有机的转换机制。

白老师说得对,单层的 CFG 基本是死路。眉毛胡子一把抓,甚至所谓词典主义的 CFG 流派,譬如 HPSG 也不能幸免,不出伪歧义才怪呢。如果规则量小,做一个玩具,问题不严重。如果面对真实自然语言,要应对不同抽象度的种种语言现象,单层的一锅炒的parsing,没有办法避免这种困扰。

白: HPSG 之类可以依托树做语义信息整合,但是在树本身的选择数目都在爆炸时,这种整合是不能指望的。

李:可以说得具体一点来阐释其中道理。分两个小节来谈,第一节谈多层系统中,单层内部的伪歧义问题。第二节谈多层之间的伪歧义问题。

白: 但是仍然困惑的是某种结构化的压制,比如“美国和中国的经济”’。“张三和李四的媳妇”

李:如果这两种伪歧义都有自然的应对方式,那么伪歧义不是困扰就理所当然了。待会儿就讲解白老师的例子。我这人啰嗦,学文科的,生存下来不容易,各位包涵了。

白: 抽象的并列,天然优越于抽象的长短不齐。似乎并不关乎词例,词例化的、次范畴化的规则,都好理解。抽象的结构化压制,处于什么地位呢?

李:但是难得大家围坐在一起,忍不住借题发挥一下,顺带进一步阐释了上次“上海会面”上的论点:我对乔老爷既爱且恨,爱他批判单层统计派的一针见血;恨他一竿子打翻一船人,敌我不分,重理论轻事实。

白: 是因爱成恨好吧

李:我们实际上半条身子在统计派的船上,大家都是有限状态;半条身子在语言派船上,毕竟我们不是单层的有限状态。统计派的有限状态的典型表现 ngram 实际上是 n-word,而我们的有限状态是真正的 ngram,这个“gram” 就是刘老师当年一再强调的 “句素”,是一个动态的句法单位,可以是词、短语或者小句,随 parsing 的阶段而定。这样的 ngram 是统计派难以企及的,因为它反映的是真正的语言学,多数统计学家天然不懂。

白: 世界上只有深层派和浅层派,这是复旦美女教授教导的。我认为只要touch深层,无论什么派都会殊途同归。

李:先说单层内部的伪歧义。这个白老师心里应该没有疑问了,不过为了完整还是先讲它。单层的有限状态说到底就是一个 regex (正则表达式),只不过面对的单位根据语言层次的不同而不同而已。如果是 POS tagging 这种浅层,面对的单位就是 words (or tokens)。如果是句法关系的解析层,面对的单位就是短语(可以看作是头词,它代表了整个短语,“吃掉”了前后修饰语)。

对于单层,有两种结构歧义,一种是伪歧义,占多数;一种是真歧义,占少数,但存在。单层系统里面的每一条规则都是一个 pattern,一个缩小版的局部 parser (mini-parsing),试图模式匹配句子中的一个字符子串(sub-string)。歧义的发生就是 n 个 patterns 对相同的输入文句的字符子串都成功了。这是难免的:因为描述语言现象的规则条件总是依据不同的侧面来描述,每条规则涵盖的集合可能与其他规则涵盖的集合相交。规则越多,相交面越大。每条规则的真正价值在于其与其他规则不相交的那个部分,是那个部分使得 parsing 越来越强大,涵盖的现象越来越多。至于相交的部分,结论一致的规则有可能表现为伪歧义(结论完全一致是异曲同工,没有歧义,但设置一个系统的内部表达,难免涉及细节的不同),这是多数情形。结论不一致的规则如果相交则是真歧义。这时候,需要一种规则的优先机制,让语言学家来定,哪条规则优于其他规则:规则成为一个有不同优先度的层级体系(hierarchy)。

白: 在线?

李:FSA Compiler 事先编译好,是 FSA Runner 在线做选择。

白: 那要隐含规则的优先关系,不能初一十五不一样。

李:个性的现象优先度最高。共性的现象是默认,优先度最低。这个很自然。一般来说,语言学家大多有这个起码的悟性,什么是个性现象,什么是共性。

白: “张三的女儿和李四的儿子的婚事”

李:如果优先语感不够,那么在调试规则过程中,语言数据和bugs会提请语言工作者的注意,使得他们对规则做有意义的优先区分,所谓数据制导 (data-driven) 的开发。

白: specificity决定priotity,这是个铁律。在非单调推理中也是如此。

李:这个优先权机制是所有实用系统的题中应有之意。优先级别太多太繁,人也受不了。实际情形是,根本不用太多的优先级别区分,每一层分析里只要三五个级别、最多八九个优先级别的区分就足够了(因为多层次序本身也是优先,是更蛮横的绝对优先)。

白: 我还是觉得优先级初一十五不一样的时候一定会发生,而且统计会在这里派上用处。

李:一切是数据制导,开发和调试的过程自然做到了这种区分。而更多的是不做优先区分的歧义,恰好就落在了原来的伪歧义的区间里面。这时候,虽然有n条规则都产生了 local parses,他们之间没有优先,那就随机选取好了,因为他们之间其实没有核心 semantic 的区别价值(尽管在表达层面可能有细微区别,hence 伪歧义)。换句话说,真歧义,归优先级别控制,是数据制导的、intuitive 的。关涉伪歧义困扰的,则变成随机选取。这一切是如此自然,以至于用FSA做parsing的从业者根本就没有真正意识到这种事情可能成为困扰。关于初一15的问题,以及白老师的具体实例,等到我们简单阐释第二节多层之间的伪歧义的应对以后,可以演示。

第二章第二节,多层之间可能的真伪歧义之区分应对。

对多层之间的真歧义,不外是围追堵截,这样的应对策略在开发过程中也是自然的、intuitive 的,数据制导,顺风顺水。围追堵截从多层上讲,可以在前,也可以在后。在前的是,先扫掉例外,再用通则。在后的是先做默认,然后再做修补(改正、patching)。道理都是一样的,就是处理好个性和共性的关系。如果系统再考究一点,还可以在个性中调用共性,这个发明曾经是刘老师 Expert Lexicon 设计中最得意的创新之一。个性里面可以包括专业知识,甚至常识(根据应用需要),共性里面就是句法模型之间的变式。

好,理论上的阐释就到此了,接下去可以看实例,接点地气。白老师,你要从哪个实例说起?我要求实例,加问题的解释。

白: “中国和美国的经济”。这就是我说的初一十五不一样。

李:这是真的结构歧义,Conjoin (联合结构)歧义 。在语言外知识没带入前,就好比西方语言中的 PP attachement 歧义。结构歧义是NLP的主要难题之一。Conjoin 歧义是典型的结构歧义,其他的还有 “的”字结构的歧义。这些歧义在句法层无解,纯粹的句法应该是允许二者的共存(输出 non-deterministic parses),理论上如此。句法的目标只是区分出这是(真)歧义(而这一点在不受伪歧义困扰的多层系统中不难),然后由语义模块来消歧。理论上,句法和语义/知识是这么分工的。但是实践中,我们是把零散的语义和知识暗渡陈仓地代入句法,以便在 parsing 中一举消歧。

白: 一个不杀当然省事。但是应该有个缺省优先的。

李:缺省优先由“大数据”定,原则上。统计可以提供启发(heuristics)。

白: 有次范畴就能做出缺省优先。不需要数据。

李:当然。次范畴就是小规则,小规则优先于大规则。语言规则中,大类的规则(POS-based rules)最粗线条,是默认规则,不涉及具体的次范畴(广义的subcat)。subcat based 的其次。sub-subcat 再其次。一路下推,可以到利用直接量(词驱动)的规则,那是最优先最具体的,包括成语和固定搭配。

白: 次范畴对齐的优先于不对齐的,就联合结构而言。但是,about 次范畴,理论上有太多的层。

李:那是,联合结构消歧中的次范畴不是很好用,因为这涉及词的语义类的层级体系。不管是 WordNet 还是董老师的 HowNet,里面的 taxonomy 可以很深,统统用来作为次范畴,不太现实。但理论上是这样使用的。

白: 再一个,“张三的女儿和李四的儿子的婚事”。这个也是真歧义吗?

李:上例的问题和难点,白老师请说明。”的”字结构的 scope歧义加上联合结构的歧义的叠加现象?

白: 上例是处理深度的问题,各自理解即可。歧义叠加,只有更加歧义了。可是实际相反,叠加限制了歧义。

李:在分层处理中,我们是这样做的:

(1)Basic NP, 最基本NP层的结果是:NP【张三】 的 NP【女儿】 和 NP【李四】 的NP【儿子】 的 NP【婚事】

(2)Basic XandY, 最基本的联合结构层:在这个层次,如果条件宽,就可能发生联合错误,错把 【女儿 和 李四】 联合起来。这个条件可以是 HUMAN,二者都符合。而且在 95% 的现象中,这个条件是合适的。如果条件严的话,譬如用 RELATIVES 这个语义次范畴(HUMAN的下位概念),而不是 HUMAN 来限定的话,这个句子在这一层的错误就避免了。

那么具体开发中到底如何掌握呢,这实际上决定于设定的目标,没有一定之规。做细总是可以做到更好质量,大不了多加几层 NP 和 XandY 的模块(FSAs),但还是增加了开发和维护的负担。如果做粗一点,只要所造成的 parsing 质量上的后果能控制在应用可接受的范围,那也未尝不可,因为说到底,世界上没有完美的系统。上帝允许人类的不完美。

白: 把这个换成“AB的中点与AC的中点的连线”?同样的结构。

李:另一个思路,就是多层协调中的修补。对于上述两个例子,修补的办法似乎更好。与其分多层,代入各种繁琐的语义条件来消歧,不如任他出错,然后根据pattern的平行因素加以修正。在多层系统中,这个常常是有效的策略,也符合开发的总体规划。先把系统大体弄得work了,可以对付多数现象,然后有时间和余力了,后面可以 patching。前提是,错误是 consistent 和 predictable 的。对于多层管式系统(pipeline system),错误并不可怕,只要这种错误 consistent 有迹可循,后面总可以把它们修正。

多层管式系统常常被批评存在一个 error propagation(错误放大)的难题。其实,多层系统也可以做到负负得正(矫枉过正是也)。一个好的系统设计,是后者,通过 data-driven,可以做到把错误放大控制到最低限度,并发扬负负得正来得到最终正确的结果。

白: 伟哥的诀窍其实是把握一个适中的词例化-次范畴化水平问题。太粗则伪歧义盛行,太细则边际效益大减。

李:上例中 “中点与AC” 可以联合,不过是一个暂时的内部错误而已,后面可以修正。总之,这些都不是根本的 challenge,想做就可以做,实际操作上,也可以选择不做。问题大了,就做;用户发飙了,就做;否则就无视。很少有歧义是做不出来的,功夫和细节而已。最终决定于值得不值得花这份力气,有没有这样的开发时间和资源。

白: 做与不做,有可能影响架构选择。补丁有好处也有后遗症。

李:NLP 可以做一辈子,在基本机制(优先机制,修正机制,范畴、次范畴机制,专家词典等)由平台实现提供以后,慢慢磨到最后就是 diminishing return,与爬山类似,这决定了我们何时罢手。如果85%的精度作为parsing的目标,那么系统会选择不做一些稀有的现象。有了这个 85%,已经可以满足很多应用的要求了。

有了 85% 做底, 还可以让机器变得智能起来,自动地自我提高,所谓 self-learning,这是研究课题了,但是是可以实现的。实际上在我指导的实习生实验中已经实现,不过就是在线开销太大而已。

白: 再看“馒头吃光了”?

李:这个例子更容易讲清楚。在系统的某一层,可以有个规则 把某种 “V+光” parse 成为动补结构,这个V的限制可以调试出合适的子范畴来。

白: “光”词例化肯定是可以的。

李:好,这就解决了95%以上这类以“光”收尾的现象。如果遇到了反例,譬如,“黑洞吃光了”, 那么或者修正它,或者作为个体知识的规则前置。围追堵截是也。总是可以把零碎的专业知识做成规则,如果需要的话。至于这么做值得不值得,那是应用层面的决定。很多时候是不必要的。错了就错了,不过是显得系统缺乏专家的知识,so what?我们普罗 native speakers 也都不是每一行的专家,也并不是每句话都听懂,不也一样没觉得交流困难。就此例来说,决定于听者的知识面,小学生和文盲一般不能正确 parse 理解 “黑洞吃光” 的动宾语义来。动宾的语义是需要语言外知识在语言内非优先的潜在结构上作用才能得出。而动补结构则不需要,那是语言内的句法知识(最多说是句法子范畴或小规则,但不涉及专业知识),是所有国人的默认理解。

白: 这一点非常重要。一个开放,一个封闭。一个外部,一个内部。外部的事儿,就算没有专业知识,也可以大数据招呼。

李:今天似乎可以结束了,说到底,就是:

一,平台需要提供一些基本机制来处理共性与个性的关系,从而应对歧义,这些在 FSA formalism 的教科书定义中可能不存在,或被忽略,但却是实用系统不可或缺的。

二,NLP 的确是个力气活,有无限的可能深入。当然,我们可以选择不深入,可以选择何时罢手。

至于大数据招呼,那个在前述的自学习上也必须用到。我们教授机器做到 85%,大数据基础的自学习可以让它自行提高到 90%,这个是部分证实了的,可惜还没有发表出来,以前说过,懒得成文。都骨灰级老革命了,谁在乎那个。我说的大数据是指与大语料库对应的 grammar trees 自动形成的 forest,比 PennTree 大好几个量级。

这次神侃算不算基本回答了疑惑,可以得出“伪歧义在多层系统中不是困扰”这个结论?

白: @wei 是,非常感谢。

李:不过,我们一方面实用制导,一方面没有忘记基本面和大局。与纯粹的实用主义,头痛医头,脚痛医脚,还是不同。这种积一辈子挖煤的经验之谈,正式论文中罕见,也算一件功德。难得的是白老师还有雷司令身为主流精英,居然能一开始就高于主流,不排斥异端或少数派。所以上次上海聚会,我就说,火药味的架掐不起来的, 因为相互的理解和欣赏多于分歧。但我知道也有很多统计死硬派,甚至大牛,是不尿这壶的。

白: 只要聚焦于深层,一定会殊途同归。RNN记在统计账上,但已经是深层了。

可以再关心一下NLP的商业模式,怎么能讲一个好故事。我们说fsa也好分层也好,资本都是不感冒的。

李:滑稽的是发现有些死硬派做了n年NLP,却真地不懂语言学,有个别大牛连常识都不懂,让人跌破眼镜。当然这个只能内部说说,不能博客的。所以往往是互相地不尿对方那一壶,与宗教之战类似。

RNN 我不敢发言, 不过从白老师零星的介绍来看, 很可能殊途同归。不过 FSA 这套 deep parsing 是已经稳定成熟的技术。RNN 的工业成熟度如何,我不知道。可能都是核弹, 不过是原子弹氢弹区别而已。

白: Ngram说不定变出个什么花样来,也殊途同归。

李:其实 多层 FSAs 本质上就是 ngram 的花样,不过 gram 不再仅仅是词了,而是等于或大于词的句素。能以动态句素作为 ngram 的对象,是因为多层的原因,跟剥笋子一样,层层扒皮,gram 当然就是动态的了。这一点很关键,是乔姆斯基都没想到的 power。

白: 对,边扫描边归约,边抛出句素。

李:这里面最 tricky 的不是机制而是细节。魔鬼在细节,就是指的这个。FSA 是“古老”简单的机制了,细节就是玩平衡,玩模块之间的协调。玩得好的就好比中餐的大厨,可以做出满汉全席来,玩不好的还不如麦当劳、keywords。到这一步,经验因素开始起作用。没碰过n次壁,甚至几万小时的炼狱,这个火候掌握不好。这类系统很难做得表面上漂亮光洁,总是在混沌中前行,要忍受不完美。这方面的忍受,数学家不如语言学家。数学家天生追求简洁完美,不愿意将就。

白: 句素的个头大,影响范围就大,相当于抛得就远。可以进入远距离的滑动窗口,伟哥说的Ngram的缺点就不存在了。

dirty是必然的。

李:ngram 的缺点是主流的缺点,不是语言多层派的缺点。恰好相反, ngram 多层以后,很容易比任何 CFG 做得细致深入,以至于,想怎么深入就怎么深入, 如果持续开发的话。

CFG 那套单层范式,无论统计模型还是传统文法加以实现,真地深入不下去,是框框决定的。两边都玩过,这种对比太强烈了。我对我的博导说过, HPSG 真地不好用,那边费那么大劲的事儿,在我这儿是小菜。说拿的是牛刀,可对象不是牛,而是鸡。不如我剪刀和匕首好宰鸡。

白: 我一个学生搞蛋白质折叠的分析。蛋白质大分子折叠的点恰好是若干局部的代表(相当于语言的head中心词)之间发生全局相互作用的地方。真是神了。

李:今天到此,特别谢谢白老师的互动和精彩的及时点评。

原载:
科学网—泥沙龙笔记:真伪结构歧义的对策(1/2) 
骨灰级砖家一席谈,真伪结构歧义的对策(2/2)

【相关】

乔姆斯基批判

【立委科普:管式系统是错误放大还是负负得正?】

关于NLP方法论以及两条路线之争

[转载]【白硕 – 穿越乔家大院寻找“毛毛虫”】

【白硕 – 打回原形】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《李白121:关系的语义解密》

李:白老师新作【白硕:闲话语义(7):事件】最后一段 “5、元关系·关系类型·裸关系” 蛮深奥,但很重要。看我理解对不对。想请教@白硕 的是,ontology 里面的概念节点,相当于词典里面的词。这些节点之间的关系都是“裸关系”吗?我一直把本体知识库 ontology 里面的一切关系看成“元关系”,对照于实体之间的“关系”,前者是后者的抽象,是人类世代积累的常识积淀。

ISA 与 “关系-判断”类型(譬如 partOf)不同样是“语义知识体系内部的关系”吗?当然感觉上 ISA 是 ontology 的核心骨架,单列出来也是合理的。 作为落地实现工具的知识图谱里的“关系”,是实体知识库,感觉不能与 ontology 混杂。前者是动态的“世界知识”(对于形势、趋势、身边事、国家大事的感知),后者是静态的常识(元知识)。

白:我们的目标,最后是要把与HowNet在表达能力上至少相当、在计算能力上更胜一筹的ontology写在知识图谱里。

李:是的,HowNet 很丰富细腻,但不好用,因为没有图谱的“技术栈”。

首先,实体和本体是分开的吧?怎么建立二者的联系是另一回事儿。作为知识库管理,应该是分开的。本体是封闭的、可以穷尽的知识体系。实体是完全开放的世界知识,而且每时每刻都在演变。

白:这个语义知识库只是应用的一部分。或者说,借助知识图谱的技术栈让语义知识库落地。怎么用,后面还有很多种可能性。

李:partOf 这类“关系-判断”类型的输出是“布尔”即逻辑真值。ISA 不也是吗?

“抽屉”是“橱柜” 的 part:TRUE
“动物” ISA “生物”: TRUE
“橱柜” ISA “生物”:FALSE

白:如果解析句子“他过去是单身汉,现在不是了。”

李:那是实体知识,不是本体知识。

白:本体要提供表示手段。

李:相关的本体知识是:“单身汉”是关于 “男人” 的属性,或一个子集。

白:这是经过一层解析了。单身汉首先是一个节点,他是另一个节点(男人节点的实例)。先要说这两个节点是怎么连的,再说根据单身汉的定义怎么“重写”他的属性。

李:解析是落地到实体,真还是假。本体是说类型合适不合适(相谐否):“类型”不合适的连真假都谈不上(记得以前的一个名句:his argument is not true,it is not even false,说的就是“不着调”的论辩)。

白:在“怎么连的”这个问题上,我的意思是,不是在“他”和“单身汉”之间连一个标签为ISA的飞线(裸关系),而是把二者都作为输入(一个实例、一个类型),连到一个“属于判断”节点的实例。语义解析不只是判断相谐性,还要构造一系列实例。

有两个“属于判断”事件。二者都是实例,一个指向“单身汉”,另一个排除指向“单身汉”。二者的时间标签不同。第二个事件“刷新”逻辑主语在实体知识库中的婚姻状况属性,但事件本身是log,当我们需要replay或者进行时序有关的查询时,就必须借助之。

李:对,“构造实例”本来就是“信息抽取”的核心目标。语言解析是支持信息抽取的。

张三:前-单身汉;现-已婚。
假设 已婚 == !单身汉(在西方不成立:在美国填有些表可复杂呢:在个人关系栏目里面有一长列关系:同居、异性婚、同性婚、变性婚、单身、丧偶 ……..)

实体知识图谱“通常”不收入“非”:排除单身汉的常规不收,除非换个特征名/维度(譬如:从“单身汉”换成“已婚”)。因为定义一个实体,定义是什么,比定义不是什么,边界清晰多了。

白:这个观点,和人机对话系统不支持回答否定句的那件事,互相锁定了现状。

李:回到前面的问题:“属性类型” 说的就是 ISA 元关系吗?

白:属性类型之间可以存在ISA元关系,但那不是给“构建实例节点及其相关的边”用的。

李:的确如此。当然不是“构建实例节点”。本体里面,by definition,根本就没有“实例”。实例是实体知识的范畴。本体里面说的关系,大多是“潜在”的关系。悬在空中没有落地的那种,才叫本体。这是人类把握世界,人脑给世界分类的概念化结果。

关于本体和实体,最有意思的例子可以追溯到“白马非马”论。这个悖论(?)中,“白马” 在理解中是落地到实体的(就是那个说话者和听话者你知我知的那匹白马);第二个 “马” 则是没落地的本体(概念/类型)。对于朴素唯物主义者来说,任何表达或判断,都必须“唯物”,不落地就无从辨真伪,辨别不了真伪的东西,一律不承认,因此 “(此)白马非(类型)马”。这是把元关系 ISA 也从 ontology 拉出来,非要让它落地。也不能怪他,本来这种关系就是内在的(存在人类共同体的脑瓜中,或集体记忆中),可以认为是一种给定的无需证明的公理,是你知我知的“真理”。把没有信息量的“公理”表述出来,哲学家可以借此反思本体论的形而上特性,表现朴素唯物论的反智。如果我们把“知识”默认为实体的种种(知识就是了解世界发生了什么),“元知识”的本来意义就是悬在空中,没有落地(到实体)的意思。

白:我们在本体里就区分元知识和潜在知识。潜在的关系也不是元关系,比如比较大小:

<quantity>大于<quantity>

语义解析不构造元关系的实例,但会构造潜在关系(我们叫关系类型)的实例。

李:不太明白。数量可以比较大小,这不就是元知识、元关系吗?到了实例,就是:

pi > 3 : TRUE
pi > 4: FALSE

这就落地了,成为实体知识(实际上是数学常识)。

白:大于,是关系类型,不是元关系。元关系是我们推理用的,不是理解用的。元关系永远留在本体里,关系类型可以实例化。

李:有点晕了,主要是术语概念先要有个统一的定义。“潜在关系(我们叫关系类型)”,举个例子。

白:刚才说的“大于”就是啊。大于是关系类型。

李:“构造潜在关系(我们叫关系类型)的实例”,上面的 pi > 3 就是。ISA 不也是关系类型?

白:ISA不是。关系类型用节点实现,不用边实现。节点带论元,也就是态射。节点还带属性。关系类型节点可以带时态属性。

李:“节点” 就是 “词/概念”。节点带论元的典型例子是谓词。

白:纯粹的边不带属性。大于,就是谓词。大于,不处理成纯粹的边;ISA,处理成纯粹的边。ISA没必要带时态属性。

李:这是本体的 ISA,确实谈不上时态,是超时间的,恒真。因为概念世界就是这么定义和抽象的。

实体的 ISA 是有时间变化的:人曾经是猴子,很多年以后,人成为政治动物。

白:属于判断,是另外的事情。我们不用跟ISA混淆的表示,而且必须用带论元的节点表示。

李:对,实体判断的 ISA 与本体内部的 ISA 不是一回事。

白:这也不算是实体,只是可落地为实体而已。“人曾经是猴子”。这个“人”,用的既不是全称量词,也不是存在量词。是那个时候活着的人全体。

李:上面的“人”(人类)感觉是“半实体”。显然早已不是纯粹的本体了。

白:不是本体。是“实例化+泛化”。

李:嗯。

<quantity>大于<quantity> 如何在 ontology 里面体现?有什么用处?<quantity> 是一个节点(类型/概念)。

白:两个quantity是输入节点。“大于”是输出节点。它的类型继承路径可以一路走到event/static/boolean……。event再往上,就是thing(root)了。

要说用处,自然是为实例化提供了模板,同时也为相谐性检验提供了门神。一个向左一个向右。

李:就是说,看到 “5 大于 3” 甚至 “3 大于 5” 这样的说法,本体知识“门神”说,对,类型靠谱。看到 “品性大于知识” 的说法,本体知识说:类型不符合,可能是引申或比喻。如果这就是“用处”的话,不能说没用。但也说不出对语言理解有啥真用。

<quantity>大于<quantity> 在以前的谓词句型词典里面是这样的:

大于:Subject:CD;Object:CD

这是所谓 SUBCAT 句型对潜在填坑的萝卜做了限定:是期望一个数词。它与其他及物动词的 SUBCAT 标注是一致的,如:

EAT:Subject:Animate;Object:Edible

白:“5大于这三个数的平均数”

对parsing的作用是逆向选择,对语义解析的作用是顺向构建。

李:我好奇 “<quantity>大于<quantity>” 与 “大于:Subject:CD;Object:CD” 有什么区别?提供了哪些额外的价值?

“平均数” 虽然不是 CD, 但它是可以兼容的类型 (CD 的本体类型)。这就好像要求【human】,不仅仅实体 “张三” 合格(合乎预期类型), “演员” 也合格。

白:“平均数”也是一个态射,输入类型是quantity的集合,输出类型是quantity。这就实现了符合相谐性的“组装”。

李:对,“平均数” 也是某种 谓词:

平均数:【Arg1:CD】【Arg2:CD】 (……[Argn:CD])

如果用传统 SUBCAT 标注的话,大体如上:它期望至少两个数作为输入。还是不大清楚这种知识在实际语言解析和落地中的价值。有了 SUBCAT,解析感觉就够了。除了要做逻辑推理,譬如,验证某三个数的平均数是不是像语言表述中的那样,是真的还是错的?(这在文档核对、质检的场景似乎有用。)

白:针对类型的检查和针对值的推理/计算不是一回事。关键是,延展到领域知识,只需要做加法,不需要改动顶层设计。通用语义知识和领域知识可以无缝衔接。解析的输出物是自带螺钉螺母并经过装配的义素。领域知识中的实体和事件,也是如此这般地装配,没有其他。

李:“元关系永远留在本体里,关系类型可以实例化。” 这句话好,把 ontology 中两种关系区分开了。

“解析的输出物是自带螺钉螺母并经过装配的义素。” 这就是语言学中的 semantic compositionality。就是把珍珠串成项链。

白:朝着“构成”这个方向看去,应用潜力巨大无比。

李:潜在知识就是为落地的。元知识不需要落地,因为它本来就是从无数历史实例中抽象出来的“真理”。潜在知识虽然也是从历史实例中抽象出来的(“趋势”),但不是恒定的“永真”。“构成”/“组装” 就是 “compositionality”,这是语义学中的最核心的概念了。

白:但是它可以一定程度上超脱于“语”。

李:“类型(type)” 就是超越 “语(词)”,是“概”念之间的东西。所谓本体是“元”知识,也就是说的这种超越,不仅仅超越“语”(这种表达体系),而且超越“实体”(客观世界),构成的是概念世界,是人这种物种所特有的范畴。当然,概念世界是从客观世界抽象来的,不是凭空来的。这些应该算哲学了。

白:不仅如此。语言表述可能比较细粒度,有情报价值或其他应用价值的事件粒度更粗,由細到粗,事件长的样子没变,但是已经脱离了字面意义的解释,进入事件驱动的推理、模拟、重演甚至数字孪生了。一个公司的几项人事变动后面隐藏着的粗粒度事件,可能是清洗。财务指标变动的后面是啥,也都有主儿。

李:有意思。这是从碎片化信息 event instances 推导其背后的情报。不过这种推导、预测或形势判断,开始进入“雷区”。就好比前几天我的公司让我重发当年对特朗普的大数据分析预测(《弘·扬 | 首席科学家李维科普:大数据告诉我们,特朗普如何击败希拉里》),我说,不要提“预测”,那是雷区:

把:“预测了特朗普的胜选” 改为 “大选前夕及时提出警示,各种自动数据分析表明,希拉里选情告急,特朗普胜算大增”。留点余地。当时的确是胶着,任何预测都冒风险。但选情变化之快,没有大数据,很难及时提出预警。主流民调就没有来得及预警,因为他们被信息压倒了。

白:我们的核心思想是,语言解析得到细粒度的事件,细粒度的事件imply粗粒度的事件,粗粒度的事件驱动其他粗粒度的事件或与之互动。对错另说,但事件长什么样不用另起炉灶了。如果粗粒度的事件完全是另一套,两张皮,就是NLP的失败。

李:两张皮怎么讲?以前的NLP怎么到了应用就两张皮了?

白:比如游戏,对命令的解析结果是一种数据结构,执行命令的战争进程是另一种数据结构,这就是两张皮。

李:不懂游戏。不过如果是两种数据结构,应该是一种映射到另一种。这也是常见的做法。譬如我们的 parsing 就是先造树结构,然后映射到图结构。以前也做过直接的图结构,不建树。这么多年实践下来,还是觉得建个树作为桥梁,感觉系统更加模块化,也更加方便。树虽然表达力不够,但作为桥梁是有便利之处的。过河拆桥,树在深度解析中最后基本是废弃了。

白:在金融领域也是这样。如果领域专家理解的事件、事件驱动,跟语言解析得到的事件、事件驱动,有很大的鸿沟,就没法玩了。一定有一个东西是统一的,而且是直接跨过去的。装配可不局限于树。在语义层面,树是没道理的。

李:顺便一提,图有种种好处,但是图规则不直观,难以理解,维护和调试都有挑战。这是因为图增加了维度,丧失或忽略了线性特点,结果就是面对一个图模式(graph pattern),在头脑里需要首先形成一种多维度的“图形”(picture),才感觉直观,才理解在节点之间穿行的模式,到底是干什么的。

本来我曾想尽量把更多的工作从句法树层次转移到语义图层次来做,感觉更加合理,但几年下来发现,句法是精简了,漂亮了,但语义这块越来越看不懂了。可是句法的东西即便是N年前做的,却一看就懂。接地气,容易维护。

再提一点:句法树 –》语义图 –〉实体知识图,这个 pipeline 的确有一个理由在:有情报价值的实体知识图谱与语义图是“同质”的,与句法“树”是不同质的。因此经过语义模块以后再做抽取,显得更加合理,很多时候所谓落地实用不过就是把图里面的“边”改个名称而已(甚至可以让用户配置)。譬如。针对 HIRE 这样的谓词,把 “S”(逻辑主语)这个边改为 【雇佣者】,“O” 改为【受雇者】,这就完成了“雇佣/HIRE” 这个 event 的抽取(逻辑语义图到事件图的映射)。这个事件的其他特征,譬如时间、地点、条件 等情报,常常可以照搬过来,连改都不用改(改就是映射),直接从图上继承下来即可。这里描述的语言技术的实践,感觉是呼应了白老师说的“无缝连接”。而共同体使用的宾州树(Penn Tree)结构,就很难做到“无缝连接”,由于表示体系的“鸿沟”。

还是回到 ontology 来。

白:前面说的“张三的小说没有散文写得好”,其实有两个“写”事件的实例,逻辑主语都是张三,逻辑宾语一个是小说,一个是散文,两个事件都通过“副作用”把自身的输出类型藏起来,而让各自的逻辑宾语带着其输入类型进入“好”获得quantity类型,再把两个quantity送进“大于”事件。

李:这个非常有意思。哦,“大于”事件不仅局限于数量,也可以是其他度量比较(包括质量)。

白:


这个图大概就是装配的结果。“没有”还有一层否定,在Boolean的右面。“没有”还有一层否定,在Boolean的右面。或者其实应该使用“小于”关系。主要以此说明义素装配出来长啥样。没有装配就没有语义理解。

李:虽然大作最后一段文字也不长,开始感觉是,每个字都认得,每句话都不大认得,LOL:

5、元关系·关系类型·裸关系

在事件的表示中,我们使用了态射。事件有多种类型,其中有一种就是静态事件,它又細分为属性类型和关系-判断类型。这里的“关系-判断”类型的输出是“布尔”即逻辑真值。因此,它构成集合论和数理逻辑含义下的“关系”。这种语义知识体系内部的“关系”和IS-A这样的“元关系”是什么“关系”呢?它们和作为落地实现工具的知识图谱里的“关系”又是什么“关系”呢?我们看到一些语义知识表示框架的相关文献在这个问题上有些含糊。在这里,我们要做一些基本的约定。

把语义表示单元(类型)作为研究对象,探讨它们之间的“关系”,这是元关系。

作为语义表示单元(事件)之一个细分类别的“关系”,这是关系类型。跟元关系不是一回事。“部件(PartOf)”关系就是一种关系类型,而不是元关系。

在知识图谱体系内,无论是元关系,还是关系类型,都可以用知识图谱显性定义的“二元关系”来实现。我们把知识图谱里显性定义的二元关系称为“裸关系”,并约定,元关系在知识图谱里一律直接实现为裸关系,关系类型在知识图谱里一律间接实现为事件节点,哪怕关系类型就是二元关系,也必须通过事件节点来实现。具体来说就是:设事件A有n个输入类型一个输出类型,那么事件A就必须拆分成n个裸关系,其中每一个裸关系的开始节点都是这个事件节点本身,目标节点则是对应的输入类型节点,而边上的标记就是角色名,包含角色名由粗到細、由抽象到具体的整个继承路径。

这样做的好处,就是对元关系和关系类型做出严格区分,既避免了因开发团队个人理解的差异而将本体定义引向歧途,又给类型作为统一的语义知识表示对象留出统一的数据结构模型,便于定义方式的整体把握。举一个明显的例子,无论实体类型还是事件类型,其特征K-V对都是定义在自身节点上的,不会因为事件类型恰巧是二元关系就把它实现为裸关系,因为把一些类型对应的特征K-V对加载到节点上、把另一些类型对应的特征K-V对加载到裸关系上,不仅架构上是很不协调的,而且也给实现带来不必要的难度。

白:这一段憋了我不少天呢。

李:就像吕叔湘先生批评乔姆斯基一样,说他什么都好,就是说话艰涩,不懂得科普。白老师也可能有同样的问题。不知道,这段话有多少人能看明白。当然,肯定比爱因斯坦的相对论要强,据说很长时间,全世界只有三个半人看得懂相对论。

白:这个系列,不是严肃的学术论文,更像是整理阶段性思路的随笔。至于科普写作,还早着呢。

李:不拘一格。没必要用学术论文的那种格式。探寻语义结构和理解认知的奥秘,也是AI的前沿了。无论主流的热潮怎么走来走去。

关于这一小节的最后,你说:

“举一个明显的例子,无论实体类型还是事件类型,其特征K-V对都是定义在自身节点上的,不会因为事件类型恰巧是二元关系就把它实现为裸关系,因为把一些类型对应的特征K-V对加载到节点上、把另一些类型对应的特征K-V对加载到裸关系上,不仅架构上是很不协调的,而且也给实现带来不必要的难度。”

我的问题是:“事件类型恰巧是二元关系就把它实现为裸关系” 这种做法不大可能在 ontology 里面的呀,譬如 HowNet,所有的潜在关系的预示全部是以节点为单位的。我的理解是,只有到了实体知识图谱,才会有实现为裸关系的“边”来表示的(当然也可以不用裸关系来表示)。

白:不限制,就有可能。所以作为一条铁的纪律。

李:顺便提一句:白老师所谓 “特征 K-V 对”,在HPSG这类 constraint based formalisms 中叫做 AVM(Attribute-Value Mattrix)。而且这些 formalisms 中的 AVM 是严格的 typed AVM(typed data structure),每一个AVM图示为一个框,type作为框的下标。AVM 中的 V 可以是原子,也可以是另一个 typed AVM。从表示形式的统一性、操作的单一性(合一)以及逻辑严谨性和丰富性来看,这种formalism 是非常令人印象深刻的。

白:借助数据结构的type和本体的type是一回事?我表示谨慎怀疑。

李:这类系统的根本缺陷不仅仅是繁复,还有就是unification(合一)无法应对“顺杆儿爬”。另一个就是这种formalism提供了使用者相当程度的任意性,你可以把任何一个子结构(sub AVM)用 合一(实现的时候叫 structure sharing,实际上就是子图匹配和融合)的手段,放到任何一个 Attribute 里面去。

白:顺杆儿爬是句法适应语义。到了语义哪有顺杆儿爬,都是严格的类型检查。该脑补的都得在前面做掉。

李:“该脑补的都得在前面做掉。” 这个可以商榷。更多也更便利的做法是,脑补留到最后。

白:比如,“张三的小说没有(张三的)散文写得好。” 那个括号里面的东东就是顺杆儿爬出来的。到了语义层面,另一条边就得乖乖地画出来。句法的最后,相对于语义仍然是“前”。最多是内部名字有了,挂什么外部名字留到最后。但是内部名字跟事件的连线,必须有。而且必须符合类型约束。

李:严格的类型检查是一面,检查的另一面是,根据犯规的程度,来决定如何松绑或输出另外的解读或者输出 nonsense 的判断。

关于连线(linking),觉得也可以反过来想。在一个局部环境里(local context,say 5-gram),把默认的不连线,因此必须“做功”(句法解析)才能连线,改为默认就连线,因此找一些条件去不断剪枝。当然这蕴含着组合爆炸。但爆炸不爆炸是随着计算条件的不同,而有不同的抗压力的。如果反过来思维,上面的办法就是把句法、语义和语用等等的约束,全部统一看成是“剪枝”的过程。这个思路我感觉有突破性的潜力。因为实际上所谓的 compoasitionality 其实根本不需要真地去组装每一个原子(义原)部件,而是可以组装“预制件”。local context 都连然后通过词典或其他模块去剪枝,就与预制件的思想比较一致了。

白:这就是我说的统一优先级啊。语义、情感、事理、大数据,都可以给优先级加分或者减分。最后还是调整后的优先级说了算。不调整就相当于按句法default装配。

李:统一优先级的最大问题在怎么统一?

白:回到机器学习啊。加分减分不就是一个待定的参数么。神经做这个最擅长了。

李:这是机器学习里面说的 heterogeneous evidence 如何对付的老问题,这个挑战,学习里面一直困扰了好多年,到深度学习以后也不能说就解决了。譬如特斯拉内部人员透漏的最大难点也是在这上面,说上百个模型弄出那么多东西出来。最后的输出就是 x(速度)和y(方向)两个赋值。面对那么庞大的输入参数,和这么小的输出,老是在 “杂乱的(heterogeneous)” 输入因素之间摆不平。自动驾驶的质量控制因此成为一个非常大的挑战。一不小心就有了 regressions:明明上一个版本在一个急转弯控制得很好,版本更新后,突然就失控了。这种事情,很多用户有反馈。

他们现在还是学 Lidar(激光雷达),把各种 cameras 的感知数据,先整合成统一的三维模型,然后去 feed 给系统。这样来减少“杂乱度”,说这种模拟激光雷达的软件模型解决办法,比以前的系统,好多了。

白:对于NLP错误结果不会那么致命,就是正确的解析早几个回合出来还是晚几个回合出来的事儿

李:谢谢 @白硕 老师,大作的最后一段总算看得有些明白了,一开始觉得是天书。期待语义系列的下一篇。


【相关】

白硕:闲话语义(7):事件

【弘·扬 | 首席科学家李维科普:大数据告诉我们,特朗普如何击败希拉里

是特斯拉的自驾AI牛还是马斯克牛?

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

白硕 – 穿越乔家大院寻找“毛毛虫”

【置顶:立委NLP博文一览】

《朝华午拾》总目录



《李白詹120:乔老爷老矣》

李:从最近的访谈看,原来,乔姆斯基认为结构歧义是语言中最有意思的现象,他也提到,现在这个现象已经不再神秘了。我们对它有清楚的认识。

问:你在语言学或认知科学中看到的语言或思想中最迷人的方面是什么?

答:我认为语言最深层的属性或者最令人费解的属性是一种结构性依赖的东西。现在我们对它很了解,但之前却令人费解了很长一段时间。

举例来说,这家伙修车小心翼翼地打包工具(the guy who fixed the car carefully packed his tools),这句话其实是模棱两可的,它所表达的意思可以是小心翼翼地修理汽车,也可以是小心地打包他的工具。副词与哪个动词相关的(是离最近的还是最远的)是一个非常令人费解的事情。

from《乔姆斯基专访:深度学习并没有探寻世界本质

原文更清晰,这一段是:

[Lex] He has something in common with infants in that way. So, back to linguistics, if you could humor me, what are the most beautiful or fascinating aspects of language, or ideas, in linguistics, or cognitive science, that you’ve seen in a lifetime of studying language and studying the human mind?

[Noam] Well, I think the deepest property of language and puzzling property that’s been discovered is what is sometimes called structure dependence. We now understand it pretty well, but it was puzzling for a long time. I’ll give you a concrete example. So, suppose you say “the guy who fixed the car carefully packed his tools.” That’s ambiguous. He could fix the car carefully or carefully pack his tools. Now suppose you put carefully in front: “Carefully the guy who fixed the car packed his tools.” Then it’s carefully packed, not carefully fixed. And in fact you do that even if it makes no sense. So, suppose you say, “carefully the guy who fixed the car is tall”. You have to interpret it as carefully he’s tall even though that doesn’t make any sense. And notice that that’s a very puzzling fact because you’re relating carefully not to the linearly closest verb but to the linearly more remote verb. Linear closeness is a easy computation, but here you’re doing a much more, what looks like a more complex computation. You’re doing something that’s taking you essentially to the more remote thing. Now, if you look at the actual structure of the sentence, where the phrases are and so on, turns out you’re picking out the structurally closest thing, but the linearly more remote thing. But notice that what’s linear is 100% of what you hear; you never hear structure, you can’t. So, what you’re doing is, and instantly, this is universal -all constructions, all languages-, and what we’re compelled to do is carry out what looks like the more complex computation on material that we never hear, and we ignore 100% of what we hear and the simplest computation. And by now, there’s even a neural basis for this, that’s somewhat understood, and there’s good theories but none that explain why it’s true. That’s a deep insight into the surprising nature of language with many consequences.

from《Interview of Noam Chomsky by Lex Fridman

总之是回到了句法结构这个核心,认为这是语言学中最令人兴奋的发现:看上去是流线型的语言,原来具有可以独立于语义的句法结构在背后起作用。结构上的近距离可以是物理上的远距离。结构上的约束条件似乎是硬约束,它甚至可以打败常识,让人理解不符合常识的逻辑语义。这些乔老爷的语言学遗产我们都耳熟能详了。

白:那个句首的carefully让人不自觉地联想到hopefully,后者放到那个句子就一点儿没有违和感了。所以可以简单地认为是纠错的优先级高过了语义相谐性的优先级。不是拘泥于结构打败了常识,而是在相同结构内只要替换词语就更符合常识,这个的“编辑距离”更短。是常识打败了“拘泥于词”。是不是一定用hopefully改错并不重要,句首最优先的替换词千人千面又何妨,重要的是其中总有一款跟后面是搭调的。结构does not make sense并不是值得夸耀的,在同样结构内用常识把sense找补回来才更amazing。

李:是啊,不过他老人家无法认识到这一点的重要性了。

“那美好的仗”,他已经打过了。接下来的仗,是后人的事儿。他的黄金时代已然过去。

不同角度吧。他强调句法硬约束,打败常识有其道理,也有其依据。他的“绿色思想”(从 colorless green ideas sleep furiously 说开去)虽然是一万年也见不到的生造句子,但听起来确实合乎文法而且有解。因此,常识打败“拘泥于词”,也不是总可以成功。推向极端,格丰富的语言的确可以几乎“随意地”打败常识。只是到了“裸奔”的语言,那一套就不好使了。批评乔老爷的人有指出他老人家对其他语言不够了解,吃了局限于欧洲语言的亏。

白:不是还有一切皆专名么,不是还有修辞么,不是还有meta level么,总有一款适合你。这都是常识。能把sense找回来是硬道理。

李:修辞的解读本身不应该归于常识的胜利。修辞解读往往是句法引导,从而由常识的违和而引申的联想。用到了常识,但起点、驱动是句法。

白:常识的边界在哪可以慢慢探讨。

所谓句法引导有两层含义:一是拘泥于词+句法引导,对此我表示反对;二是合理修正词+句法引导,对此我表示拥护。纠错、专名、修辞、meta level,都是“合理修正词”的范畴。

合理,就是合常识的理,乔家大院的毛毛虫,外包絡总会罩住一款“合理”。

李:可以肯定,我们现在探讨的自然语言现象及其解析深度,已经远远超出乔姆斯基时代。

抠字眼的话,合“理”就没有修辞,也没有诗歌和艺术了。

白:合理不是合逻辑,是合情理。

李:那天与我久违的老师和师兄周流溪(语言学家)微信里谈格律诗,他谈他当年如何苦学作诗的经历。我就用@刘群 老师的那个乐府,做了几首诗给他看。他大加赞赏,虽然也挑了几个毛病。称赞我格律诗有功底,有诗意。我就告诉他所有的妙句和诗意,都是瞎猫撞出来的。是读者的联想,不是“作诗者”的本心,因为作者是电器,根本没有“心”。因为没有心,也没有常识,只是记住了“典故”、习惯搭配以及过往诗句中的常用词汇,因此难免出现奇怪的词语组合。但是,“越是违和和古怪的组合,越违背常识,越容易引起人的联想,因此也越容易成就绝妙好辞。”

白:修辞是semantic deviation,用相谐性的尺子来卡肯定不对,但所谓情理之中又是有依托的,顺杆儿爬不太远。违和和古怪是必要条件,否则就白开水了;但不是充分条件,否则谁都是诗人了。

李:抬头看天上云彩,看出里面的山水画或动物人物画不在少数,我们都有过切身体会。但云彩虽然也许有自然的结构,但断断没有人世的常识和美学。“顺杆儿爬不太远”是修辞和诗意解读的原理,但问题在它是发散的。谁也不知道如何收敛。收敛的条件也因人而异。100个读者有90种解读,是常见的。

白:没有标准答案,发散又何妨。让人一时不理解的艺术多的是。

李:发散就不能铁口说,找回了“sense”。

白:自以为理解就收敛了,后来又被喷的也有的是。

sense不唯一啊,主要是这个心路历程有意义就够了。没拘泥,有sense,有依托,这就OK。跟“原意”如何根本不相关。

李:这是美学体验的历程了,李泽厚的地儿了(cf:旷世奇作《李泽厚:美的历程》)。

白:铁口为啥不行,我的体验我做主。

李:LOL 那是强盗逻辑,没商量。

白:只要把顺杆儿爬的“杆儿”给亮出来,自有公论。

编辑距离总是可以算出来的,几步联想,在知识图谱上都能追踪出来,绝不是胡扯。比如小冰那句,“阳光失了玻璃窗”。玻璃可以透射和反射光,阳光是光,透射意味着透明,反射意味着传播,阳光失了玻璃窗,自然联想到透明的缺失,传播的阻断。阳光意味着所谓正能量,于是正能量的传播被阻断。这些联想都找得到本体的依托。

有本事小冰跳出来说,我不是那个意思。这个根本不取决于作者,不管是小冰还是ta背后的人

李:符号逻辑的命门就是绕。下意识的事儿,到了符号逻辑学家手中就在那里绕啊绕 ……,终于绕到了外婆桥。

白:说时迟 那时快。怎么知道下意识就不在绕。这个绕和摇,语音上也是近亲。

李:神经网络倒是不绕,结果乔老爷一句话就怼回去:

你那里面一点 science 都没有,全是工程。(记得先帝毛主席批判政敌的时候常爱说:你那里一点马列主义都没有!)做 AI 还可以混个博士,到任何其他学科,早给你赶出大门。

这就是乔老爷对红得发紫的主流AI的态度。

一代智者,老矣。

白:奇怪的是,当下AI不这么玩还混不到博士。

李:不怪 因为还有的做。等到没啥地儿下脚的时候,黑天鹅就该出现了。博士嘛,也不好纯粹拿应用凑数。(再想了一下,博士其实好像凑数的还是多数,至少在下是,当年也没有任何理论创新,就是跟着导师的喜好,把当时热门的HPSG往中文里套。)

詹:Future generations are gonna watch that video with their jaws open in disbelief,” Carlson said in response to Barbot. “How could someone charged with protecting public health so recklessly endanger it?

未来的几代人看到这段视频时,一定会目瞪口呆,不敢相信。”“一个被指控如此不顾后果地保护公共健康的人,怎么可能危及公共健康?”

recklessly -> ?

白:这跟汉语里形容词向左作补语向右作定语的歧义句/伪歧义句有得一拼。

詹:有charge,protect,endanger 三个大汉等着,比乔爷举的例子复杂。

白:charge中性,protect是正面情感,endanger是负面情感,reckless是负面情感,怎么最不拧巴,一目了然啊。

詹:但“拧巴”跟“怎么”和疑问又天然的“不拧巴”,单看这个小句自己的逻辑,很和谐。

怎么+拧巴 = 和谐

白:charged with,还有“委以……重任”的意思。

詹:是,像charge的词,应该特别注意,它译成汉语的两个词“负责”“指控”,语义相差极大,弄不好就把意思给弄反了。

白:“一个被委以保护公共健康重任的人,怎么可能如此不顾后果地危及公共健康?” 这样翻译就一点都不拧巴了。

sentiment在后,但却通过是否拧巴,纠正之前的义项选择和更后的结构选择,立了大功啊……

关键是这个例子不支持老乔的观点呀。

詹:英语的状语后置,跟汉语的定语前置,在引起歧义方面,似乎功劳相当。

白:是。

詹:我没看出乔爷有啥观点。如果有的话,就是结构决定语义关系。这个基本原则应该没法证伪吧,怎么说都是对的。因为如果不能决定语义关系,把结构改一下就可以了。你总有办法改结构的。我肤浅的理解:把结构分成深层和表层,提供了巨大的玩游戏的空间。不行就“调”结构,语言学家的debug。

白:乔的例子证明不了结构优先于常识,只能说结构和常识联合起来可以欺负不搭调的词。

詹:他好像默认的就是“树结构”?万一不是树结构呢?总用树结构去欺负线性结构,不是个好主意。

白:结构长啥样可以另讨论。

万一是图呢?说不定也好欺负一把树结构。

老乔想说的无非是,不管你谁和谁相谐,我结构就在这里,无法绕开,无法颠覆。

詹:白老师,纠错跟容错是操作,操作需要静态知识作为条件,句法和语义都可以划入静态知识。所以,纠错优先不能否定句法优先。反而很可能成为句法优先的证据。纠错是底线(相当于“法”),容错是高要求(相当于“德”)。不知我这样看,能否为乔老辩护?

白:编辑距离最短是硬道理。替换一个词而已,又不需要以接受任何对词的标注体系为前提。所以,仅仅就操作而言,纠错优先比任何静态知识都更加“硬核”。但纯操作是盲目的,没有导向性的。要建立导向性,比如结构ok,相谐性ok,sentiment不拧巴,就必须使用静态知识。

这个例子就是句法和语义联手给出了一个异议最少、意义最谐的导向性纠错选择。而不能成为句法压制语义的例证。

白:《白硕:老乔新论述评

李:一觉醒来,大作已就,白老师威武!

@白硕 @詹卫东 结构决定逻辑语义不能证伪 所以乔老爷总是可以维护的。

白老师说,“Unfortunately,老乔说这个例句的场景正中了我的下策。”

其实,乔老爷不 care 解读是作为 nonsense 或层次纠缠,也不必是走下策的路,走前面的两条路也不违背/证伪他的主张。他的绿色思想是句法统领大纲,解读自由他去。好比是说:句法结构是如来佛的手心掌,语义解读这个孙猴子跳不出他的手心掌。

我们知道这个主张有粗暴甚至误导的一面,但的确很难证伪。反驳可以,结果就是辩论,跟民主党共和党似的,谁也说服不了谁。语义学派大小不同人物在历史上没少挑战乔老爷,他的句法大旗一直飘摇,语言学地位稳如喜马拉雅山。

再者,句法独立于语义不仅理论上自成体系自圆其说,实践中的指导作用也是诸多方案中的一条广为采纳比较好走的道路,而且自有其先简后繁的优势(缺点和软肋先放下):句法模块置前,先画个框,然后再上各种语义的手段去排除歧义或做其他解读。

这条视句法为硬约束需要先行的道路,客观上对于繁杂的自然语言现象以及更加繁难的背后知识支持系统(如本体常识、领域知识、交互现场知识等等),不失为一条“捷径”,让人不至于被语义泥淖所吓倒而裹足不前。硬约束的意思不是说句法结构唯一地决定了句子解读(逻辑语义),而是说,句法可以给解读先画个框框。句法不必总是唯一地指定解读路径(逻辑语义),但可以作为硬约束首先“剪枝”,否定一些路径。

就辨识(identification)而言,结构歧义原则上不需要语义,句法可以包揽。至于消歧,你用常识也好,或其他手段也好,大门是敞开的。即便在“绿色思想在狂躁地睡眠”里面,句法也只是“唯一地”确立解读的大纲,也就是粗线条的逻辑语义框架。句法并不管解读的细节,在这个“逻辑主谓宾定状补”的大框架下,受者的解读是走白老师的上策中策下策,都不影响句法作为老佛爷的崇高地位。

并不是每个人都能玩得转语义和常识的,其实是绝大多数人玩不转。但是玩句法,或者以句法作为导航进入语言的解析大门,则是一条看上去比较光明的道路,对于很多符号学者,其实是唯一的可行之路。

PP-attachment 在带入语义、习惯搭配、知识等等之前,就是可以由句法判断其二叉的路径的。更加复杂的结构歧义,包括歧义叠加,都是句法可以识别的。句法不必然说是什么,但可以说不是什么,这一点原则上是站得住的。既然句法原则上可以说不是什么,那么句法独立的主张就自圆其说了,就有依据了。独立的意思是说它不必借助其他支持,就可以独立为语言解析作出贡献:把自然语言文句的随机组合爆炸,压缩到一个小得多的路径图里,就是它的贡献。这种贡献因语言不同而效益不同,但原则上是普适的。遇到“裸奔”的中文,它效益较差,但遇到形态丰富的语言,它的效益蛮高。

句法是在十位数的符号(名动形副加小词是输入,主谓宾定状补是输出)里面玩游戏,容易掌控。到了本体常识、领域知识,那是在千甚至上万的符号集里面玩,不晕菜才怪。光一个ISA上下位就是成千上万的节点,另外还有层层叠叠的 partOf 关联,谓词格框架还可能有好几个坑对各自萝卜的类型要求,等等。想想就头大。还是乔老爷仁慈,治大国如烹小鲜,根本不扯这些鸡零狗碎的语义和谐、常识推理。

白:我今天谈到的例子,站在反对他的阵营角度解释,更简单。所以够不上一个新证据。仅此而已。没想过要证伪谁。

李:明白。很多事儿,包括学问,都不是简单的真伪问题。而是论洞见的深浅。乔姆斯基在他的时代,是最具有洞见的。但远远不如白老师的洞察。这不是恭维,也不是盲目吹捧,而是时代变了。我们都站在了巨人肩膀之上。

白:不敢当。

 

 

【相关】

白硕:老乔新论述评

乔姆斯基专访:深度学习并没有探寻世界本质

Interview of Noam Chomsky by Lex Fridman

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

乔姆斯基批判 

白硕 – 穿越乔家大院寻找“毛毛虫”

巧遇语言学上帝乔姆斯基

泥沙龙笔记:从乔姆斯基大战谷歌Norvig说起 

[转载]特大新闻:乔姆斯基新婚一周年接受采访,谈上帝礼物

从 colorless green ideas sleep furiously 说开去

【Church – 钟摆摆得太远(2):乔姆斯基论】

乔氏 X 杠杠理论 以及各式树形图表达法

《立委随笔:乔姆斯基的“世界语”》

《立委随笔:自然语言是递归的么?》

【科普小品:文法里的父子原则】

立委随笔:Chomsky meets Gates

《立委推荐:乔姆斯基》

Dad, can you explain Chomsky’s X-bar Theory to me?

【立委科普:语言学的基本概念】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

 

《李白宋115:句法的脑补,情报的冤家(1/2)》

立委按:cs(common sense):句法的脑补,情报的冤家,是为常识。常识语义在语言理解中的作用,一直是AI符号派的重要话题。常识看上去漫无边际,如何形式化有效利用,也一直是个挑战。沙龙讨论的是轻量级或碎片化的常识语义的可行性与实践体会。具体说来有两方面,一是所谓语义相谐反映的常识条件在语言解析中的作用(譬如,EAT谓词概念 与 FOOD类实体的相谐度高),二是所谓“事理”图谱(譬如,“面试”与“录用”之间的因果关系),反映的是某种常识推理。有意思的是,语义落地所强调的情报性有与常识相逆的特性。俗话说,狗咬人不是新闻,人咬狗才是。

白:“他给张三倒洗脚水”、“他向张三泼洗脚水”,在两句中,“洗脚水”各是谁的?“他给张三拿银子”有歧义,一是他帮张三拿张三的银子,二是他拿自己的银子给张三。介词宾语和主语,什么条件下谁来跟宾语发生领属关系?有钱出钱,拿的是自己的钱;有力出力,拿(拎?背?揣?端?抱?抗?)的是别人的钱。

“他给张三写自传”,自然是张三的自传;“他给张三送自传”有歧义,可能是赠送“他”的自传给张三,也可能是给张三跑腿,把张三的自传送给其他人。赠送义本身有间接宾语,但“给”的介词宾语未必与之重合。因为出现了一个“帮办”角色。主语是帮办,主执行;介词宾语是事主,主名分。帮办做动作,名分归事主。间接宾语角色和事主角色造成歧义。

“张三给李四带口信”有三重歧义。张三委托别人把口信带给李四vs别人委托张三把口信带给李四vs李四的口信委托张三带给别人。这里的角色有:事主、帮办、直接宾语、间接宾语,口信是直接宾语,李四不能是帮办、张三不能是间接宾语。剩下的组合构成上述三重歧义。“向”引入的介词宾语坑,在动词不具有间接宾语坑时(如“吐痰”、“泼水”)临时客串间接宾语角色。在动词带间接宾语坑时(如“投掷”、“赠送”),二者共享一个萝卜。没有事主帮办之分。临时客串的情况下,介词宾语和直接宾语没有领属关系。“为”引入的介词宾语又是另一番景象:它是直接宾语的当然领属者。“为他人做嫁衣裳”不管是谁做,穿的一定是“他人”。

“在公园爬树”,“树”是“公园”的附属物,勉强说得上领属关系。“在公园打人”,“人”是不是“公园”的附属物,难说。“张三在公园放风筝”,“风筝”不仅不是“公园”所有,反而大概率是“张三”所有。所以,介词为“在”时,领属关系似可不作标记。真要追究时,靠事理来弄。没有坑的直接宾语,随他去。有坑的,看相谐性或者大数据。“张三在这个公园有月票,每天早上都来锻炼身体。”“月票”的坑就由“公园”来填。

“他给张三买了块巧克力吃”,是“张三”吃,不是“他”吃。“给”的介词宾语置换出来,在谓词群里面横扫千军。在有接续动词的情况下,“帮办”角色自动消失了!

“他给张三送了本自传看。”没歧义了,是“他”的自传而非“张三”的自传,“他”不是帮办“张三”也不是事主。世界清静了。真神奇啊。“他给张三挖了个坑”有微弱歧义;“他给张三挖了个坑跳”一点歧义没有。

汉语的介词,S+/N,禁止名词右填坑;日语的格助词,S+/N,禁止名词右填坑。英语N向S左填坑只限一次,再多的名词只能受动词短语降格修饰,汉语的N向S左填坑则不受这个限制,所以逻辑主语话题主语大小主语一堆堆。方向性对于加速获得正解还是很必要的。汉语的个别词,如“以前”,是反过来的,S+/X,但是X坑只能从左侧填,禁止从右侧填。从CG走来,先把填坑的方向性全部放开,再选择性地关闭其中个别词的个别方向。特别是,语种选择可以批量设置关闭方向。修饰的方向性基本不放开。头尾修饰是否有副作用,还不清楚。

宋:@白硕 在你的系统中如果一句话内的词相同,词序不同,是不是分析结果相同?

白:@宋柔 不一定,看具体配置,特别是词性标注不同会不一样。比如:张三比李四高,李四比张三高,一定是不同的parse。

谁填“高”的坑,谁填“比”的坑,都是不同的,当然是不同的分析结果。

酱油李四打了,李四酱油打了。这俩,分析结果的拓扑一样,内在语义角色的指派也一样。毕竟酱油不能打李四。

后面四个的分析结果,拓扑结构是一样的。它们当中,1-2的语义角色指派是不确定的,3-4的语义角色指派是确定的。如果有更强的上下文,1-2的语义角色指派会随之更为确定一些。这个机制,在句内的已经部分实现,跨句的还没有实现。

宋:猫抓老鼠和老鼠抓猫,分析结果一样吗?

白:拓扑一样,语义角色指派不一样。看图看不出本质差别。

鸡不吃了,在图上是没有歧义的。

宋:猫抓老鼠和老鼠抓猫,施事都是猫,受事都是老鼠?

白:不是的。能说的是:猫和老鼠,相对于抓,都是“填坑”关系,而且填了不同的坑。谁填了哪一个,句法不予确定。语义角色指派可以根据语序推定,但只限于一左一右这种。两个都在一边就无法推定。图上不标施事和受事。现在图上能看到的是LMa、RMa等。不负载施事受事等语义标签信息。

在双宾语的情况,某些江南方言里有时听到“我给钱你”这样的句式。直接宾语和间接宾语倒挂,而且不加介词。二者一人一非人的场景,是可以搞对的。二者皆人,我还没听到例子(不知道“我嫁女儿你”能说否),但真要区分角色的话,可能需要用到事理了。

宋:也就是说,对于二价动词V来说,N1 N2 V中,N1和N2各填V的那个坑,要看N1和N2与V的语义相谐性;N1 V N2,还是要看语序来决定谁填那个坑。对吗?

白:都相谐再看语序。

如果都在一边,语序也不起作用:“猫老鼠抓了”“老鼠猫抓了”,这时还要请出事理啊大数据啊更大上下文啊什么的。

宋:明白了。

李:都相谐再看语序?

svo 语序 为啥要看相谐呢?

“是乌云吃了月亮 还是月亮吃了乌云?”

白:都不相谐也回到语序。

李:“做了个梦好怪 一张烙饼吃下了一窝兔子”。

白:相信说话者别有用心,或者相信一切皆可为专名,都是出路。有强语境做免死金牌的,更可以回到语序。

李:还可以这么说话:

“一个实体x了另一个实体”。

“x 被律师打黑了”。

白:见怪可以不怪,那还相谐个啥。说都不会话了。提着火车上皮包。小孩说话慢慢教,哪有一井挖个锹。

李:问题是 先相谐 然后看语序 次序感觉不对。

“月亮吃乌云” 是都不谐,“烙饼吃兔子” 是谐与语序矛盾, svo 语序是决定性的,相谐是非决定性的。决定性的句法形式 决定了就完了。形式留下空间 才有相谐出场的必要。

白:“草把兔子吃肥了”。“烙饼把兔子吃噎着了”。完不了。句法形式到了汉语,语序变轻了。

李:语序是句法形式 相谐是语义约束。“烙饼把兔子吃噎着了”,不是句法的反例。语序 小词 都是形式,它们留下空间 才有语义约束的可能性。硬指标以后 才看软指标。显性形式没辙了 才求隐形形式 包括常识语义。

白:还有容错一说吧。“拎着火车上皮包”,就是被容错了。韵律感越好,越容错,乃至无感。反过来搭,和不搭,是不同的处理。反过来搭,容错占主导;不搭,句法占主导。句法一主导,然后就进入疯狂的脑补,拼命找辙。

顺杆儿爬,顺杆儿滑,隐喻,夸张,甚至怪诞的专名,都可以有。此外,局部有伪歧义的情况,不搭是最先要排除的。比如“馒头吃光了”。标准svo啊,但是不work。除非拿到怪诞大比拼的免死金牌。

宋:老鼠抓猫,老鼠一定是施事,猫一定是受事,因此,此时的“抓”不会是“抓捕”。而应该是“抓挠”。语序决定了施动受关系,进而决定了动词的语义。

白:这是事理。恰好“抓”有一个义项符合事理。

宋:如果有更大的语境提示是童话故事,或者发生基因变化,“抓”可以是“抓捕”的意思,但仍然老鼠是施事,猫是受事。

白:当你在处理一个局部的sov时,并不知道其他义项是否会组成更搭的合语法结构,所以对局部不搭的sov而言,是否一定会出头,不是局部能确定的,还要看别人。

“老鼠抓不抓猫都吃得好好的。”

“老鼠一抓到猫就可以睡大觉了。”

“老鼠一抓到猫就可以美餐一顿了。”

“猫一抓到老鼠就可以美餐一顿了”。

一个意思。局部要不要搞成不搭的svo,取决于全局。

宋:好例!

白:所以svo不是教条,只是一种可能性。放大看,svo要不要还两说呢……

宋:“老鼠一抓到猫就大祸临头了。”

白:不搭给这种可能性减分,但也不断其生路。外围有更好的组合,svo又算个啥,该扔就扔。外围没有更好的组合,svo就勉为其难吧。但是,组合好不好,一定是句法语义通盘考量的,哪有句法一定优先于语义一说。

“老鼠一抓到猫就大祸临头了。” 有歧义,充分脑补吧。老鼠居然抓到了猫,这世界该翻了天了,大祸临头。猫抓到了老鼠,去掉了主人的心病,主人也该卸磨杀驴了吧,大祸临头。猫给老鼠抓到只是猫的计策,老鼠大祸临头了。接下来玩死你。

事理可以作用于伪歧义的消除,但是对真歧义,事理也毫无办法。猫大祸临头,老鼠大祸临头,看客大祸临头,都有相应的解读。svo作为一个局部,你根本不知道外面有什么时,根本不敢把赌注押在句法上。

李:T1 svo T2,就够了。绝大多数情况不需要语义出场。trigram 是句法 5-gram 也是句法 都还在可控范围之内。以前说过 任何在(dynamic) 5-gram 之内可以搞定的事情 都是 tractable 的。虽然理论上永远可以找到反例,但是随着 n-gram 中 n 的扩大 (up to 5),随着 gram 的定义由 literal 延伸到包括 token features,以及随着 gram 从 word 延伸到动态的句素(包括各类短语),句法兜不住的伪歧义反例急剧减少 — 直到句法发现真歧义。这时候 语义(主要是常识)约束、语用约束、领域约束等等 可以逐步出场,或不出场(保持歧义,或包容歧义)。

“传统” parser 为伪歧义困扰的事情 已经是过去的故事了。“现代”的句法基本上摆脱了伪歧义的羁绊 因为细线条 词汇主义路线 以及多层动态的 parsing。

白:五元组判定过程中用不用语义?用不用相谐性?如果用,那岂不是说相谐性判断先于svo?如果不用,伪歧义怎么弄掉的?单凭句法?就是说,T1、s、v、o、T2,各自携带了一些特征,用于五元组来判断svo要不要归约为s。这些特征包不包括语义/本体特征?动用这些特征是不是先于svo结构被确定?

不妨就试试 “老鼠一抓到猫就可以美餐一顿了”。看看“一”和“就”的辖域分界线是怎么确定的。实际上就四元组。左侧空缺。右侧再饶一个,又怎样?

“酱油打了李四也该回去交差了。”

到底是把“酱油”理解成一个人的外号,还是放弃svo转投ov(s)?哪一个是符合奥卡姆剃刀原则的?

如果上下文介绍李四是杀手,目标是张三,“张三杀了李四也该回去交差了”是不是应该放弃svo?这个上下文是五元组能cover的?事理:x完成任务—>x交差,任务从上文取得。

李:以反例批评一个一般性策略 其结果就是所有的过程性都是跛脚的 所有的因素都必须同时起作用。

白:有更好的系统性策略,而且并不跛脚。就是加分减分而已。看得分是一个统一的策略。硬约束有一个高的基准分。软约束不把它拉下来他往前走就是,拉下来就别怪谁了。

李:(较)软性约束与(较)硬性约束不同步 是一个总体有利的策略。

白:同不同步只是一个计算策略问题。晚几步发现问题还是早几步发现问题的事儿。只要有问题,拉下来则是必须的。就看付出的代价是什么了。另外的选择也虎视眈眈呢。一遇到合适的软约束,马上张口咬人。以现在的算力,神经网络那么大的冗余都不在话下,几个相谐性检查算什么。更何况毕竟都在线速的范围内。只要不破坏现场,总有翻盘机会。你走你的,但别杀死别人。

李:理论上 一个 l 长度的句子 在 l 没有全覆盖之前,任何 n-gram ( n < l )  的模式都是跛脚的。这一点在分词中表现最为简明。不断有人以“反例”来推论 分词必须包括 parsing、常识、领域知识、世界知识…

白:分词不是最终任务,只是一道工序而已。

李:道理都是一样的。这道工序一旦缺乏某个知识 理论上就是 过早剪枝,但实践中 几乎所有 real world 系统都不理睬这种理论上的批评。保留所有可能分词路径 直到最后的系统 不能说没有 但极少。(当然 这个分词的工序 现在有了 越来越流行省心的 char-based 的路线, 干脆绕过去。)

白:曾经的real world系统还都不睬deep parsing呢。按同样逻辑deep parsing甭活了。real world系统也在进步好不好?

常识,有重量级搞法,也有轻量级搞法。不要被重量级搞法吓住了。

白:

李:

“张三杀了李四也该收手了吧”

“张三杀了李四还嫌不够解气吗?”

“张三杀了李四也该有个说法 不能白杀”。

谁白杀谁?

“张三杀了李四也该有个说法 不能白死”。

谁白死?

“人咬死了狗, 不会受处置 合理吗?”

“人咬死了, 狗不会受处置 合理吗?”

“人咬死了狗不会受处置 合理吗”

白:“这些木头盖了房子。”不是svo。

李:工具s 与 施事s 是一个熟透了的现象。中英都很普遍。

白:木头不是工具,是材料。

李:材料也差不多,工具 占据 s 位置 更普遍一些。材料 对于 制造类谓词 占据 s 位置也很多。

白:贴了标签也无益。人家正主儿可能在后面藏着呢。到时候找上门来,嘿嘿,小三上位了。

李:svoc,句法只有 三个位置,逻辑语义几十个。一对多 很自然,也很谐。不过就是需要增加一个 逻辑语义细分的任务,否认不了 svoc 的句法骨架作用。

“枪不杀人 人杀人”

枪真地不杀人吗?子弹杀人 不长眼睛的。

“x 杀人”

x 与 “杀” 相谐吗?x 是不是 s?如果是,x 是 agent,还是 instrument,还是 material?如果 x 未知 怎么填坑?

白:要真是未知就简单了,坑说了算,抽象的听具体的,奥卡姆剃刀。不举证证明不是他,就是他。

此图像的alt属性为空;文件名为Screen-Shot-2019-07-15-at-6.58.54-PM-1024x200.png

李:“他” 很难说是 “盖” 的 S【施事】,更像是 “盖” 的【受益人】。

语言没有明说的 可以存疑 或 模糊。硬要跳坑里去,也不过就是个情报价值不大的常识默认。

白:这没问题啊,没有证据证明策划人、出资人、执行人、受益人是分离的,就假设他们是一致的。这叫非单调逻辑,举证义务在反方。

李:对于模糊表达 可能无所谓正反。一不小心就是 over reading,读出了不存在的语义。

白:情报价值不应由开发方评价。这类连边都有特殊标记。

李:用户方的证据也不足。多少用户需要不可靠的情报 与 明确表达的情报 混杂在一起呢?

逻辑预备的坑总是很完备,但语言不见得。常识是情报的冤家:用的适度 可以帮助情报的完整性;稍不留神 就伤害了情报的准确性和可靠性。

白:想避免错误的填坑可以用阈值拦一刀。但是拦得住拦不住是水平问题,那个位置该不该给小三则是态度问题。先要端正态度,虚位以待。就算一直虚着,也没小三什么事。这些不进坑的角色,语义上都有后路,才不在乎主语的标签。我们也没有主语标签。只有留给施事的标配坑。

李:

“这些木头盖了房子他很开心”,他才不管谁盖的房子呢 木头物有所用就好。

“这些木头盖了房子他很伤心”,木头是他的 房子却是他人的。

白:这叫自己跳出来。

李:根据常识填坑是危险操作,很容易 put words into others mouth。这不是语言理解的目的。

白:不妨设个开关,一切可控,用不用随你。

李:可以,一个叫 s,明说出来的 有句法依据的;一个叫 hiddenS,常识推出了的。就是到了法庭 也不怕了。

如果任着常识使性子,党指挥枪 与 枪指挥党,就同义了。首先 先帝不答应。

枪不能杀人 背后一定有个扣动扳机的 agent,机器人能杀人吗?机器人背后也有人。

“他造了把土枪 专门杀人”

“他造了个机器人 专门杀人”

是他杀人 还是机器人杀人?

白:系统说是就是呗,反正认的是标签,标签背后的道理,说了也不懂。

李:系统1说 a 杀人,系统2说b,系统3说 a and b,系统4 说 a or b,系统5 说 测不准 ……

白:很正常,除非有人强推标准化。

李:这一路不是一直在论标准吗?材料不是 s “他“是 s,也说的是标准。“党“是 s “枪“是 o。

白:党和枪都是隐喻,指挥的坑里面没有能匹配枪的。

李:重点是 常识与句型,谁说了算、比例如何?

白:只有不匹配得离谱,才引出隐喻。说常识太泛,其实就是一个中间件,给出了相谐度的评价。

李:不匹配离谱 的前提是 先逃进坑。谁决定的 枪要跳进坑o,而不是 s?肯定不是常识。

白:枪指挥党就跳进s。

李:对呀。谁决定的?Svo 决定的,准确说是,T1 svo T2 决定的。

白:反正离谱而且没有正解,于是回到svo,或者说,没有相谐度方面给出加分,改变不了句法初始设定的优先格局。是检查了之后没推翻它,而不是不需要检查。

李:不如不检查。这是争论的焦点。不检查先做,做错了“休眠唤醒”再反悔 也是常态。一多半根本就到不了需要检查那一步 就差不多成了铁案。

白:检查了推翻也是常态。不等检查结果出来就做也可以,这只是不同的控制策略。上不到标准层面。

李:譬如 x 指挥 y,根本就走不到相谐还是不相谐,“系统说了算”,这里系统指句法。

白:维也纳爱乐乐团指挥够了,他又来指挥费城了。

@宋柔 不一定。假设李四有个to do list,上写“打张三”“打王五”等等。做完一件事,就划去一项。

宋:“张三杀了”有歧义:杀别人和自己被杀,如此才有了“张三杀了李四也该收手了吧”的歧义。如果换成“打嬴了”,“张三打嬴了”没有歧义,一定是张三打别人。此时,“张三打嬴了李四也该收手了吧”也没有歧义。这个句子的语义就要靠语法来分析了。

李:白老师可以把 “打-赢” 拆开来论证语义大于句法 也许。谁打 谁赢……

宋:不要“打”。只要”嬴”。“张三嬴了李四也该收手了吧”。

白:打是S/2N,赢是S/N。合并的时候两个坑共用一个萝卜,一个占名额,一个不占。

宋:“张三赢了李四让教练很生气。” 谁的教练?

白:@宋柔 都可以,张三李四都行。

宋:除非有更大的语境进行强制约束,否则还是张三的教练生气。这是句法胜过语义。句法胜过常识。

白:句法语义都行,但是sentiment是顺着一头儿说的。赢和生气的不应该是一头儿的,除非教练安排只许败不许胜。因为有只许败不许胜的“找辙”,句法没被颠覆。

宋:当有人说“张三赢了李四让教练很生气。”后,一定会有人觉得奇怪,问“为什么生气?”

白:如果是“有人说”,那么“赢了”后面会有一个停顿。

宋:这里是说没有停顿的情况。有停顿的话就要加逗号。“赢了”后面没有停顿。

白:不吃最后一个馒头不饱,总有人觉得之前的馒头可以不吃。

宋:一般人都会觉得这个表述很奇怪,违反常理。

白:有保镖在身边没人敢动你,并不说明不需要保镖。“李四”后面有没有停顿?

宋:李四后面与无停顿都一样。

白:好像不是。可以都不停顿,但李四后面的间隔更小。这时难说。主要是叙述的视点变化奇怪,并不是句法。

宋:我感觉这句话体现了了句法的硬性约束:教练一定是张三的。但是,嬴者的教练本应高兴,实际的情况是生气,于是就有矛盾。如果教练可以是李四的,就没有矛盾,听者就不会奇怪了。

白:“张三痛打了李四,脸都肿了。”

谁的脸?是句法决定的?跟上面句法可是完全平行。谁的脸肿了,跟谁挨打有直接的事理关联。这就是常识“拗得过”句法了。刚才那个只是没拗过而已,因为可以只许败不许胜,尤其在团队作战时,为了在下一轮避开某个对手。这说明确实两方面因素在较劲。如果不是同时出场,较劲就不会发生。

宋:任何一种行得通的理解都有一种合理的解释。问题在于听者在强大的事理约束下居然并不顺从,还会疑问,就说明句法胜过了事理。

白:胜过了非但不证明句法早起单独起作用,反而证明了事理因素早期就参与较量。恰恰是我的观点的一个旁证。

宋:但较量不过。

白:是。但不是都较量不过。平行的句子也有相反的结果。语义和事理早期参与了较量,这个就够了。

宋:是的。句法约束胜过语义的例子不大好举。

白:伟哥的意思是根本句法就在唱独角戏,语义和事理没参加较量。

宋:路线斗争。李维:先看句法再看语义;白硕:先看语义,辨不清时再看句法。

白:我是句法先拿到基准分,出不出线,要看句法和其他因素的较量结果。较量可以不改变得分的高低顺序。

宋:合二而一。

白:但是这时,非句法因素相当于最后一个馒头、相当于没有动手的保镖,不可以认为非句法因素是多余的,是不在现场的。较量不是多余的,基准分不是一锤定音的。甚至,如果并行机制设计得好的话,拿基准分和较量可以异步。中间有一段时间存在叠加态,保留部分坛坛罐罐走不齐。

宋:当然。我完全同意语义的重要性,只是觉得词汇语义+事理常识+专业知识,实在是无边无际,难以控制。某个句子可以采用某种语义关系加以解释,但可选用的语义关系非常多,机器怎么就能选对了语义关系进而做出正确的解释?大数据并非万能。所以,挖掘句法的硬约束还是有意义的。

白:硬约束已经在基本分里体现了呀

宋:一些硬约束其实还没有挖掘出来。操纵语义需要极大的功力。当然,做实际应用系统,语义相谐性是绝对离不开的,而且是最大量的工作所在。

白:软约束就像保险,花点小钱,保你关键时刻用非句法兜底。也许没用到,但是不等于没有用。特别是,软约束可以灵活地面对长尾。看起来每一个都是小概率,但是放在一起并不少。所谓没用到,就是较量了但没产生颠覆效果。并不是没较量。

宋:解决长尾问题必须靠软约束,但这个尾巴太大,需要的软约束太多,如何挖掘和使用软约束是一个极困难的问题。

白:软约束不仅数量大而且类型多、机制复杂。我现在尝试做的事情是:1、不管什么类型什么机制,最后都折合为同一种量(优先级),这是较量的前提。2、当个别软约束缺失时,不会影响其他软约束以及硬约束的较量,这是软约束增量化建设的需要。3、集中把两三个重要的软约束类型吃透做透,形成明显的“高地”,再图类型的扩充。其实绝不是无边无际,完全把握得住的。

宋:我觉得难度非常大。在某一个较小的专业领域,可能可以正确解决大多数问题。做一个通用的理解系统,恐怕不好办。

白:先分类型,再抓主要类型,铺开规模时以领域为抓手。做出来的不会是通用理解系统,但可能是通用理解机制框架+领域资源。

宋:AI的知识工程(知识获取、知识表示、知识使用)讲了几十年了,未见到突破性进展。现在的数据驱动+深度学习是一个突破,但是范围很受限。

白:加类型不影响通用机制,上规模不影响通用机制,改参数不影响通用机制。而且它不是知识处理,只是标签演算。也不能说是理解,只是某种程度上的精准解析。

我们范围也很受限。

(喘口气儿,待续…… 《李白王116:常识是情报的冤家(2/2)》

【相关】

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《李白刘114:围着火炉吃西瓜闲聊点文字》

立委按:白沙龙是个神奇的所在 / 感觉有点像围着火炉吃西瓜 / 有一搭没一搭 /貌似漫不经心 / 不时闪现火花。“学问”也可以是聊出来的吗?

白:“包里揣着自行车座的天津人”,有伪歧义,但可以干掉。人揣不进包里,size不匹配,包装方式也不人道。人成为被自行车座领属的对象,组合也怪异。

李:Vt + N1 + de + N2

subcat pattern ambiguity, similar to the PP-attachment ambiguity in English, 不过这个例子到了细线条的 “sub-subcat” 就排除歧义了,Vt两个子类:

1.  Vt-person –> Vt

2. Vt-non-person –> Vt

“揣着” is Vt-non-person sub-subcat,默认不能带 【human】(“天津人”),只能带【!human】(“自行车座”)。

白:外星人/机器人,说不准。小矮人,似乎也可考虑。罐头小人,更没问题了。还是多管齐下好,东方不亮西方亮,总有一条堵得住。ad hoc的简单不是真简单,系统性的简单才靠谱。

李:subcat 是公认的词典细化知识,subcat 不是 ad hoc,sub-subcat 就不算 ad hoc,同一条延长线上。多管齐下才不简单呢,每一管都是一个窗口,知识非常容易发散。一般来说,开放知识难以维护,知识平衡也不好实现和追踪。当然,高手另算,白老师定有秘器。

刘:“懂事是没人疼出来”,这句有点难。

白:趋向补语优先级高于状语,更高于主语。所以“疼-出来”先结合,“没人”后加入。至于两个谓词的坑共用一个萝卜,倒不是事儿。

刘:这里疼出来先结合不通,没人疼有特定含义,应该先结合

白:“没人疼”当一个词倒也简单了。状中固定搭配的优先级已经是顶格了。

“他从来没有不作为过”

那个“过”与“作为”的优先级也是干不过“不作为”固定搭配的优先级。

刘:难就难在这里,怎么知道没人疼就变成一个词了呢

白:不过这个真的不重要。“作为”与“过”的结合也好,“疼”与“出来”的结合也好,都不影响语义。只是说“作为”、“疼”是中心词,代表结构跟外面发生关系。中心词可以在结合之后被否定。

当然紧耦合、强搭配的,顺序反过来也一样。语言学界不是讨论过“A的媳妇是B的妈”的问题吗?这个句子的中心词主干是“媳妇是妈”。但这个主干不具有保语义性。就是说,枝叉的添加,会改变“媳妇”和“妈”两个带坑名词的共指性。

看这两个图,谁先结合要紧吗?

李:“从来没有不X过” ,可以看作是 X 的形态(变体)

白:某种aspect

李:词典规则大概就是:

从来没有不X过 –》X(VG,perfect,always)

perfect+always (same as never1 for backward aspect in contrast to never2 forward, e.g. “never forget class struggle” ) are tense-aspect,VG is its category (V) and phrasal sign (Group, or X one bar).

总之就是用可以枚举的前后缀或小词材料的有限组合,去对 X 做词法句法的加持而已。没有必要再去细分其内部的词法结构。X 哪怕不是 V,也被强制为 VG 了。5gram以内的可以记住的组合,可以一律交给词典标注或词典习得,不必寻找其中的结构规则。

白:看主干,还真是“媳妇是妈”,仔细想想没错,既为人妻又为人母,多个角色而已。但是,两个坑没萝卜,这两个坑“共用”一个萝卜就是“奥卡姆剃刀”的体现了。这发生在句法分析之后。

奥卡姆剃刀,本人对“如无必要,勿增实体”表示过不满意,而且特地给了一个修正版本:“如无必要,勿增实体,勿减标配。”

坑是否共用,取决于“标配”做到什么份儿上。

“从来没有不爱也从来没有放弃过”

白:出情况了:“毕加索”被推定为“挂”的逻辑主语。

为什么不是,需要给个系统性的说法。挂的逻辑主语,和墙的关系比和画的关系要深?查了一下,这个推定关系在诸多关联边中,优先级是最低的。等于是规定动作做完了,开始做自选动作时搞出来的。我们的系统是看到“挂”的逻辑主语是Human,而且空缺,“毕加索”的本体标签也是Human,于是启动了把填坑的正式名额置换出来的机制。

看来通过“的”引入的萝卜和通过介词引入的萝卜要区别对待:介词宾语与谓词关联紧密,可以更加无障碍地用于填补谓词的未饱和坑;“的”的领项,用于填补“的”的属项相对优先,用于向的字结构外部填坑则应受到某种限制。

“他的小提琴拉得很好”当中的“他”,是修饰语的已填坑萝卜,但却可以穿透到“拉”,这是优点。这个优点和前面的缺点,怎么样兴利除弊,需要进一步完善。

李:“我的小提琴他拉得很好。”

?“他的小提琴被拉得不成样子”

“他的小提琴被砸得不成样子。”

“他的小提琴砸得不成样子。”

谁“砸”小提琴,不大可能是“他”。

白:

“被”阻断了“他”的填坑可能性。“被”自己升格,根本不关心向前文可能的回指。这个逻辑在我们的系统里简单粗暴,但是大体上有效。如果“被”标作介词的标配形式S+/N,就免不了要面对这一麻烦。当然,有的坑我们规定了单向填入,纵使变成了残坑,也依然受到约束。

这个还不行。修饰语的已填坑萝卜和被修饰语的未饱和坑结合时,看来还是需要修饰语和被修饰语的某种一致性。怎么划定边界是个问题。

从统计上看,“拉小提琴”是强搭配,“砸小提琴”是弱搭配,难道这个线索works?强搭配可穿透,弱搭配不可穿透?

“他的文章写得非常感人。”“他的文章改得面目全非。”

“写文章”是强搭配,“他”可以穿透到“写”;“改文章”是弱搭配,“他”穿透到“改”就遭遇主体的“弥散”,至少有歧义了。

总结:1、修饰语和被修饰语类型匹配时,已填坑萝卜对未饱和坑有穿透性;2、修饰语和被修饰语类型不匹配时,如果已填坑萝卜和未饱和坑之间有强搭配,那么可穿透;3、修饰语和被修饰语类型不匹配时,如果已填坑萝卜和未饱和坑之间只有弱搭配,那么不可穿透。

“他的小提琴砸得不成样子”,在弱搭配下,“小提琴”成为与谓词松耦合的物体,“他”成为“小提琴”的单纯领属角色。补语“不成样子”的语义指向也锁定“小提琴”。设想,“砸小提琴”如果成为一种职业或习惯性破坏行为,就构成了紧耦合,“他”就会兼作“砸”的逻辑主语,补语“不成样子”也会指向谓词“砸”,谓之砸得不够专业。幸亏现实世界没有这么个职业。

所以有没有歧义,全在于系统有没有把“砸-小提琴”列入强搭配名单,或者说大数据有没有把“砸-小提琴”训练成强搭配。砸,被砸之物是有后果的。拉(演奏义),被拉之物不必然有后果。所以“拉得不成样子”没有歧义,语义指向一定是动词“拉”。

【相关】

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《李白112:白老师秘密武器一瞥(1/2)》

立委按:两载设计,三载实现,白老师的自然语言秘密武器日前曝光。十载孕育,如水流年。挑开面纱,犹抱琵琶,先者为快,一睹芳颜。

白:坑之交响曲:

脑补进行时:

李:白老师的符号给个说明啊,L是左 R是右。LMo 是左成分 不占坑 属于 mod/adjunct,LMa 是左成分,是填坑的萝卜,属于 arg,是不是?

一个及物动词挖了两个坑 2N,左边填坑的叫 LMa 右边填坑的叫 RMa,什么时候确立他们的逻辑主宾呢?

Me 是个什么?条件结果的谓词之间“(如果)选择,(那么)看好”是 Me,动补合成词内部的“哭-肿”也是 Me,所以这是个表示并列或接续的二元关系,不分词法句法 也不分短语还是从句。

二元关系图里面 层次扁平化 结构层次没看见有反映。X-bar 这类层次信息一多半属于语言 一小半属于逻辑。属于语言的可以扔掉 属于逻辑的应该有个表示。起码 “哭-肿” 的二元关系 与两个谓词结构的因果关系 在层次上天差地别。对于 dependency graph 表示,如果不允许逻辑交叉的“飞线”,层次信息可以从子树中 derive 出来,短语就是子树的 parent node 所下辖的节点范围。以此反映思维中的复合概念与单纯概念的区分。但是,现在我们允许 dependency 可以交叉,甚至允许循环(dag 丢掉了 acyclic 特性,成了 dg),以此来挖掘语言中隐藏很深的 hidden dependency (譬如 “眼睛” 与 “肿” 的主谓关系)。这虽然使得深度解析更加深入,同时也带来了层次交叉以后的副作用。复合概念的边界和范围模糊了。逻辑概念的层次没得到应有的表示。图中的主次不再分明。

结构(表示)应该是由关系和层次两个要素构成,否则就难以担当语言的模型和思维的模型。其实 关于 graph representation,以及利用 graph matching 落地到应用,里面很多机制性的东西,还是没有探索清楚。属于深水区,摸着石头过河会不会不小心淹死,也不好说。

白:树是现成的,只是没有做展现而已。

回顾一下五个操作:Ma代表Match,也就是填坑,除了左右填坑还有中填坑,就是分子向分母上的残坑填坑。Mo代表Modify,也就是修饰。Me代表合并,不仅有S(谓词)的合并,也有N(体词)的合并。谓词的合并在传统句法看来那么多种情况,在我们看来其本质都是分子合二而一,分母尽可能共享,在结合的优先级上也刚巧非常合理地靠在一起。Up和Down是升格降格。在扁平表示中,采用了新增虚拟节点和方式,原节点汇聚入边,新节点汇聚出边,新旧节点间则是单一的升降格边。

这些范畴非常“冷血”,非常地就形式论形式,但不代表不能转换成主谓宾。但是,第一,我不认为主谓宾的叫法在句法上比我更科学;第二,句法标签只是个过渡,对接语义标签时,这套标签不仅不会输给传统标签,反而映射更直接,比如话题、大小主语、总分关系、谓语动词周边非逻辑主宾语的地位尴尬的NP。第三,这套标签不是不分词法句法,而是词法句法的边界在一些地方有异于传统认知,特别是紧定中式名词(如“红太阳、好朋友”等)和动结式动词(如“打伤、哭肿、染红”),由于在我们的体系下微结构和句法(比如动趋式、动介式)并无不同,所以放到句法里并没有违和感,也并不因此多费什么手续,完全是搂草打兔子,顺手的事儿。

这个体系会不会乱?我们用了将近两年的时间建立它的what,接近三年的时间建立它的how,经过了无数的推演、测试和复盘。在这样高强度的打磨下,传统语法书里的绝大部分难句都不是问题,也没有因此把普通句搞得不普通,基本结论是结果(what)可用、过程(how)可控。

解析结果保持歧义的能力也有独特风格,比如“鸡不吃了”是传统歧义句,但在我们的表示框架下,句法无歧义,一个左填坑,一个右修饰,如此而已。歧义是语义层面的,鸡不小心即是Animate又是Food而已。这两个角色在句法上都是左填坑的N,并无区别的必要。

如果落地要的是语义标签,我们可以直接去对接。如果一定要传统标签,我们可以做转换,但这就像高清晰度的视频向低清晰度的视频转换一样,我们并不认为它是一种成就,而是一种无奈。比如“这件事我有意见”里面,“这件事”和“意见”有直接的填坑关系,跟“有”没有一分钱的关系。你让我标注出“这件事”是“有”的什么角色,我当然是很不情愿的。


我们说动结式动词的微结构和松耦合的述补结构在本质上是同一类结构,都是分子合并、分母尽量共享坑,但坑的共享是有相谐性前提的。刚才说到的“哭肿”就没有相谐的坑可以共享,所以只好各填各坑,但是分与合,都是在一个机制下的不同子模块而已,并不是说一个很好把握另一个很难把握,都在可控范围之内。

李:落地要的语义标签是逻辑语义,还是语用的标签?语用标签譬如信息抽取里面的事件角色。

白:公共服务落地是逻辑语义标签,应用落地是语用标签。中间隔一层适配。

李:这个落地模块 需要多少额外的知识呢,包括语义相谐。

白:适配具有行业特点,不懂行业没门儿。

李:逻辑语义原则上是行业独立的。

白:也不可能一家公司包打,一定会发展出众多的落地服务商和落地适配包。主打逻辑语义的公共服务,在足够精准的前提下是有独立商业空间的,如果再做几个示范的语用落地,表明生态效应和层次衔接机制work,后续还会有大发展。就好比,逻辑语义提供面粉,应用落地提供面包蛋糕包子馒头。面粉的供应商有自身的商业空间。面粉也需要好的面包蛋糕包子馒头来背书自己的质量。

李:说这些 道理上站得住,听起来好遥远。parser 要独立成为生意,感觉很难,NLP component technology 定位的,迄今几乎没有成功案例。不是没人尝试,而是没人成功,除非今后几年有突变发生。(满世界只知道端到端呢,最近加了个普遍看好的预训练,离开符号语言学更遥远了。)

如果句法就3种关系,嫡系 Ma,庶出 Mo,哥们儿 Me,从数目上看 这不仅比 100种逻辑语义、也比 五六种传统句法关系(“主谓宾定状补”之类)要粗线条。说这个 what 是高清,感觉还不够。

白:这个标签体系显然不是逻辑语义,但它可以直通类似知网的逻辑语义体系。说直通的意思是,拓扑基本上都对,只是需要细化。谁跟谁有关系基本都对,什么关系需要细化。不像有些拓扑都不对的,细化起来遇到的麻烦大得太多。

李:从这个 what 匹配到逻辑语义,是一对n,必然需要更多的知识和做功。

对于短句,标签集很小的时候,凭着词典的预示信息,句法基本不是问题。到了长句 可能挑战就来了。短句不是问题 就好像过去社交圈小 但每个人都必须结婚,谈恋爱就特别容易有结果,因为没得选。很多时候 门当户对以后 候选只剩下一个 那就ta了。

白:结构就是用来拉近距离的。依托结构拉近的距离,比望文生义拉近的距离,更为精准。

李:词典在类别基础上所给的那些subcat预示信息,譬如 S/2N,这类 subcat 也是粗线条。即便原子化 平铺开来 也没有多少,估计 20 个左右。

白:这不算subcat,只是POS

李:上面的标签 S/2N 传统词典是 vt,属于 V 的 subcat,不过叫什么名字无所谓,总之是预示一个潜在 pattern 的词典标签。这类标签的集合 感觉20个可以收住。在 20 个标签以内做句法,结果的关系是 3,这应该还算是粗线条的。

让人眼亮的是这种颗粒度 的确是句法最核心的部分,在回答 “谁与谁发生 directed 关系” 的问题上,是一个不错的抽象。

短句容易做粗线条句法是显然的 因为没得选,“这件事 我 有 意见”,一共两个潜在萝卜 n1 n2,正好有两个坑 空着,“我” 被 “有” 抓走以后,“意见” 的 【对象】 只剩下 “这件事”,不是它 也是它了。

白:还有另一面,明明空着,也不进来。下例中,“今年”,“食堂”,明明是最贴近坑的萝卜,但不是你的坑,打死不填。宁可降格做状语。这就不是那么简单了。还有前面“这碗猪”也不能谈婚论嫁,要等“汤”拉近,这背后有玄机。绝不是一个村里没婚没嫁就可以拉郎配的。

李:这里面玄机如果不论 how 就没法评论了 只能说不明觉厉,特别是“食堂” 不填坑,句法上有点天理不容。

白:所以这样的结果,转换成主谓宾,得多憋屈。那是后退。前进一步,就是精准的逻辑语义。拓扑都对了,就差一个相当于知网的基础设施。

李:可是反过来想,“吃” 与 “食堂” 发生了关系 是肯定的,这个关系中 “吃” 是老爸 也是无疑问的。为什么要把 arg 与 mod 的区分负担,强加给句法,而不是留到语义或语用呢?

“鸡不吃了”里面的主宾歧义句法都可以包容,为什么不可以包容 arg 和 mod。如果句法最好轻装 那就听乔姆斯基的,彻底排除语义,现在看来 这个 “食堂” 的降格 是带入某种语义了。反正 map 到逻辑语义的时候 还是要调用语义约束,想不出为什么一定要有选择地把部分语义前置。

白:语义arg无边无际,句法管不过来。我的原则是:标配的语义arg走填坑,非标配的语义arg走修饰。

李:“我吃月亮” 呢? 现在也降格吗?

白:是。

李:感觉是得不偿失。因为不降格做引申意义的宾语情形,应该比降格做状语的现象更加普遍。

白:“这场火”,也降格。月亮可以是处所啊。怎么非常识了?

李:比起传统的svo句法解析,个人感觉这样做是得不偿失。要是我,就宁肯放宽语义约束,得到一个非常识的解析,也比过早实施语义约束合算 命中率会更高。 这当然只是感觉,还需要数据调查和统计来验证。“把月亮吃了”,就是“非常识”,而非常识的说法 语言中也没有那么罕见(“一片乌云飘来,吃了月亮”)。原因是 非常识为语词的 引申,创造了条件和手段。说话者是用不相谐 来倒逼听话的人去联想 引申。

白:修饰,只是非标配的语义坑而已,不明属性,并不是语义层不能再入,这个修饰的标签并不给语义分析设置篱笆墙。只是说他非标配,非标配的后续,既可以脑补缺失的非标配格标记,也可以作为修辞手段再入标配格标记。两个可能性都存在。并不存在“失”,只有“得”。

李:设不设篱笆墙,说到底还是 句法输出以后,后续工作量 是增加了还是减少了。把“食堂”和“月亮” 都降格了,后续工作量 感觉是增加了 而不是减少了。因为 月亮被吃这类的表述 比 “吃食堂” 这类表述 数量为多,何况 吃食堂其实已经词典化了,本来就不该参合进来的。关键在 它不应该在歧义区分的雷达上,属于常识例外。词典绑架 没商量。

白:工作量不是唯一标准,有利于精准才是最终标准。再入,实际上你可以认为引申受事和常规受事是两个格标记。

即便词典化,微结构仍然是修饰。吃七食堂,吃教工食堂,并不是词典化的,但我们不怕。

李:那种叫成语活用,在词典绑架的延长线上。实现一个成语活用的机制 也就可以不来参合了。

白:吃勺园,吃全聚德。吃麦当劳 … 也不是成语活用,但背后是一个机制。它们如果走了不同路径,反而奇怪。

李:这是真歧义,“吃麦当劳” 作为地点和食品 均可。这其实也成语化了 真歧义也可以在词典绑架为歧义表述。

白:就算吃食堂是词典绑架,但其词典定义依然是S/2N,并没因为“食堂”的加入而变成S/N,这恰恰证明“食堂”填的确非标配坑。

李:话说回来,只要句法不必调用语义相谐的大数据,而只是使用语义标配的二值判断,那不过是查一下本体,也没什么可批评的。不过就是两种各有利弊的路线 择其一而行之。

白:不一定二值啊,可以连续值,折扣么。

李:如果折扣的话,

我吃月亮
我吃石头
我吃土疙瘩
我吃面疙瘩
我吃疙瘩

这些解析结果应该有区别,而不是都降格,或都是宾语。

白:对啊,看你Ontology怎么设计的了。这与分析器无关,取决于Ontology的返回值。

李:返回标配是二值,还是多值,多到什么程度。

白:连续值,看小数点精度。但是0.2和0.3的差别,估计不足以颠覆。能够利用梯度最理想。

李:哈 你这一球踢出去 倒是轻省了,对了是我的,错了是你的。

就是说,ontology 供应商的相谐颗粒度,不一定是二值 但也不要超出太多,多了反正也没有区别,也许三值 很搭/较搭/不搭。也许四值。ontology 供应商最好是婚恋交友网站的架构师出身,懂得如何配对。

我还是没理解 从设计上为什么句法要在 “嫡系/庶出” 上较真,非要劳动 ontology,而在 “主语/宾语” 上反而不较真。反正提供的是半成品。从逻辑语义角度 语义也还是不全的。

白:我觉得这太显然了,这事儿不正是Ontology该做的吗?要站在比它们俩都高的视角看他们俩。句法和本体,我们的方法论是,句法要给出对的拓扑。为此,Ontology、情感、事理都是必要的补充。

李:细节不纠缠 逻辑语义可以算是一个唯一可以公认的语义理解的黄金标准了。arg 与 mod 的区分,本来就不是黑白分明的。这个对错 不好说。

白:但是构建逻辑语义层的输出,虽然也同样使用Ontology 、情感、事理,但是用得更重。这两个方向的用,不可混为一谈。

李:所以说是 双重使用啊,重复劳动。

说起 arg 与 mod 的嫡系和庶出 有点意思 可以展开简单说说。args 是计划内的婚生子女,主语、宾语、宾语补足语,名正言顺,所以受到父母特别关照。mods 属于计划外的秘密勾当。因此,总是 parent 去找 args,利用 subcat 的计划内指标。到了庶出的 mods 就管不过来了,只好是 mods 去找 parent。千里寻父 叫父亲太沉重。

可是这一切的句法区分都是世俗的角度,语义层面 嫡系和庶出并没有那么大的鸿沟,都是围坐在天父身边 各司其职 各有角色。所以说 句法费力气区分嫡系庶出 为的是服务语义和理解,可是 语义那边偏偏对这种区别其实没那么敏感。为啥?因为语义在分配角色的时候,更加看重本人的资质,而不是看重 嫡系还是庶出的出身。“有成分,不唯成分论”,重在个人品质。个人的品质,就是你到底离我的本体要求有多远。

白:就是因为庶出的不加标记的情况太稀疏,句法留这么多资源给稀疏的庶出,不值得。

李:反正语义那边还要政审把关,用的也还是ontology 资质审查,为什么句法还要预审?

白:此地预审,方便彼地直通。

李:我是说 费力区分 Ma 与 Mo,没多大必要性。如果这种区分 不需要劳动各种知识 那当然。如果需要费力 就不值得了。

白:从基础设施建设的角度,只为一个中间步骤建,当然越轻越好。如果建了既可以为一个中间步骤服务同时更可以为有独立商业价值的最终步骤服务,那就可以建的重一点。即使重,也包办不了落地适配。落地适配是一个既统一规划又独立实施的环节。也就是说,从一个必建的基础资源里顺手提取一些信息就可以搞定正确的拓扑,这算不得什么费力。劳动的方式非常清晰和标准化(相谐度查询),也算不得什么劳动。我们目前的算法也并不是对所有候选邻对都进行相谐度查询。只有当前动态优先级最高的邻对才做相谐性检查。

这个,显示还有点小bug,但是揭示了一个现象,就是嫡出的萝卜出现位置太远,需要许多中间步骤拉近。但一旦拉近,那个位置还是人家的,庶出的没脾气。远近并不构成威胁。把“你”挪到“食堂”后面,也是同样结果。“要是这个时间吃食堂你就只剩下包子了”,用传统句法范畴分析这个“你”,就很莫名其妙,它跟“剩下”是主谓关系吗?但是论坑,一点关系没有。它跟“吃”是主谓关系或者述宾关系吗?论坑是的,但是形式上却完全不在那些位置。甚至跑到了另一个从句的辖域里面,要多尴尬有多尴尬。谐我坑者,虽远必填。

李:好例。改造一下:

“要是这个时间吃食堂你就只剩下二厨了 大厨早就自己躲一边吃包子了”

“二厨” 比 “食堂” 如何? “包子”更远 但相谐,为什么不能虽远必填?

“要是这个时间吃食堂 大厨早就自己躲一边吃包子了。”

白:后面又出现了“吃”,截胡了,“包子” 第一次就近填坑。

李:填 “剩下”,与 填 “吃”,不都是劫持了吗?

白:“剩下”的坑,抽象度比较高,万金油。我们的说法是“置换”,就是把首次填的坑从占名额的调整为不占名额的,后续填的坑再视情况决定占不占名额。

李:就是说 对于远近两坑,还要做比较计算,来决定截住没有?

“要是这个时间吃食堂你就只剩下二厨了 大厨早就做完一屉包子回家休息了”

“做完” 与 “剩下” 差不多,都是万金油 vt,截住没有?

白:这个还真可以有。但前提是,子句之间得有依据是连接的。大厨做完了包子,不一定卖完。

李:人的理解,首选不是包子,而是二厨做的档次较低的食品。大厨做的包子 轮不到。

白:如果两个子句只是最低档次的连接(next),还真未必建立坑的共享。但是用连接词连接的,肯定可以共享。

李:有一万个理由否认,因为说话语气是可惜和后悔,想吃大厨的口福 你享受不到。谁叫你迟到呢。共享与共产共妻类似,是高危操作。

白:你那里只有空格,没有上句和下句的明确锚点,不在我们的共享白名单里面,不能建立Me,所以坑里的萝卜是带不过来的。跨小句需要白名单制。前提是:1、甲小句不饱和、2、乙小句有供给、3、两小句连接方式在白名单中。

李:嗯,虽远必填 限定在句法关系圈内,也是一说。

“要是这个时间吃食堂 厨师都出去买海鲜了。”

这个应该是 Me,因为符合 “要是…就…”句型。

白:对。

单从本体看海鲜就是加分的,但是事理是减分的。吃在买前,不符合事理。不符合事理的会减分,就看二者抵消成啥样了。

李:这个事理如何用 感觉漫无边际,“先买后吃” 这样的常识事理,何止以万计。

白:但是人就是这么判断的。这是长尾,攻击到本体的概率有限,不到落地肯定不做。

李:所以 句法一般不带入事理常识,语义语用才考虑用。

白:句法只是中间产物,又不是产品。加了边还可以砍啊。砍了边再加就不那么简单了。有一万种方法砍。一个公司既做句法也做落地,没必要维护句法的面子。整体可以就OK。句法提供的这些边,送神容易请神难。

李:就是大体了解句法模型,用到几个维度的知识,用到的维度 颗粒度如何。之前论过 维度多了就是一锅粥。如果符号逻辑最终还是一锅粥,那就不如索性舍弃符号。因为一锅粥最终丧失了符号的优势。可解释性不再清晰,可定点纠偏也丧失了。

白:还是要区分表示和控制。表示是符号的,控制是符号与神经结合的。这没什么不可以。

(未完待续…… 《李白112:白老师秘密武器一瞥(2/2)》

【相关】

白硕:人工智能的诗与远方,一文读懂NLP起源、流派和技术

文章来源:https://read01.com/AJGzNQN.html

《一日一析系列》

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【一日一析:谁是谁同桌?】

白:“同桌偷了张三一块橡皮给我。”“张三偷了同桌一块橡皮给我。”

谁是谁同桌?

“同桌偷了张三一块橡皮给李四。”这个能说不?如果能,谁是谁同桌?

“张三逼同桌骂了李四一通”,张三的同桌无疑。“张三逼同桌骂了我一通”,含糊了,我的同桌也是可能的。说话人一直是“在场的(present)”,所以先行的语境里有这么一号角色在。“张三逼李四骂了同桌一通”,似乎又是李四的同桌了。先行与否、就近与否、旁路与否、一直在场与否,都对填这个坑的候选萝卜有影响。刚才列举的选择不同也说明了:兼语式的主支(含兼语动词的那一支)不是旁路,和介词短语不同。

“同桌当着张三的面骂了李四一通。”

好像,既不是张三的同桌,也不是李四的同桌。

李:解析器觉得是李四的同桌,大概是因为张三沉底了:

(解析忘了把 hidden link 加上,谁当着张三的面?“当-面”的逻辑主语是“同桌”。这个bug容易fix,结构很清晰。)

所谓伴随情况状语(attendantR),是附带性的谓词,与主句谓语不在一个层次。从句法层次角度,“同桌”更应该是“李四”的,虽然物理距离更远。当然,人的理解机制有点一团浆糊的味道,其实没必要把人的理解神圣化。在诸多因素参与角力的时候,人的认知理解和判断其实不是确定的,因人而异,因背景而已,甚至同一个人也会因时而异。

在物理距离与句法层次的较量中,不同的人有不同关联和解读,是正常的。这个加分减分的较量,即便有一个机制去计算,也没有一个确定性的目标去最终评判。最多是企望有个理解的容忍范围。何况,对于 heterogeneous evidence,整出一个合适的加分减分的算法,一直以来就是挑战。把不同层面的因素,整到(投射到)同一个平面折合成统一的度量,然后根据这些因素之间的冗余性,打合适的折扣,最终能做出一个最优结果,同时又能讲出道理来,听上去就让人头皮发麻。

寄希望于深度神经,哪怕“讲出道理来”这一条暂时达不到也行。

白:“同桌”挖了一个坑,这个坑回指(先行词填坑)时是清晰的,预指(后继词填坑)时是模糊的,一般都是说话人(“我”)填坑。如果硬要别人填坑,除非语境有所交代,否则默认说话人填坑好了。回指的规则就是所谓“最近提及+类型相谐”。

“李四骂了同桌一通”,同桌是李四的同桌。“同桌骂了李四一通”,谁的同桌就不好说了。但说话人的同桌是标配。

李:

白:旁路上的先行词,待遇差点儿:“张三当着李四的面骂了同桌一通。”好像还是张三的同桌。

李:如果所模拟的人的理解过程就是浆糊,再牛的算法,加上再大的数据,也没辙。也许,有些牛角尖不值得钻。如果是语言理解多项选择问答题,大概是这样:

问:“同桌当着张三的面骂了李四一通”这句中,谁是谁同桌?

答:

  1. 张三的同桌 (A)
  2. 李四的同桌 (B)
  3. 未知人的同桌(不是张三也不是李四的同桌:!A & !B)
  4. 既是张三的同桌,也是李四的同桌 (A&B)
  5. 不是张三的同桌,就是李四的同桌 (A XOR B)
  6. 任何人的同桌 (一团浆糊,语言未指明,A|B|…, 但不care)

【Parsing 标签】

1 词类:V = Verb; N = Noun; A = Adjective; RB = Adverb;
DT = Determiner; UH = Interjection; punc = punctuation;

2 短语:VP = Verb Phrase; AP = Adjective Phrase; NP = Noun Phrase;
VG = Verb Group; NG = Noun Group; NE = Named Entity; DE = Data Entity;
Pred = Predicate; CL = Clause;

3 句法:H = Head; O = Object; S = Subject;M = Modifier; R = Adverbial;
(veryR = Intensifier-adverbial;possM = possessive-modifier);
NX = Next; CN = Conjoin;
sCL = Subject Clause;oCL = Object Clause; mCL = Modifier/Relative Clause;
Z = Functional; X = Optional Function

【相关】

《一日一析系列》

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《一日一析:“你家的地得扫了”》

parse parse,用 PSG:“你家的地得扫了”

再 parse parse,用 DG:“打倒罪有应得的地主”

李:都是中规中矩的句子,没有难点。

白:分好词再玩这个游戏就看不出热闹了。要看就看怎么分词,分错了怎么找补回来。的地得,都有其他词性标注。在哪里、依据什么原则排除的。

李:不是特地分好词,词典分词的本来面目就是如此啊。不查词典,如何解析呢。到了的地得这种极高频小词,主要靠的也不是词性标注了,就是直接量。用法各个不同,量体裁衣。

李:“一句话用的地得太简单了,毫无挑战”。热闹来了,还真是挑战呢:

“的地得”三元组进词典,当然可以。刚才拼音输入 dedide,还真就出来了“的地得”,可见这个三元组入词典也算是理所当然的。咱们词典不够大而已。

“那就不好玩了”。可如果坚持不走词典化道路,还有啥好招吗?

“做大事不必考虑一城一地的得与失”。

这里的难点不在的地得,是条件紧缩句(NX)费点琢磨: if 做大事 then 不必考虑一城一地的得与失

(if) (you) VP1 (NX:then) (you) VP2

零形式,条件太不清晰。嗯,有点难,有点难。


@王伟DL: 三兄弟若是独立为词的话,可靠句法来分拨;三兄弟若是其中几个掛了某个强力词的一角的话,不太好办,保不准有把高强度词扯开的情况。

白:
白硕SH
3月3日 22:12 独立成词的“地”和“得”都不好伺候。

【相关】

《一日一析系列》

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《语义沙龙:“让机器学习思考的人”》

白:“让机器学习思考的人”

wang:1.让 机器 学习 (思考的人) 2.(让 机器 学习 思考)的 人 3. (让 机器学习 思考)的人

李:你的2是hidden ambiguity,里面其实还有两条hidden路径,“学习”的对象或目标是“思考”,还有一条,“学习-思考” 并列,逻辑上是,“让机器-学习、让机器-思考”。但面对专业术语“机器学习”的紧密性和高频度,那些 hidden ambiguity paths 都被掩埋了 …… 也应该掩埋,除非遇到必须唤醒的时候。

parse parse 看:

这个 therefore 可能是个 bug,语义模块做因果关系过头了,走火入魔了?深度解析其他该有的关系都在 though。

wait a minute,好像也对,说的是,因为 X 促成了 event,X 是因,event 是果。这就是语义模块本来的因果关系逻辑,落在这句就是,thanks to “人”, (therefore)ML thinks now。这符合 “有多少人工 有多少智能,人是一切机器学习的原始发动机” 的因果本质。乍一看有点绕,是因为赶巧这一句不是一个 statement,而是一个定语从句修饰的NP。其结果,这个因果关系虽然不错,但实际上是隐含的因果(hidden causal links)。如果是一个NE,更加容易理解一些“”让机器学习思考的图灵大师“。因为图灵, 所以机器思考。我思故我在,图灵在故机器思。

白:“坛坛罐罐走不齐”正好可以借这个例子现身说法。当“机器学习”和“机器/学习”同时进入parser的视野时, 下一步优先级最高的动作却不长在“机器学习”和任何其他成分之间,而是长在“学习”和“思考”之间。换句话说,非最佳分词方案在这个局部激活了最佳句法方案,梦游了。

“学习S/NX”和“思考S/N”之间,有三种结合途径:一是填坑,二是合并,三是不作为。各自优先级不同。在外部,“让-机器”、“机器-学习”、“思考-的”、“的-人”也同时参与竞争。最后结果是“学习-思考”合并最优先。就是“并列结构”那一个解读。

“学习”和“思考”能不能组成并列结构,这个事情是有不同做法的,可以白名单制,也可以黑名单制。个人主张白名单制。但是无论黑白名单,我都不主张做成同一层内部的细化规则,而主张把细化规则折合成优先级的调整量(增量或减量),统一纳入一个优先机制处理。也就是说,当条件不满足或不那么满足时,你不应该再赖在原来的优先层级不走,你落草的凤凰就是可能不如鸡,不是高高在鸡上面的“亚凤凰”,而是货真价实的“不如鸡”。

但是如果外部没有“鸡”竞争,落草的凤凰也还有机会折桂。就像colorless ideas,虽然被相谐性打了折扣,依然是四顾茫茫无对手。这个时候,机会还是它的。所谓的“句法自治”和“语义的反作用”在这种“坛坛罐罐走不齐”的策略下完美地统一了起来。不是“亚凤凰”跟“真凤凰”比,而是“亚凤凰”跟“🐔”比。鸡厉害,鸡就先走一步,坛坛罐罐于是就走不齐了,体现了包容不确定性的差异化前进。不同的解读不等速推进,可能一本道,也可能此起彼伏,明争暗斗,柳暗花明。

梁:@白硕   赞同!或许不同解读(歧义)在彼此争斗,此消彼长,最后一种解读胜出(消歧)。

李:多种因素综合决定消歧的理解过程,模型的时候 主要有这么几个对策。得出不确定性中间结果 就是带着瓶瓶罐罐往下跑。希望在下跑的某些阶段 条件成熟 可以帮助消歧。这里面又分白老师所谓“走不齐” ,就是说不需要把不确定性结果积聚到最后的消歧模块统一消歧。而是一边下行 一边伺机消歧 使得雪球不是越滚越大。

其实HPSG这类合一文法 就是这么做的,短语结构的任何结合 都是在对自然语言建模的数据结构里面“合一”。一旦任何一点合一失败 那条路就堵死了。句法的约束 语义的约束 还有种种其他的 constraints 全部定义在一个为语言符号建模的名字叫做 sign 的复杂特征结果里面,在同一个平面 同时起约束作用。这与传统句法先建立句法结构关系 然后留到语义模块去过滤减枝的瓶瓶罐罐一路带下去的做法显然不同。但实践证明 合一文法的做法 并未解决伪歧义泛滥成灾的问题 实际上还加剧了这个 PSG 学派所共有的历史难题。原因出在复杂特征结构的设计上。以前论过。

除了完全的非确定性和“走不齐”外,第三种办法就是所谓休眠唤醒。这是确定性路线。原则上不带瓶瓶罐罐跑 坚持确定性的中间结果表示。起码是看上去是确定性结果的数据结构,等待后期唤醒、改正。(这个里面还有很多技巧,譬如可以违背逻辑 利用确定性数据流承载非确定性结果 然后配备一些逻辑清理tricks 来为非逻辑性擦屁股 不好看 但很管用 以后可以细论。)

白:基于合一的消岐,错不在what,而在how,不在带着坛坛罐罐跑,而在“剪枝”。谁说带着坛坛罐罐跑就一定要“剪枝”?难道不可以“生芽”?

李:what?PSG呀,特征结构怎么定义 也还是 PSG,大的框框在那儿,复杂特征结构的做法加重了病情。

白:“生芽”的意思是,过河不拆桥,但也无需一下子搭建所有可能的桥。不达到当前最高优先级的渡口,绝不搭桥,但渡口的优先级是随着建起来的桥而动态变化的。这些达到当前最高优先级的渡口,就是“芽”。

渡口和渡口之间不是绝对互斥、你死我活的。一切按照优先级的指挥棒走,优先级要你保留歧义,你就保留;优先级要你梦游,你就梦游。没有谁绝对醒着,大家都有权睡觉,也都有权梦游。但是必须按优先级排队。

李:动态变化决定优先级和成熟度 对于多层系统是自然而然的事儿。第10层不愿意勉强的事儿 到20层的时候就很坦然了。同样一个句型规则 可以化成宽窄不同的变体 部署在多层。以前做模块是根据功能做,说是这是 NP,这是 PP,这是VP,这是 Clause。这样表面上清晰,实际上应对不同歧义及其出现的不同情势的能力,降低了。没有多少真正的理据必须把同一种功能放在一起做。这样做的问题是,如果遇到相互依赖的现象,就真没辙了。根据功能做模块,模块排队,这样的pipeline无法应对相互依赖。这是多层经常遭遇的经典批判。无解,还是回到单层吧。

但是,如果同一个功能,可以散开来,譬如VP中的动宾关系,做它一二十层,相互依赖的现象就逐渐消解了。大不了就是冗余。没有冗余,怎么能滴水不漏?

wang:顺便一提,@wei 我对你的海量规则对系统的comment,回复一下写得有点多,发微博上了。

李:很好,拷贝留存如下

昨晚在一个群里就李老师说的内容提了一些问题,今天看到李老师详细回复,本想简单写写再发回群里,写完一看,这篇幅好像不适合放微信群里了,不如单发微博作为回复。李老师若觉不妥,告知我则立删。

@wei 中午看到李老师的后续回应, 现在正好有空这里回复一下。

看了李老师的后续内容,很是详细,而且前前后后已经考虑到很多方面,说明早有备货。大体勾勒一下:虽规则总量数万条,但通过分层(分组),就可以每组千条左右,规则之间的博弈也就在一个组内范围,即便组内的内斗激烈也不会引发组外的群组混战,这的确是“局部战役隔离解决”的最经济策略。另外,既然已经见识了规则系统的越大越不好对付的教训,想必肯定是避开了这个陷阱。一个组内至少再采用了共性+个性的两种及以上分支处理,先个性(词典)规则先前拦截,然后再共性来兜底,这样以来,一个组内可能内斗的程度又减轻不少,从走向来看,基本上是走大词典+小语法的组合路线,词典虽大但有索引方式来保速。如此以来,就把庞大的规则库,通过条块分割,把规则有序执行限制在了一个狭小的隔离河内,维护者在这样一个窄河里“捉鱼”确实容易得多。当然还有若干辅助策略,通过控局堵漏来进行加固。当然也看到“我是县长派来的”和“我是县长蹲点来的”有了不同的解析。这肯定不是一个简单“V”解决的,想必一定是词典策略起了作用。这词当然有丰富的语义信息了,我认为采用合适的语义范畴比词会有更好的覆盖性,尽管采用词准确性更高。

下面说下感受,必须承认之前本人还停留在规则系统教训的层面,另外,就是顾虑要扯入的人工工作量大的问题。若是李老师通过这样的俯瞰语言,化繁为简,调整规则能达到信手拈来,那么在机器学习满天飞的当下,这存量稀少的规则派之花,自有它的春天。如今是个多元的世界,允许各路英雄竞技,只要有独到之处,更何况人工智能皇冠上明珠,尚无人触及,怎下定论都是早。也曾闻工业界很多可靠的规则系统在默默运行,而学术界则只为提高小小百分点而狂堆系统,专挑好的蛋糕数据大把喂上,哪管产业是否能现实中落地。当然对于人工规则系统 VS 机器学习系统,能有怎样的结局,我确实没有定论,要么一方好的东西自然会好的走下去,要么两方都走得不错而难分输赢,或者发现只有结伴相携更能走远,那谁还能拦着么!

百花齐放,百家争鸣,各自在自己的路上,走出自己的精彩就好!世界本身就不是一种颜色,也不是一直就一种颜色

李:很赞。工作量大是所有专家编码、程序员编程的短板,自不必说。在一个好的机制平台架构下,规则应该可以非常容易编写和调试。规则应该看上去简单、透明,而不是需要玩精巧。像集成电路一样,能力不是每个单元的精巧,而是大量单元的组织集成。其实,半个世纪的持续探索,这种类似人海战术的规则海量快速编码迭代的路子是有了端倪了。说到底是数据制导,可以半自动进行,这与机器学习的海量数据训练,理据是相同的。昨天说自然语言是猫矢,应该学猫咪目标导向,反复迭代,不在一时一地的得失,不怕冗余,也不怕零星的中间错误。说的就是要创造一个环境,把小作坊的专家编码,变成可以工业化的规则流水线。以规则量取胜,而不是靠专家的精雕细刻。这条半自动的海量规则路线还在探索之中,但是前景已经相当清晰。

最后,符号规则不必争雄,游兵散勇也无法与正规军打遭遇战,但差异化总是优势与短板并存。寸有所长就是这个意思。大家在同一条路上跑,遇到困境与天花板都是类似的。这时候有人在另一条路上,保不准在最痛的某个部分,突然会有突破。原因无他,因为这力气使得角度不同,世界观不同,设计哲学不同。

据说,NLU是AI皇冠上的明珠,是珠穆朗玛峰。老友周明一直在为NLP鼓与呼,认定今后10年是NLP的黄金10年。AI似乎每天都在翻新,每周都有新闻,每月都有突破,浪头一个赶一个,新的算法、突破的model层出不穷,很多人惊呼“奇点”就要来临。为什么周老师还要提10年,对于AI进步主义者,这听上去简直是宇宙尺度了。为什么?无他,皇冠自有皇冠的难处,登顶珠峰绝非儿戏。唯此,有什么招使什么招吧,武器库还嫌武器多吗?

【相关】

《一日一析系列》

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白104: 孤岛禁忌,还是残坑过继找萝卜?】

李:
老话题,中文句式 “NP1 NP2 Vt …”中,谁(逻辑)主语,谁宾语呢?

“这帮饿鬼一席好菜吃得盆干碗净”
“一席好菜这帮饿鬼吃得盆干碗净”

白:
两个左填坑,多清晰。非要在大小主语和逻辑主宾语的标签之间纠缠干啥?

深究的话,两个左填坑是填向同一个动词的,还是一个填向核心动词另一个填向残坑的,这才是需要区别的。但就算是填残坑的,也不必然是大小主语这种很局限的概念所能容纳的。

“小提琴他梁祝拉得最好。”

这是大小宾语夹着逻辑主语。小提琴和梁祝,都跟谓语动词相谐,可坑只有一个。所以另一个只能降格。

“胡子他从来不刮鬓角。”
“胡子他鬓角从来不刮。”

“鱼他从来不吃头。”
“鱼他头从来不吃。”

这是填残坑。如果允许任意私拉飞线,发现属性或部件关系不是问题。但若仅限“邻对”才能建立二元关系,技术上就有的扯了。私拉飞线的代价就是复杂性上升到平方级。

“部队的战友他只跟张三来往。”
“部队的战友他只有张三还有来往。”

“一起去旅游的朋友他只知道张三的下落。”
“一起去旅游的朋友他只有张三知道下落。”

李:
决定私拉还是决定相邻 没有来自UG的理据 主要是语言本身的特点。

白:
语言本身的特点应该词汇自带

李:
短语结构必须相邻 是一种偶然的约定。赶巧从英语出发,发现有所便利。不过,短语结构的分析路线客观上杜绝了交叉的可能性。这里面貌似有一些逻辑上防止思维紊乱的好处在。也就是说,短语结构的左右边界的约束使得交叉二元关系成为不可能。这符合绝大多数的语言事实。但缺点是,例外在这个框架里面很难容纳。

在 abcd 中,如果a与c发生关系 b和d就不可能发生关系,这是犯了“交叉禁忌”。从短语结构来看 这是必然排除的:(abc) d 或 a(bcd)。

有括号大墙挡着 交叉不被允许:*(a[bc)d]

其实我想说的是,交叉禁忌作为逻辑追求清晰的天性,也许的确具有超出语言本身的普世理据,但是,利用短语结构的形式约束来实现或贯彻这个理据。第一是太死板,没有给例外留下容纳的余地。第二,感觉上短语结构这种等价于打括号的做法,也不是实现这种约束最精简的机制。

交叉禁忌与最大跨度类似 都是原则,都有人类的思维逻辑里面某种共同的要求,都在语言事实上有统计意义的反映,但都不是铁律。

白:
这个括号类比有一个bug,主导词(坑)和跟随词(萝卜)以及修饰词(萝卜皮)的区别没有了,只剩下左右。这大错。一个词既可以释放坑,又可以同时释放萝卜的特性没有了。关联不一定是边界。关联会引起辖域变化,但不一定是自家辖域。a和b关联,引起c辖域的变化。因为c是head,管着b,但b的辖域就那样了。不会因为新增关联而扩张。

李:
那是一个比喻。短语结构两个要素:一个是左右边界,即括号。还有一个是头词的确立。等价于依存中的父节点代表。

白:
所以一个位置,可能会出现既填坑又被填坑、既修饰又被修饰的复杂情况,岂是一个只能在左右之间选一的括号所能代表。比如,“小张把眼睛哭肿了”的“肿”。它的辖域归顺了“哭”以后就不再扩张,但它的残坑一直蠢蠢欲动,直到遇见“眼睛”才消停。有点像基金,你有所有权,但你赎回之前没有处置权。是基金经理在处置你的资产。关系是你的,但辖域不是你的。代表辖域处置你的残坑的,是head。这样既避免了飞线的复杂性,又扩展了二元关系的可能范围。正所谓合则两利。同时,卧底是你派的,打赢了地盘归我,这好事哪个head不愿意干啊……

以“王冕死了父亲”为例:“王冕”是“父亲”的卧底,“父亲”在内战中已经归顺“死”,于是在“王冕”的地盘和“死”的地盘交上火了以后,“父亲”就可以通过这一层卧底关系,招安“王冕”到“死”的地盘中来。处置权和所有权分离,辖域主人和二元关系当事人分离,是这一切的关键所在。

更何况,“死”自己已经给不出未饱和坑,只能靠“父亲”这个加盟店带来的残坑凑数了。典型的“羊毛出在猪身上”。谁让猪加盟了呢。所以我说括号的比喻有bug,bug就在把辖域的所有权和二元关系的所有权做了多此一举的捆绑。其实,辖域都是我的了,我管辖范围之内的残坑归我支配有什么大不了的?只要有支配权,这局棋就走得下去,二元关系的所有权只是个名份,给出去有什么要紧?

李:
残坑的说法也可能有问题。所谓修饰语被头词吃掉以后,把自己的坑带给了头词成为残坑。等于是说,本来的短语黑箱子又变透明了。

语言学里面有个 island constraint 说的就是黑箱子性质。被包裹起来的内在元素,从外面是看不见的。到底看得见看不见?感觉上,两边的证据都有。包有包的理由,过继有过继的理由,都不足以涵盖全部事实。

白:
这恰恰是要质疑的。拿黑箱子论证不交叉,感觉是自说自话。这俩如果都不对,就塌了。

李:
例如,“他做了三例心脏手术。”  谁的心脏?

白:
患者的。

李:
这个问题不存在,或者说,这个坑被包住了,不能过继。为什么?因为它在NP最里面。从 x bar 理论来说,第一层是 NG,“心脏”就被吃了。第二层是 NP,“心脏”就被裹进去两个括号,完全看不见了。自然谈不上去找萝卜了。如果硬找,八成是错的。“他” 更可能是大夫。

白:
我的观点是,已经过继了,外面萝卜不相谐或者有歧义,那是另外的问题,不应该跟有没有过继连在一起。跟几个括号不应该有关系,硬不硬找都不是关键。不找是本份,输出是义务。

李:
“患者的心脏”,那不是语言。那是本体。 静态常识。说了白说。

白:
不是抽象患者,是具体患者,可以落地那种,只是没有外部名字,内部是有id的。就是三个id当中分配了一个。

李:
问题是落不了地,也不该落地。因为埋藏太深了。

白:
“他做了三例心脏手术,其中一位患者出现异常反应。” 怎么连起来的?“心脏”给那位异常反应者。

李:
这是硬要去联系,不是语言理解所需要。“患者” 与 “手术” 有直接关系。这是语言理解需要的。“患者” 与 “心脏”的联系,最多是间接的,不是理解所需要的。“心脏”就是限制“手术”,表明手术种类。“心脏”没有落地的必要性。

白:
需要的时候给不出来就是失职啊。但也引入了待定事项。

“他做了三例心脏手术,其中一位植入了人工瓣膜。”

李:
咱们推向极端,把句法进一步推向词法,这个道理就更清楚了。“心脏病”,听到这个合成词,没有人感觉需要了解谁的心脏。要了解的是,谁的病?虽然逻辑上,可以推理出来,谁的病,就是谁的心脏。但是这个填坑 没有语言信息表达 传输和理解的必要性,不增加有效信息。

白:
心脏没限定功能,“的”有限定功能。有个载体是明确的,x而已。

有备无患,萝卜来了就是有效信息,萝卜没来就是潜在信息。萝卜也不一定是落地实体,可以是逻辑算子。所有、全部、某些、某个、特定,都是一种落地方式。

李:
谈心脏病,追问谁的心脏,这不是常人的思维和信息需求。这是一种干扰,干扰了真正需要理解的信息。换句话说,保持不定状态对于有效的语言表达和理解,也许与填坑落地 同样重要。Keep it unspecified as a necessary and natural part of communication, 这就好比大脑。大脑的遗忘与大脑的记忆功能 同样重要。如果一个人一辈子只记忆 不遗忘 想来是非常可怕的。

该填的萝卜没填上与本来就不该填的坑,硬要去填, 这二者需要区别。区别在于某种程度的 孤岛限制。

白:
最多可以说,它的输出不活跃、被动,区别于活动的和主动的,但绝不是没有输出。一旦有萝卜就能填,和有了萝卜也无坑可填,也是需要区别的,或者说更是需要区别的。

分三档我也没意见:一定不用、default不用但可用,default用。但把中间一档去掉我不同意。微结构不打开就不用,打开就可用。

李:
赞成。

词法、“短语法”、句法,、是三个台阶。每一个台阶 都带有某种黑箱子味道。就是那种防止坑变成残坑的趋向。

白:
词法归词法,微结构毕竟可以不打开。但是非词法的部分,特别是自由组合的部分,一定是default可用的。而且从default可用,过渡到default不用但可用,我也不同意取决于残坑的嵌套深度。

很多嵌套是修饰语的叠加,基本上没什么衰减。每次残坑转移衰减一次我赞同。就是换一次干爹衰减一次。

“小提琴他梁祝拉得最好。”
“胡子他从来不刮鬓角。”
“胡子他鬓角从来不刮。”
“鱼他从来不吃头。”
“鱼他头从来都不吃。”

“这个会所我二楼从来不去”

“二号楼”没坑,“二楼”有坑。所以刀郎唱的“八楼”很让人困惑。汽车怎么会停在某建筑物的八楼,还是公交车,原来人家是专名。

与属性/部件相关的语义理解,不是难在语义描述本身上,而是难在穿插变幻的语序上。打开语序的约束(邻对),就要handle满天的飞线;不打开语序的约束,就会漏掉交叉现象。所以我们研究把语序约束开一条小缝,控制住飞线,同时又能捕捉交叉。语义本身的描述是结果,handle语序是过程。看结果,只看得见“正确”与否,看不见“可行”与否。所以,HowNet告诉我们语义长什么样是一回事,通过一个可行的过程把握语序,最后搞成那样子,是另一回事。

李:
说得很好。关键是这条缝怎么开了。

漏掉交叉现象,以前不认为是问题。至少在英语解析中,从来都认为是天经地义的。没人愿意违反交叉禁忌原则。这个问题成为问题,主要还是到了中文以后。中文表达里面,“违反原则”的事儿不少。不得不有个应对。这才有开一条门缝的说法。才有依存关系图优于短语结构句法树的论证,因为前者的表现力更加丰富自由,没有那么多原则和禁忌。

白:
回到辖域代表权和二元关系落地权之间捆绑还是松绑的问题。这是两件事。在不交叉“原则”的背后,有一个观念认为应该捆绑。中国人的语言实践则说明二者可以松绑。松绑无害。

李:
但是,另一方面来看,尽管中文违反原则的事儿并不难寻,但隐隐约约感觉,英语中有效的那些原则,包括反对交叉原则,实际上在中文也有一定的影响力。

白老师经常举一些奇奇怪怪的违反原则的例子。好多例子听起来有一种不同程度的“别扭”。别扭在人类的句法原则和语义原则发生了冲突,给人感觉怪怪的,到底是合法非法,界限模糊了。

白:
那是你在英语世界呆久了。交叉不影响相谐,反而利用相谐。句法说的结构只是辖域之间的包含结构。只是针对这一种形式关系,不应扩大化。辖域代表权和二元关系落地权可以拆离。

李:
语义原则就是从本体来的萝卜填坑的“相谐”性,句法原则就包括结构不允许交叉依存。

多数现象二者没有矛盾。到了发生矛盾的时候,就是那种语言比较边缘的地带了,属于毛毛虫的毛刺部分。但对于解析来说,也还是要应对。而且人虽然感觉别扭,也还是听得懂。

套句马列主义课堂上学到的辩证法,原本是谈经济基础和上层建筑的。语义是决定性的,句法是非决定性的,但是句法对于语义有反作用。反作用的表现就是那些原则虽然可以违反,但是违反了感觉上不自然。

白:
多说几遍就没有反作用了。也许只是一种参数化的容忍度,有个体差异,阈值可调。

李:
哈,多说无数遍就成为成语黑箱子了,自然反作用也趋向于零了。

这里面有一个很长的灰色地带,或者说毛刺地带。有点像鸡肋,食之无味,扔之可惜。遇到社会媒体这种monster,还不得不对付。

白:
看这个:“这个会所我二楼从来不去”。念两遍,自然顺了。分析从宽,生成从严。分析不出来怪人违反原则,不是很健壮。

李:统计上应该有反映的。“这个会所二楼我从来不去”,“我从来不去这个会所二楼”,感觉上,会有多得多的人这么表达。

白:
统计有的扯,到底怎么采集就算平衡了。长尾难道该死。

分析不要管毛毛虫的实际边界,要管“外包络”。生成也不用管毛毛虫的实际边界,要管“内包络”。不踩线更安全。内外包络可以都是平滑的。在两个包络之间,如果有统计信息可以利用,可以走得更远。所以我现在在做理解的场合很少关注什么不能说,除非可以用来作为消岐的线索。

李:
内包络外包络的说法很好,不必踩线划线,在灰色地带做无意义没结果的争论。但是,灰色地带比起黑色地带,到底还有个分别。纯粹从语言工程上考量,也还是优先搞定黑色地带,灰色地带可以推后。这是其一。其二,灰色地带的难度相对大,收益相对小,也一般是事实。

白:
关键是方向。分析要从宽,包容性要大。说三遍就通的句子,要当作合法句子处理。可说可不说的,一律按可说处理。

如果一个机制能够罩住一堆长尾,但是同时也能罩住不是长尾的一堆胡说八道,只要统计上那些胡说八道的出现概率足够小,这个机制就是非常诱人的。如果落地的环节还有过滤那些胡说八道的第二道防线,那就更没什么担忧的了。

我们不是先有一个粗线条的机制罩住80%,再用另一个精细化的机制去罩住更多。我们是一开始就罩住很多,但胡说八道也会罩进来。搏的是胡说八道占比很低。所以不存在精细化环节带来的成本收益考量。毕竟难为我们也赚不了什么钱,为此在网上大肆制造胡说八道语料,得不偿失。

“学校我从来不从正门进。

“正门”绝对处于旁岔(介词宾语)。但是,它留下的残坑辗转换了两次干爹,每个干爹又各自扩充了地盘之后,在干爹“进”的带领下最终迎来了相谐的大萝卜——学校。

【相关】

【一日一析:表层句法形式变化,深层逻辑形式不变】

《一日一析系列》

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

《朝华午拾》总目录

 

【一日一析:表层句法形式变化,深层逻辑形式不变】

这也是老生常谈了,从上世纪50年代乔姆斯基的表层结构深层结构的转换就开始了。但这的确是自然语言最突出的特性:一个意思有多种(几乎)等价的表达。例如:

(1a)这帮饿鬼把一席好菜吃得盆干碗净
(1b)这帮饿鬼一席好菜吃得盆干碗净

一字之差,中文句法解析完全不同。

介词“把”字的省略,造成了两个名词短语相邻,所以句法解析可能就走不同路径了。这是中文语法学界讨论蛮多的话题句式,第一个NP是话题 Topic,很像一个句子的大主语。第二个NP才是主语,也有语言学家分析说是个“小主语”,它与动词短语结合在一起,作为大主语的大谓语。无论句法上解析为大小主语也好,大小谓语也好,或者话题加单句也好,但是说来归齐,这种省略了“把”的句子与没省略“把”字的句子,说的是一个意思。因此,逻辑语义深度解析还是要统一到同样的逻辑形式(logical form)表达的。这正是我们深度解析(deep parsing)需要做的工作。下图的依存关系图是我们目前中文深度解析器的最终输出结果,就是上述逻辑形式的统一表达。

类似的,“被”字也可能省略。除了把字句和被字句外,其他句法形式还包括重叠式与得字结构。这些都是汉语句法讨论过很多年的语言现象。

(2a)一席好菜被这帮饿鬼吃得盆干碗净
(2b) 一席好菜这帮饿鬼吃得盆干碗净

(3a)这帮饿鬼吃一席好菜;这帮饿鬼吃得盆干碗净
(3b)这帮饿鬼吃一席好菜吃得盆干碗净

 

 

 

【图例】
S: Subject; O:Object; B: Buyu; M: Modifier;
X: Purely functional; Z: Functional

 

【相关】

《一日一析系列》

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

《朝华午拾》总目录

 

Interview 1/10: Critique of Chomsky’s Formal Language Theory

Q: Lao Li, I have been paying close attention to your academic track. I deeply admire you for more than 30 years’ in-depth study of symbolic logic in the field of natural language understanding with your unique innovation. On your NLP Channel, I notice that you’ve been critical of Chomsky. Chomsky is the representative figure of the rationalist school. Like many others, I admire Chomsky. As far as I know, you are also a rationalist. So why do you, as a linguist who practices rationalism, criticize Chomsky?

A: First of all, although I have criticized Chomsky, pointing out his theoretical issues and objective misguidance in the field, these are “criticisms within the school”. There is no doubt that Chomsky is the father of computational linguistics and the banner of rationalism in the field of artificial intelligence. His theory of formal language is the cornerstone of computational linguistics. All of us computational grammarians, as practitioners of the symbolic logic of rationalism in language, are his disciples. When we criticize him, we still use his formal mechanism as the frame of reference.

From the perspective of language formalization, Chomsky, who has a deep mathematical background, brings mathematical rigor into the formal study of language. At least in terms of formalism, Chomsky unified human language with computer language to have achieved a highly abstract symbolic system no others could dream of reaching. Without Chomsky’s formal language theory, computer science could not develop high-level languages, and all the achievements of the information industry would be unimaginable.

On the other hand, it can be said that Chomsky’s negative impact on the field is as big as his revolutionary contribution to linguistics and computer science. His formal language hierarchy is a theory of pure genius, which lays the foundation of language formalization. This formalism has become the theoretical basis of computer high-level languages and their compiling algorithms. It is used at its best to create, parse and compile computer languages as a perfect guide. However, perfection is sometimes only one step from fallacy. Chomsky criticizes the finite state machine as not suitable for modeling natural languages due to a lack of recursion mechanism. Too many people are misguided and fall into the so-called “more powerful” context-free mechanism.

Such an intelligent and powerful figure, if he misleads, can impact an entire  generation. The generation that was affected was my direct supervisors and predecessors when I entered this field (in the 1970s and 1980s), their work in natural language understanding was almost exclusively toy system confined to labs, difficult to scale up and demonstrate in practical applications.  This directly led to the rebellion of the next generation. This is the piece of history in artificial intelligence, the famous competition between rationalist symbolic school and empirical statistical school, with long struggles between the two paths. The rationalists of the old generation were at a disadvantage in competition and gradually withdrew from the mainstream stage.

All the advance of the statistical school over the last 30 years has been a practical critique of Chomsky because almost all of these models are based on finite state models, which he repeatedly criticized as inappropriate for natural language. The context-free grammar he advocates has achieved limited success in the field of natural language.

Q: Now that everyone is advocating neural networks and machine learning, is there still room for the symbolic rule school? Rationalism has lost its voice and visibility in the natural language community. What do you think of the history and current situation of the two?

A: Well, machine learning has been on the rise in natural language processing since about 30 years ago, with the rapid development of data and computing resources. Especially in recent years, deep neural networks have achieved breakthrough successes in learning. The success of empiricism, in addition to the innovation in neural network algorithms, also benefits from the availability of unimaginably big data and big computing power today. In contrast, the rationalist school of symbolic logic, due to its implacability,  gradually withdrew from the mainstream stage of the academia after a brief upsurge of phrase structure grammars with innovation based on unification about 20 years ago. There are several reasons for this situation, including Chomsky’s long-term negative influence on computational grammars, which deserves serious reflection.

Looking back at the history of artificial intelligence and natural language, the pendulum of empiricism and rationalism has swung back and forward, but the pendulum of empiricism has been on the rise for the last 30 years (see the red dot in figure 1). In his article “Pendulum Swung Too Far”, Professor Church  predicted and called for the resurgence of rationalism and presented an illustration below:

At present, due to the breakthrough of deep learning, empiricism is still in the limelight. Although rationalism has been accumulating efforts by itself for many years, it has not yet reached the tipping point where it can compete, head-on, with empiricism. When one school becomes mainstream, the other naturally fades out of sight.

Q: I have a feeling that there is some confusion in the community and outside the community at large. Deep learning, which is a method of empiricism, now seems to be regarded by many people as equivalent to artificial intelligence and natural language processing. If the revolution in deep learning sweeps through all aspects of artificial intelligence, will it end the pendulum swing of rationalism? As professor Church says, the pendulum of empiricism has swung too far, but it looks far from falling back.

A: My definite answer is no. These are two different philosophical bases and methodologies, each with its own natural advantages and disadvantages. Although there are reasons for the status quo of the existing one-sided empiricism in the current academic world, it is not a healthy state. In fact, both schools are competitive on one hand and also highly complementary on the other hand. Some older generation mainstream pioneers like Church have been warning about the disadvantages of one-sidedness in empiricism, and some new scholars in deep learning have been exploring the integration of the two methodologies to solve the problems of natural language.

Yes, much of the current surge in AI is based on breakthrough performance from deep learning, especially in the areas of image recognition, speech processing as well as machine translation, where AI systems have reached or exceeded human quality. This is an unprecedented amazing achievement indeed. However, the fundamental limitation still exists with deep learning, as well as all the other successful empirical methods at present, that is, the dependence on massive annotated data, what we call the knowledge bottleneck. The reality is that in many fields and application scenarios, such as natural language parsing, machine translation of e-commerce data, data of massive annotation or domain translation do not exist. This knowledge bottleneck severely limits the performance of the empiricist school in natural language understanding and other fine-grained cognitive tasks. There is simply not enough annotated data in many sub-fields, and without, it is almost impossible to make bricks without straw for learning. This is especially true for deep learning, which has a much larger appetite, like insatiable, than traditional machine learning.

Q: So it seems that deep learning is not an all cure. Rationalism has its place. You said the two schools have respective strengths and weaknesses. Can you compare and contrast them? Why are they complementary?

A: Let me summarise the merits and demerits of the two for a serious contrast.

The advantages of empirical statistical models include: (1) good at coarse-grained tasks, typically, document classification, for such tasks, statistical learning is naturally better to draw the overall conclusion; (2) robustness; (3) high recall: due to the lack of structures and understanding, many tasks might face a ceiling for accuracy, but recall-wise, learning usually performs well; (4) development efficiency: it can quickly scale to a real application scenario of big data.

The main limitations of the statistical school are: (1) the dependence on massive annotated data: this is the biggest knowledge bottleneck; (2) it is difficult to make targeted debugging: the statistical system is more like a black box, a big defect for maintenance and iterative incremental enhancement of a software system; (3) lack of interpretability: whether the result is right or wrong, it is difficult to explain, which affects the user experience and confidence. The main reason is the lack of explicit structural representation and symbolic logic in the algorithm that people can follow.

The rationalist approach simulates human cognitive processes without relying on massive labeling data to imitate on the surface strings. Rationalism directly formalizes the experience of domain experts and uses the explicit rule system from symbolic logic to simulate human intelligence tasks. In terms of natural language understanding, the grammar school formalizes the rules summarized by linguists so as to parse natural language in detail at all levels and achieve deep syntactic-semantic analysis. In this respect, rationalism has its natural advantages.

To sum up, the advantages of rationalist rule-based school include: (1) good at tasks of fine-grained tasks: very detailed analysis, such as the deep parsing of syntactic semantics with logical reasoning; (2) accuracy: the rule system written by experts is easy to guarantee high accuracy, but the improvement of recall is usually a long iterative process; (3) debuggable in error correction: the basis of the rule system is symbolic logic, which is easier to trace to the root of the error in debugging; (4) interpretable: this also benefits from the understandable symbolic logic basis.

The main defect of the rule school is the low efficiency of manual coding, and the dependence on expert coding is the knowledge bottleneck of the rule school. Supported by the same platform and mechanism, different levels of expertise determine different levels of quality. The two paths have their own knowledge bottlenecks, so to speak. One is to rely on a large quantity of “low-level” labor, labeling, though very monotonous,  is work that can be assigned to ordinary students with a little training. The other is to rely on a few experts of “high-level labor”,  much like software engineering, for coding and debugging rules, the knowledge engineer training costs are high, making it more difficult to scale up to the real world. Finally, the talent gap can also be regarded as a realistic severe limitation of the rationalist school. 30 years is exactly one generation, during which empiricism has occupied the mainstream stage, and attracted almost all newcomers, causing a generation shortage of talents in the rationalist camp.

As for the recall, it cannot be simply concluded that high precision is bound to have a low recall rate for rule systems. The actual situation is that, on the one hand, it is not at all difficult to achieve a balance between precision and recall, by deliberately relaxing rule conditions and sacrificing accuracy. On the other hand, while high precision can also be maintained, the more rules added to the system, the more phenomena will be captured, hence the recall rate will come up naturally and incrementally in the iterations as time moves on. In other words, recall is a function of time and development resources put in, without having to compromise precision.

Q: Since each has its own strengths, as the rationalist pioneer and father of computational linguistics, why doesn’t Chomsky exert its due influence in the field of natural language processing? His impact has been waning, and the newcomers to the field hardly hear of him.

A: Indeed it is. Although I am a rationalist, I also see that there is a considerable historical burden from this school that needs to be seriously reflected on from the perspective of formalism architecture.

Chomsky is the founder of modern rationalism, but the theory and practice he developed also involve some misconceptions. We must recognize these so that we can move forward the linguistic rationalism in symbolic logic steadily and deeply for natural language. In fact, after decades of theoretical exploration and practical experiments, the grammar school has seen fairly clearly its own theoretical limitations. Those who stick to the symbolic rule systems have broken through the path of innovation in the inheritance of rationalism, and have made their own breakthrough in deep parsing, the very core of natural language understanding, and in its scale up to big data for real-life information extraction and text mining applications. That’s what we’re going to focus on in this series of interviews.

Q: I know you have great faith in rationalist symbolic approaches in general. However, you have also seen a number of misconceptions in Chomsky’s theories. which are the most critical?

A: On his formal language theory, there are two fallacies to my mind, one I would name Recursion Fallacy and the other Monolayer Fallacy.  On his linguistics theories, one of the very basic propositions in his linguistic revolution is “syntactic autonomy” or “self-contained syntax”.  It involves serious potential consequences in the analysis of certain languages such as Chinese.  His phrase structure grammar tree represenation with his X-bar theory in syntax is also worthy of reflection and criticism, especially when it is put in the comparative study with the alternative dependency grammar and its representations for NLU. Let’s look at Recursion Fallacy first.

In my view, Chomsky’s greatest mislead was to use the so-called recursion nature of natural language to criticize pattern matching in finite states. His cited English examples of center recursion are far-fetched and rare from real life, making it difficult to argue for its being the nature of natural language. Nevertheless, a generation still chose to believe in his theory, taking it for granted that finite states had to be abandoned in order to be able to parse natural language.

Q: Isn’t it generally accepted that natural language is recursive? How to say it is a fallacy?

A: Exactly because it is widely accepted, it is of the more misleading nature and consequences, hence requiring more serious critique.

Recursion in natural languages typically comes in two types: (i) right (branching) recursion and (ii) center recursion. Many people don’t consciously make that distinction, but in computational theory, they are two very different things. Right recursion is linear by nature while center recursion is nonlinear, a completely different monster, of much more computational complexity. In natural languages, right recursion is fairly common and can at times be as many as seven or eight levels nested, which still reads natural and easily comprehensible. For example, the VP nesting example:

(to request A (to beg B (to ask C (to do something))))

For right branching recursive structures, we usually do not feel a burden in the communication. The reason is that, although the right recursive left boundary is in an uncertain position, they all end at the same poin for the right boundary, like this: (… (… (… (… (…… ))))). Thus, we do not need a “stack” mechanism in memory to deal with it, it remains finite-state.

Chomsky cannot criticize finite-state devices with right recursion, so he needs to base his argument on center-recursion, a rarity in language. The fact is that natural languages have little manifestation of center recursion. Center recursion is much like matching parentheses. You want the parentheses to match each other so  you can express and understand the proper nesting structures, like this: { … [ … ( …… ) … ]… }. After as many as three levels of center recursion, our brain can no longer cope with the pairing complexity, which is why it’s hard to fine such phenomena in real life language data.

Q: I remember some examples of center recursion in English:

      The man who the woman who had lost all the keys was calling all day finally came…

A: Is this “human” language? Chomsky repeatedly attempt to teach us that not only this is human speech, but it is the very nature of human language, hardly any hypotheses about language as far-fetched as this to my mind.

Q:  Let me try to understand what you mean: center recursion does not exist, or does not exist over three levels, so natural language is finite-state?

A: Well, not that it does not exist, it’s so rare and far-fetched, and it’s never more than three levels deep unless you’re pulling a prank. Therefore, it can by no means be the “nature” of natural language.

The very idea of unbounded center recursion in language, far from the observable facts, in effect violates the limits set by the short-term memory following psychology. Where in the world do people talk like that, like, keep opening the doors without closing them behind, in a maze-like complex castle, with nested sub-structures after substructures? A path of 3 doors opened, an average person will get lost in the maze. Even if you’re a super linguist, and you can stand it, your audience will be bound to be trapped. Is natural language not to communicate, but deliberately making difficult for people to follow you?  This is not in accordance with the consensus that language is born for communication and serves the ultimate purpose of communication.

Using pranks and verbal games as evidence of linguistic competence and the nature of language is one of the most misleading aspects of Chomsky’s recursion theory. This recursion trap leads many people to automatically accept that natural language is recursive and therefore we must discard the idea of finite states. The people who believe in him, on the one hand, are influenced by his authority as the father of modern linguistics; on the other hand, they often mis-regard the more common and deeper right recursion for center recursion as evidence in support of Chomsky’s recursion hypothesis. Chomsky himself is intelligent and rigorous as not to use readily available right recursion as evidence, he only uses center recursion as an argument.  But he’s in effect misleading.

Q: I guess this is a typical behavior of mathematicians and philosophers: they pursue formal perfection. As long as it is theoretically impossible to exclude multi-level center recursion, it is required that the formal mechanism must have a built-in recursion mechanism. But practitioners of natural language understanding do not have to be bound by that theory, do they?

A: after all, the foothold of the theory should be based on the real-life natural language object and data, right?

In fact, in the research of corpus linguistics, some scholars have conducted a very extensive survey and found that the so-called center recursion in natural language never exceeds three levels, and the occurrence of three-level recursion is extremely rare [reference]. The phenomenon of natural center recursion beyond three levels is simply not found in a very large running corpus, not a single case found. So why boil a very limited center loop down to what seems like an infinite level of recursion, and furthermore consider it the essence of natural language, and use it as an argument to determine the choice of the formal model for natural languages? This has had serious consequences for computing and NLU going beyond labs for applications.

In order to deal with theoretically infinite center recursion, the human brain, or computer memory, must have a “stack” device and a “backtracking” algorithm. Without going into the technical definitions of these computer terms, computer science studies have demonstrated that stack-based backtracking is expensive for computation. Using it as a basic device for natural language severely impedes language parsing from leaving the laboratory. Specifically, Chomsky’s “context-free grammar” with built-in recursive devices is theoretically bound not to have corresponding linear speed algorithms. The absence of linear algorithms means that the computing time is beyond control, so when entering big data out of the lab, this kind of thing is one limiting factor in practice. This is one of its fundamental flaws in his formal language arguments for natural language.

Q: I agree with you: there are only very limited levels, we don’t have to stick to recursive grammars. But I still have a question. Short-term memory is a psychological concept, and most of us in computational linguistics believe that psychology has no place in linguistics. Don’t you agree?

A: I don’t agree. The limitations of psychology have a direct effect on real linguistic phenomena, that is, psychological effects are reflected in linguistic phenomena. Real language phenomena, not imaginary phenomena, are the goal and final foothold of our natural language study. What we’re dealing with is a data set with a psychological constraint, and it’s obviously not appropriate for us to adopt a mechanism to deal with it based on a hypothesis that disregards psychological constraint.

Q: But even with the addition of psychological restrictions, don’t real corpora still have recursion? If yes, without the formal recursion device, such as the finite state machine, how can it handle the actual existence of the center recursive structure as long as it is not a non-existence?

A: Not a problem at all. As long as the recursive structure is bounded, the finite states have no problem in dealing with it. All we need is just cascade a few more finite state machines. Since you have at most three levels of center recursion, then it is 3 machines with 3x time needed, which is still linear. Even 10-level center recursion is not a thing, just add up 10 finite state automata. In our deep parsing practice, we have once applied up to 100 cascaded finite state machines for very deep parsing, in high efficiency. This kind of finite state pipeline systems, often called cascaded FSAs, is essentially the same concept of the pipeline as used in software engineering.

Q: Chomsky Hierarchy, named after Chomsky, is the most famous discovery in Chomsky’s formal language theory, which divides grammars into four types, type 0 to type 3, corresponding to different automata. What do you think of his hierarchy?

A: Chomsky’s formal language hierarchy is like a hierarchical castle with four enclosing walls safeguarding inner cities. Each formal device is like an internal forbidden city. Here we particularly recommend and quote an insightful study of Chomsky Hierarchy by Prof. Bai, which I call  a “caterpillar” theory of natural language (S. Bai: Natural Language Caterpillar Breaks through Chomsky’s Castle):

If we agree that everything in parsing should be based on real-life natural language as the starting point and the ultimate landing point, it should be easy to see that the outward limited breakthrough and the inward massive compression should be the two sides of a coin.  We want to strive for a formalism that balances both sides.  In other words, our ideal natural language parsing formalism should look like a linguistic “caterpillar” breaking through the Chomsky walls in his castle, illustrated below:

Prof. Bai also clearly sees that Chomsky’s recursion theory is too far away from linguistic facts, so he puts special emphasis on “real-life natural language”. After all, formal systems serve as formalized models for natural language, that is, they need to provide an appropriate framework for what natural language looks like. The common answer shared by Prof. Bai and me is that a suitable natural language model needs to get through the walls inside the Chomsky Castle. Any single device in Chomsky’s existing formalisms, when used to model natural language, is either too small to fit, or too large lacking appropriate restrictions. In both theory and practice, it is necessary to penetrate the walls of Chomsky Castle and form an innovative formal system, so as to lay a good foundation for the revival of grammars in natural language modeling. In the formalization process of penetrating the walls, Mr. Bai has his own innovation, and I have mine. My proposition is to extend and overlay the finite-state mechanism, so as to establish a shallow and deep multi-layer rule system for natural language deep parsing and understanding.

Do not look down upon finite state machines, which seem to be a very simple mechanism for pattern matching. When they are added layer by layer in the architecture of a reasonable pipeline system, they can cope with very complicated structures and phenomena and reach the depth of language parsing that is never before made possible by traditional context-free grammars or other devices. Of course, the mechanism itself can be reinvented and recrafted, such as incorporating the unification operation in handling language reduplications, e.g. in Chinese, “看一看”: V 一 V (literally look-one-look: “take a look”).  There are also rules for pattern matching that can effectively eliminate ambiguities by adding post-context conditions, similar to the “look ahead” effect in backtracking algorithms, to the pattern matching device.

It is worth emphasizing that maintaining the linear nature is the premise of any formalism innovation. No matter how we extend the mechanism of finite-state devices, this one remains an unchanged goal, that it must retain the essential characteristics of finite state to ensure the “line speed”. We use a multilayer cascade to bypass the recursion trap, hence eliminating the biggest hidden trouble that hinders linear speed. Since the linear multiplication remains linear, the cascaded finite state system does not change the linear benefit of the system. Computationally, the processing speed required for three-layer recursion is only 3x, which will not affect the scalability potential of the system. In fact, we have deployed multi-layer systems, usually with more than 50 layers. Our Chinese system sometimes cascades up to 100 layers in the architecture, where capturing recursive structures is just a relatively simple task inside.

Q: That’s fascinating.  And very imaginative, too. It is apparent that you and Prof. Bai have both accumulated years of practice and deep dive into natural language so you two have such insights as summarised above in breaking through the internal walls of the Chomsky Castle. Ok, so the first issue with Chomsky formal language theory is the recursion fallacy, what’s the second fallacy?

A: The second major problem with the Chomsky formal language theory is briefly mentioned above, which I call  Single-layer Fallacy.

Turn to the chapter on parsing in the computational linguistics textbook, the typical algorithm for parsing, known as chart-parsing, is often introduced on the formalism of a context-free grammar (CFG). CFG contains recursive calls in its rules for covering recursive structures, a point emphasized by Chomsky as the key feature for natural language. The implementation of this rule system is carried out in the same search space on the same plane, thus the so-called chart-parsing can be illustrated on a flat chart. Successful parsing is represented by one or n search paths that cover the entire sentence.

[consider a chart parsing sample.]

The essence of single-layer parsing is like cooking a hodgepodge.  Everything in an input string,  from morpheme to word, from word to phrase, from phrase to clause, from clause to a complex sentence, all are carried out in the same space.

Q: So Chomsky wants to solve everything at once. Isn’t that good?

A: Problem is, there are three main disadvantages. First, there is no linear algorithm. Many people have tried, but they just can’t find a linear algorithm, it’s a combinatorial explosion.

The second disadvantage is that it is not suitable for modular development, because the surface or shallow level language phenomena and the deep language structures are all mixed on one plane.

The third disadvantage is the so-called “pseudo-ambiguity” issue. “Pseudo ambiguity” is in contrast to true ambiguity. If there is one true ambiguity in the input sentence, the correct identification is for the parser to produce two parses to express the ambiguity. “Pseudo-ambiguity” means that a sentence is not ambiguous in people’s understanding, but the parser still outputs several parses, which are all considered to be grammatical.

The problem of pseudo-ambiguity is a recognized challenge in single-layer parsers. Even for a simple sentence, traditional parsers based on context-free grammars often produce dozens or even hundreds of parses. Most of the time, the differences are so subtle that they don’t make difference in communication. The consequence is that very few true ambiguities are hidden among many false ambiguities. In effect, the parser loses the ability to parse ambiguity completely. Of course, such a single-layer grammar approach is difficult to be truly deployed in parsing and semantic decoding of big data.

Q: Lao li, I think I have now started understanding the drawbacks of the single-layer parsers you discussed. Could you elaborate on why it is not a feasible model for real-life applications?

A: Too big a search space, and too many parses.  In essence, the system makes explicit all possibilities, low probability events as well as high probability events all in the same search space,. The whole idea is that it makes sense in theory, that any small possibility is a possibility, and then from a perfect theoretical model, you can’t block any path in advance. This way, you have to save all the search paths until the global path is complete. And this leads to the fact that the space where the resolution is, in fact, a combinatorial explosion space, so there’s no efficient corresponding algorithm.

Q: why isn’t a single layer suitable for modularity?

A: there is no modularity at all in a single layer. The approach of a single layer means that the whole resolution is a module, and a single layer means non-modularity. Its theoretical basis also has some truth. It says that language phenomena are interdependent, and a complete language analysis scheme cannot completely separate them. As low as participles and as low as the boundaries of basic phrases, these shallow structures are difficult to determine outside the overall structure of the sentence. This is because a locally sound structure can always be overridden in a larger context.

(for instance)

From this interdependent, locally subordinated global perspective, structural analysis, once cut up, creates a chicken-and-egg problem. To deal with this problem of interdependency, theoretically, a single-layer model makes sense. In a single-layer system, all the interdependent phenomena are explored in the same plane according to the global paths as solutions. That forms, of course, an argument against multiple layers, that language phenomena are interrelated, so we can hardly treat them by first cutting them into multiple layers.  Interdependency in a modular pipeline is very susceptible to “premature pruning” of branches. To be honest, if we leave aside the pseudo-ambiguity problem and the non-linear speed from the single-layer system design for a moment, it is quite difficult to refute the above argument against the multi-layer system design. However, single-layer is not very feasible in practice. The consequences of a single layer far outweigh the benefits, and the concern on premature pruning in a multi-layer system actually has its own countermeasures.

Q: Your point of view is not quite the same as my understanding of modularity. In my understanding, a module is actually a concept without hierarchy. Just like with bricks, you can build roads, it’s like a complete horizontal jigsaw puzzle of bricks. Of course, you can also build a wall in which case bricks are hierarchical. It goes up one level at a time. So, in my understanding, modularity and hierarchy do not have to be correlated. Does it make sense?

A: Yes, you’re right. Modules are bricks. They do not have to have layers. If there are layers, like building a wall, then there has to be a sequence architecture of modules. But it is also possible that there is no sequential dependency between the modules and the layers. The modules are defined from an angle beyond layers, which is like paving a road. Road paving does not have to be serial, which can be parallel. In practice, they may as well still be arranged in a uniform pipeline, combining the style of road paving with the style of wall building.

Modularity itself is a seasoned practice that comes from software engineering.  That is, when building a complex system, we always attempt to divide tasks into subtasks and sub-subtasks. Modularity makes the development process more tractable and easier to maintain. Natural language is undoubtedly a fairly complex system. Faced with a complex object like language, a good way is to emulate the approach that has worked in engineering for years. That is to say, the task should be reasonably decomposed and cut into modules as far as possible to implement modular development.

Thanks to http://fanyi.youdao.com/ based on which this translation is revised and polished by the author himself.  This is the first chapter of our book on NLU which consists of 10 interviews on key topics of AI symbolic logic as used in natural language parsing. Stay tuned.

[References]

S. Bai: Natural Language Caterpillar Breaks through Chomsky’s Castle

 

转载:白硕:关于基于规则方法的反思(2)

关于基于规则方法的反思(2)

【问3】基于规则方法的主流技术路线是什么?它的主要贡献是什么?

【答】追溯历史,可以发现:基于规则方法起源于结构主义语言学派,伴随生成语言学派在语言学界占据主导地位而在计算语言学界达到鼎盛,伴随因特网的兴起而被基于统计的方法逐渐趋于边缘化。因此,谈到基于规则方法的主流技术路线,特别是作为基于统计方法对立面的基于规则方法的主流技术路线,一定是生成语言学派的核心学术思想及其在计算语言学中的实践和发展。在总结基于规则方法的主流技术路线的得失的时候,我们必须不带偏见地肯定它对语言学和计算语言学的主要贡献。

如果以为生成语言学派的主要贡献是搞清楚了哪一门具体语言里有哪些具体规则,那就大错特错了。笔者认为,生成语言学派最大的贡献,在于以一种可证伪的方式告诉我们,表示规则的形式化框架应该是什么。通俗地说,就是告诉我们“规则应该长什么样”。一条具体的规则不好,你可以在这个框架之内废了它。一个具体的规则体系不好,你也可以在这个框架之内另起炉灶。只要在原有表示规则的形式化框架内做有限的改良有成功的希望,一般来说就不要去动这个框架。但是如果表示规则的形式化框架离开语言现实太远,局部的修修补补难以充分适应语言现实,我们就必须考虑废掉这个框架了。看看乔姆斯基的学术轨迹,可以发现,几十年来他一直在对“规则长什么样”进行着调整,在战略上不断用新我否定着旧我,但在战术上,他却很少就一门具体的语言到底该有哪些规则发表看法。即使关于英语说到了一些规则,那也是为了解释他的普适原则和理论而举的例子。

那么,在生成语言学派看来,规则究竟应该长什么样呢?在笔者看来,他们对规则有如下一些基础假设:

    1、  存在有限个基本的句法范畴作为规则表示的基本单位。它们既包括词类,也包括词组的类。同一句法范畴下的实例,在组句能力(分布)上必须有共性。

    2、  句法范畴从左到右的线性排列模式,决定对这个模式的“重写(rewrite)”结果。

    3、  语言的合法成分都是有限次匹配上述从左到右的线性模式、施用重写的产物,依照对重写的限定不同,分为不同的规则体系类型。比较常见的是上下文无关类型的语言及其规则体系。

    4、  句子是一个特殊的句法范畴,它的实例都是目标语言的合法语句,目标语言的合法语句都是它的实例(all and only)。

   很遗憾的是,有些人在用统计方法的优点来批评基于规则方法的缺点的时候,并没有分清楚他们批评的是生成语言学派的规则表示形式化框架本身,还是批评这个形式化框架下构建的某个具体的规则体系。比如,有人说“打扫卫生”不能解释为“把卫生给打扫了”,因此述宾结构不成立,因此规则方法不成立。这样的论证是可笑的。

    “规则长什么样”是基于规则方法的最核心问题。如果具体规则错了,可以替换以新的规则;如果关于规则长什么样的假设错了,要调整的则是这种形式化表示框架本身,同时也会连累到许多个基于这种形式化表示框架的具体规则体系。

    关于“规则长什么样”的一般性假设一旦确定下来,就有了对其在计算上予以实现的理论和实践。具体说就是相关的形式语言、自动机以及算法理论。这些理论是生成语言学派关于规则长什么样的一般性假设在计算领域的推论,对于基于规则的自然语言处理系统的实现有一定指导意义。

    但是,在计算语言学领域,对生成语言学派关于“规则长什么样”的一般性假设,也并非照单全收,你假设,我实现。实际上,为了更加贴近语言实际,在计算语言学领域发生了多次对“规则长什么样”的局部修正。词汇功能语法(LFG)、广义短语结构语法(GPSG)、中心词驱动的短语结构语法(HPSG)、依存语法(DG)、树嫁接语法(TAG)等等,都可以认为是对生成语言学派关于“规则长什么样”的假设的修正案。“次范畴”和“合一”的概念,已经成为基于规则阵营中人尽皆知的概念。“依存”的概念则在一定程度上突破了模式必须是句法范畴从左到右依次排列的假定,允许一定的不连续性。它们到底把生成语言学派关于“规则长什么样”的假设向前推进了多远,也许今天评价还为时尚早。但是,所有这样一些局部性的修正案并没有触动基于规则方法的根本缺陷,应该是许多仁人志士的共识。

转载:白硕:关于基于规则方法的反思【连载1】

【立委按】今天才发现白硕老师的这个很久以前的NLP系列问答,相阅恨晚,叹服其洞见远见,拍案叫绝。一开篇就心有戚戚焉,字字珠玑。

“败的一方是基于规则的方法吗?我认为不是。最多只能说,是基于规则方法当中的某种主流技术路线。但是,这种主流技术路线,不足以概括基于规则方法的全部,也不足以决定基于规则方法的未来。特别是,基于规则方法和理性主义不存在必然的逻辑捆绑。人们对基于规则方法有诸多误解,基于规则方法的主流技术路线也有诸多弱点和缺陷,值得一切尊重语言事实、尊重规则的人进行深入的反思。我们这个问答系列,就是试图在对基于规则方法进行深入反思的基础之上,探索基于规则方法未来发展道路的一个尝试。笔者认为,基于规则方法的处境前所未有地艰难,但也正在孕育着巨大的机会,“抄底”在即。”

特转载学习。

关于基于规则方法的反思【连载1】

 

【问1】:基于规则方法和基于统计方法,被称为自然语言处理的两大“阵营”,并且上升到理性主义和经验主义“之争”的高度。请问,这个概括是否准确?两大阵营“之争”到目前为止是否已经见分晓?

【答】:确实有两种技术路线之争。从上个世纪九十年代初阵营划分确定以来,从主流杂志、主流文章、主流技术、主流产品等各方面看,其中一种大获全胜。这是一个基本的事实。任何进一步的讨论,都首先要基于这个事实。

进一步追究,胜的一方,确实是基于统计的方法。那么败的一方是基于规则的方法吗?我认为不是。最多只能说,是基于规则方法当中的某种主流技术路线。但是,这种主流技术路线,不足以概括基于规则方法的全部,也不足以决定基于规则方法的未来。特别是,基于规则方法和理性主义不存在必然的逻辑捆绑。人们对基于规则方法有诸多误解,基于规则方法的主流技术路线也有诸多弱点和缺陷,值得一切尊重语言事实、尊重规则的人进行深入的反思。我们这个问答系列,就是试图在对基于规则方法进行深入反思的基础之上,探索基于规则方法未来发展道路的一个尝试。笔者认为,基于规则方法的处境前所未有地艰难,但也正在孕育着巨大的机会,“抄底”在即。

【问2】:那么,语言是有规则的吗?语言是可以用规则来描述的吗?

【答】:语言有多个层次。为简化问题起见,以下“规则”仅指词法和句法规则,更深层的语义语用规则暂不考虑在内。

首先让我们看一看“规则”及其对应的英文术语rule的含义。在英语中,规则(rule)与尺子(ruler)是同根词。在汉语中,“规”是圆规,“矩”是角尺,二者都是依据某种标准产生几何图形的工具,而“则”具有“明示的条文”的含义。英语中Rule还兼有统治的意思。在现代汉语中,作为名词的“规矩”和“规则”同义,但“规矩”比较口语化,“规则”更具书面语风格。“规则”的意思是“对一个社会群体有强制约束力的明示的条文”。

规则的强制约束力来自于两个方面。第一个方面是来自社会的约定。所谓约法三章,所谓社会契约,说的都是有人来制定并遵守规则。不方便拿到台面上但在台面下仍然被讲究和遵守的是“潜规则”。第二个方面是来自自然规律的强制。由人类社会中热衷科学的人士发现自然规律,用人类的概念体系表述出来,在应用科学知识的场合比如工程设计中遵守。规律是客观的,规则是人类用自己的概念对规律作出的表述。囿于人类认知能力所限无法清晰表述但仍在暗中起作用的是“隐规则”。

具体到语言,语言是人们约定俗成并与时俱进的符号交际系统。既然约定俗成,那语言就是靠口耳相传,本质上就不需要什么明示的条文,也不需要人们协商产生,把小孩子放到一个现成的语言环境,小孩子自然就能学会。一些部落只有语言没有文字,一些社会缺乏甚至全无学校教育,但这都不妨碍他们自发地形成和传承语言。既然与时俱进,那语言就确实在社会的发展中改变着自己的模样,一些词死了,另一些词新生出来;一些现象淘汰了,一些现象新冒出来。旧瓶也可能装新酒,老树也可以发新芽。一些网络新词层出不穷,一些语言在经历了不同历史时代后形式上出现了巨大变异。

这样看来,语言是一种不以单个个体的意志为转移的客观存在。作为单个个体只能适应而不能约定,因此语言的规律性有跟自然规律相像的一面;语言又可根据群体行为交互作用“涌现”新要素,因此具有大时间跨度下、大群体流通中产生的人为约定性的一面。在人们对一种语言的认识能力不足之时,拿不出有关这种语言的完整的明示的规则体系,但这不表明不存在暗中起作用的“隐规则”。

因此,语言和规则,从语言诞生之始,就注定存在一对深刻的矛盾。任何所谓的语言规则,都是人(语言学家)总结出来的语言学知识,又要求人(语言使用者)去遵守的。理论上,人不总结这些规则,原则上也不妨碍语言的传承。人不把规则明示出来,这些规则也会隐性地发挥作用。仅仅从这个角度看,人总结的语言规则,确实显得可有可无。但另一方面,语言的相对客观的规定性又持续稳定地发挥着不以人的意志为转移的作用,人类求知好奇的天性总会催生一些语言学家,试图用明示的语言学知识来揭示这种作用的奥秘,而人类跨语言交流、人机交流、机机交流的需要则进一步昭示这种语言学知识的巨大社会价值。

所以,语言有客观的规定性,人类有必要总结语言学知识,语言学知识采用规则的形态,是人类对自身语言规律好奇心发展的需要,也是人类为解决人际和人机之间以语言为媒介进行沟通的需要。至于规则长什么样,完全要根据语言的现实来确定。任何先验确定规则长什么样的行为,都是不足取的。在最广泛的意义上,不仅生成语法的规则是语言规则,统计模型、转移概率、词性标注,也都是语言规则。

 

from http://blog.sina.com.cn/s/blog_729574a0010134bq.html

 

【李白103: 爱冰 恋冰 不见冰,思过 想过 没有过】

李:
爱冰 恋冰 不见冰”,为群主求下对。

毛:
吃了 喝了 不玩了。

李:
思过 想过 没有过。”

不错,parsing 中规中矩,可下对就有些乱套了:

为什么乱套?“过” 是名词还是时态助词?

(1) 自左向右 propagate 的话,“思过” 是词典绑架来的,所以“过” 是名词(“过错”),根据著名的 one sense per discourse 的NLP认知的经验法则,那就都是名词了,意思是:

闭门思过,我思啊想啊,狠斗私字一闪念,可我就是没有过错呀

2. 自右向左 propagate 来实现 one sense per discourse,则是助词:

头脑里面是想过的,但实际上没有过
(想过啥 没有过啥,大家见仁见智,总之是见不得光的事儿)

有思想,无行动。不以思想入罪,就是无罪。

3. 如果贯彻原则无论西东,咱们可以来个简单的 majority vote,助词“过” 两票,名词“过”一票,助词胜。语义计算同2.

白:
@wei 同样的逻辑,我30多年前根张桂平讨论的时候已经在用了:“没有花香,没有树高,我是一棵无人知道的小草。”第一小句,“花香”词典捆绑为名词,捎带激活“没有”的“不存在”义项,整个小句意为“不存在花的香味”。第二小句,“没有”依惯性继续“不存在”义项,激活“树高”的名词义项,但此名词义项是一个实体度量,与“不存在”义项不相谐,转而激活“比不上”义项,相应地对“树高”进行拆解,得到一个主谓结构,整个小句意为“比不上树那么高”。但由于前两小句有排比对举之嫌疑,于是引导到第一小句翻盘,“没有”的“比不上”义项占了上风,拐带着“花香”的“主谓结构”义项也跟着占了上风,第一小句语义改为“比不上花那么香”。一二小句在这种排比解释下,都缺逻辑主语之坑未填。到了“我是一棵无人知道的小草”则谜底揭晓:与“花”“树”对举的“小草”之代表“我”,才是填前两个小句中逻辑主语坑的不二选择。

用时下流行的话说,“树高“的名词义项是“没有”的“不存在”义项的猪队友。“小草”是两个“没有”的“比不上”义项的“神助攻”。

吕:
@白硕  这个例子牛叉…..

李:

例子牛叉,parsing 就牛不起来了:神助攻,不容易啊。

道理上,“神助攻”的实现可以通过休眠唤醒(【李白100:Parsing 的休眠唤醒机制】)。唤醒的种子和条件差不多已经具备:(i)“花香” 从词典来的微结构是 mn(修饰)sv(主谓)同形,sv被休眠;(ii)“没有树高”的比较级解析已经完美(“树高”的逻辑sv呼之即出);(iii)平行结构的形式痕迹很清晰(字数相同,动词相同)。

可“我是一棵无人知道的小草”,还是先对付鸡零狗碎的 daily chore,高大上的神功且候着,让“休眠”飞一会儿。

 

【相关】

【李白100:Parsing 的休眠唤醒机制】

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

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

【一日一parsing:休眠唤醒的好例子】

【NLP随笔:词法内部结构休眠,句法可以唤醒】

【李白91:休眠唤醒需要打离婚证】

《一日一析系列》

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

《朝华午拾》总目录

 

【一日一析:成语泛化,“1234应犹在,只是56改”】

白老师在他的NLP语义计算群转了一个让人喷饭的神翻译,如此之神(原文的谐音而不是语义保留下来),可以认定是人工的调侃段子,而不是“神经的翻译(NMT)”:神经再深度,还不可能如此之疯,疯得如此机巧。

马老师说,“端到端的(语音输入)翻译有可能性,不过应该是人翻译的”。但那要把两种语言混杂的情况考虑进去,“you cannot” 的英译汉状态 在遇到不可解片段时(beyond 语言模型的某个 thresholds),动态调整到反向的 mei more tai 的汉译英状态。这一直是MT的一个痛点,在同声传译场景更是如此。我们这些中文中喜欢夹杂英语单词的用户,也常常把MT弄晕,错得离谱。但注意到他们有做这方面的努力,如果汉语夹杂特别常见的英文词,如 ok,yes,等,有些系统已经可以对付。

As usual,“parse parse see see”:你将来可能会赚更多的钱,但你没茅台

两个分句是转折(BUT: contrast)的关系。显然是提醒家有珍藏的老板们如虎总,要好好珍惜茅台啊:票子会跑风,而茅台越久越值

 

这仍然是一个带转折的复句。其中的看点之一是“越久越值”,就是不久前提到的“成语泛化”(【从博鳌机器同传“一带一路”的翻译笑话说起】):越A1越A2。可见,成语泛化就是在固定语素字符串的成语用法里面有合适的变量来应对成语的活用,因此成语不再是单纯的词典和记忆问题,而是参杂了泛化的成分。以前提过,成语泛化在中文并不鲜见,其典型案例是:“1234应犹在,只是56改”:

由于汉语的音节特性和汉字语素与音节一一对应的特性,成语泛化的一个根本约束是字数(或音节数),甚过对变量词类或子类的约束,否则读起来就不像个成语。受众如果不能联想到一个特定的成语,说者也就失去了“活用”的妙趣和幽默。下面是 1234(四个音节) 和 56(两个音节) 这两个变量的自然活用案例:

可怜玉砌应犹在,只是天地改
昔日桃花应犹在,只是人面改

再举一些成语活用的解析案例:

(1) 无巧不成书 –> 无x不成y: 广州人无鸡不成宴吖

(2) 不V不知道 / 一V吓一跳: 真是不买不知道,1买吓一跳       

(3) n [animal] m [animal] 之力: 五虎六狮之力   

(5) 不费 vn 之力: 不费眨眼之力

 

成语泛化,是不为也,非不能也!

 

【Parsing 标签】

1 词类:名 N; 形 A; 动 V; 副 RB; 介词 P; 冠词 DT; 叹词 UH; 标点 Punc;

2 短语:名词短语 NP; 动词短语 VP; 形容词短语 AP; 介词短语 PP;
名词组 NG; 动词组 VG; 实体专名 NE; 数据实体 DE;
谓语 Pred; 分句 CL;

3 句法:头词 H;主 S; 宾 O; 定 M; 状 R; 补 B;
接续 NX; 并列 CN; 转折 BUT;
主语从句 sCL;宾语从句 oCL; 定语从句 mCL;
条件状语 ifR; 程度状语 veryR;
功能成分 Z; 其他虚词 X

 

 

【相关】

从博鳌机器同传“一带一路”的翻译笑话说起

NLP 历史上最大的媒体误导:成语难倒了电脑

立委随笔:成语从来不是问题

《一日一析系列》

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

《朝华午拾》总目录

 

【AI泥沙龙笔记:热议周教授提出的深度突破的三大条件】

李:
上周,周志华教授作为神秘AI大咖嘉宾,请到京东的AI峰会做了个主题演讲。有意思的是他讲到的三点。他的讲演主题是“满足这三大条件,可以考虑不用深度神经网络”: 1. 有逐层的处理;2 有特征的内部变化; 3. 有足够的模型复杂度。

这就有意思了。我们符号派所说的深度解析(deep parsing)和主流当红的深度学习(deep learning),在这三点上,是英雄所见还是殊途同归?不知道这种“巧合”是不是有些牵强,或者是非主流丑小鸭潜意识对主流白天鹅的“攀附”?总之,fellows大满贯的周教授的这个总结不仅字字珠玑,深入本质,而且非常受用。他是说深度神经的突破,根本原因是由于上面三条。所以,反过来论证说,既然如此,如果有了这三条,其他模型未尝不能突破,或者其他模型可以匹敌或弥补深度神经。

陈:
有了dl,谁还费力想其它的

李:
周教授就是“费力”想其他的人。他指出了深度神经的缺陷:1 调参的困扰;2. 可重复性差;3. 模型复杂度不能随数据自动适应;4. 理论分析难;5. 黑箱;6. 依赖海量标注。由于这些问题的存在,并不是每一个AI任务都合适用深度神经。对于同一个任务,也不是每一个AI团队都可以重复AI大咖的成绩。

毛:
谁说每个AI任务都合适用深度神经了?DL只是补上缺失的一环。

李:
没人明说,无数人这么 assume

毛:
应该说,无数人这么 misunderstand。

李:
哈,我称之为“迷思”:misconception

毛:
反正是mis-something

李:
从我的导师辈就开始的无数探索和实践,最后得出了自然语言的解析和理解必须多层进行的结论。虽然这与教科书,与乔姆斯基相悖。

陈:
小孩好像从不这么理解

李:
以前论过的:鉴于自然语言的结构复杂性,文句的深度解析和理解很难在单层的系统一蹴而就,自浅而深的多层管式系统于是成为一个很有吸引力的策略。多年的实践表明,多层系统有利于模块化开发和维护,为深度解析的工程化和实用化开辟了道路。但多层系统面临一个巨大的挑战,这个挑战来自于语言中的并不鲜见的相互依赖的歧义现象。

多层了以后,很多不可解的问题,变得可解了。论解析的深度和应对复杂现象和结构能力,多层系统与单层系统完全不可同日而语。30多年前,我的导师做的解析系统是四、五层。但是多层的思路已经萌芽,而且方法论得到确认。最近20多年,我自己的摸索和尝试,发现大约是 50-100 层这个区间比较从容和自如。这不是因为语言中表现出来的递归结构需要这么多层,如果只是为了对付真实语言的递归,五六层也足够了。多层的必要性为的是要有足够的厚度及其动态的中间表达,去容纳从词法分析、实体识别、(嵌套)短语分析、单句分析、复句分析乃至跨句分析(篇章分析)以及从形式分析、语义分析到语用分析的全谱。

当然,这么多层能够顺利推展,前提是要找到解决多层系统面临的挑战的有效方法,即:对相互依赖现象的化解之策。如何在多层系统中确保“负负得正”而不是“错误放大”(error propagation)(【立委科普:管式系统是错误放大还是负负得正?】 )?如何应对 nondeterministic 结果的多层组合爆炸?如果采用 deterministic 的结果,多层的相互依赖陷阱如何规避?我们论过的“休眠唤醒”的创新就是其中一个对策(【立委科普:结构歧义的休眠唤醒演义】)。

毛:
乔老爷没说不能多层啊。递归与多层不就是一回事?

李:
他的递归是在一层里面 parse 的,CFG chart parsing 是教科书里面的文法学派的经典算法。

毛:
这只是形式和实质的区别。我觉得只是深度优先与宽度优先的区别。

李:
他鼓吹 CFG 的递归特性,正是因为他不懂得或不屑认真对待多层叠加的道路。

后者理论上的确不够漂亮。多少有些“凑”的意思,太多工程的味道,模块化的味道,补丁摞补丁的味道,这不符合乔老爷的口味,但实践中比他的递归论要强得多。CFG 能做到的,叠加和拓展了的 FSAs 全部可以做到,但是 叠加的 FSAs 所能达到的深度和能力,CFG 却望尘莫及。递归算个啥事儿嘛,不过是在多层里n次循环调用而已。多层所解决的问题比递归结构的挑战要广得多,包括困扰parsing界很久的“伪歧义”问题(【李白雷梅59:自动句法分析中的伪歧义泥潭】)。

毛:
我倒也是更赞同你说的 FSA,但是认为本质上没有什么不同,不同的只是方法。

李:
这是第一个英雄所见,或殊途同归。深度神经现在几百层了,deep parsing 也 50-100 层了。不是不能超过 100 层,而是确实没有这个必要。迄今还没有发现语言现象复杂到需要超过百层的符号逻辑。

毛:
这两个多层,性质是不一样的。

李:
所以我说这种比对可能“牵强”。但哲学上有诸多相通之处,的确二者都是很 deep 的,有厚度。

那边叫隐藏层,反正我是搞不懂。这边倒是小葱拌豆腐,一清二白的,不说老妪能解吧,但这些个符号逻辑的层次,至少可以对语言学家,领域专家,还有AI哲学家像毛老和群主,还有AI工程大咖利人,可以对你们这些“老人”讲清楚的。这就是我说的,所谓符号逻辑,就是人类自己跟自己玩一个游戏,其中的每一个步骤都是透明的,可解释的。符号派的旗号可以是“模拟”人脑的思维逻辑,其实这个旗号也就是个旗号而已。模拟不摸拟,这一点已经不重要了,关键是效果。何况鬼知道人的语言认知是不是这么乏味、死板、机械,拼拼凑凑,还不如玩家家呢(如果人类思维真的是符号派所模型的那个样子,其实感觉人类蛮可怜的)。

毛:
大多数人的思维可能还没有这么复杂。

李:
但这种游戏般的模拟,在实践中的好处是显然的,它利于开发(自己能跟自己玩的那些游戏规则有助于步骤的梳理,以便各个击破),容易维护和debug(比较容易知道是哪一层的错误,或哪几层有修复的机会及其各自的利弊).

马:
越是层次的思维越是更容易模拟,符号派模拟的是高层次的。

毛:
对,就是缺了低层次这一环,才需要由DL来补上。

郭:
@毛德操,周志华 这次演讲,还特别强调了 深度之于广度的核心差异,那就是他的第二条:每层都是在不同特征维度上。

他从两个角度阐明这点。一,至少在1989年,大家就已经知道,在无限逼近任意连续可微函数这件事上,只要宽度足够,单隐含层就好。多层貌似并非必要,或者说多层并没有提高“表达力”。但是,单层系统,从来没能达到同规模多层系统的学习和泛化能力。

二,多层,就可以有结构。譬如resnet,可以在不同层面选取综合不同维度的特征,可以有多信息流。这条,貌似隐含地说了,人的干预还是重要的。

李:
是的,周教授强调的第二点是特征逐层更新。深度学习之前的系统是在同一个静态特征集上work的,包括最像符号逻辑的决策树模型。而深度之所以 deep,之所以有效和powerful,是与特征的变化更新分不开的,这个道理不难理解。深度的系统不可能在静态的特征上发力,或者说,特征静态也就没有深度的必要了。深度系统是一个接力赛的过程,是一浪推一浪的。这一点在我们的实践中是预设的,当成不言而喻的公理。

我们的深度解析,起点就是词典特征和形态特征,随着从浅层到深层的逐层推进,每一步处理都是在更新特征:根据各种角度的上下文条件,不断增加新特征,消除过时的旧特征,或细化已有的特征。后面一层层就这样在越来越优化的特征上,逐步取得对于语言的结构解析和理解。

毛:
深度优先与广度优先,没有绝对的好坏或强弱,要看具体的应用。在NLP中也许是广度优先好一些。乔姆斯基讲的是专门针对 CFG 的,你那个实际上已经越出了这个范畴。

李:
特征是动态的,反映了搜素空间不断缩小,是真理不断逼近的认知过程。很难想象一个系统在一个静态特征的平面可以达到对于复杂语言现象的深度解析。

马:
在某些特殊情况下,已经证明层数少,需要指数级的增加神经元才可以达到层数深的效果。而神经元的增加又加大了计算复杂性,对数据量的要求更大。

毛:
如果上下文相关,那么分层恐怕确实更灵活一些。

李:
这就是我说的乔老爷把“power”这个日常用词术语化以后,实际上给人带来了巨大的误导:他的更 “powerful” 的 递归 CFG 比二等公民的 less powerful 的 FSA 所多出来的 “power” 不过就是在单层系统里面可以处理一些递归结构而已。而把一批 FSAs 一叠加,其 power 立马超越 CFG。

总之,特征不断更新是深度解析的题中应有之义。而这一点又恰好与深度神经不谋而合,殊途同归了。

周教授眼毒啊。

教授的第三点,关于深度系统需要足够的模型复杂度,我不大有把握可以做一个合适的比对。直觉上,由于分而治之由浅入深的多层系统对于组合爆炸的天然应对能力,如果我们假想我们有一种超自然的能力能够把一个 50 层的解析系统,完全碾压到一个平面,那将是一个多大的 network,遮天蔽日,大到难以想象!

马:
符号表示的复杂性可以说是无穷大吧?模型的复杂度指表达能力?太复杂又容易过拟合

李:
周说的是,因为不知道多复杂合适,所以得先弄得很复杂,然后再降低复杂度。他把这个说成是深度神经的一个缺陷。

郭:
周志华特别强调,他的“复杂度”,不是指“表达力”(“单层多层同样的表达力,但多层可以复杂的多”)。

他没给定义,但举了resnet作为例子,并且明确提了“特征信息流的数目”,还说了:多层,但特征信息流动单一的,也没有复杂度。

回顾周说的这三条,李维的 deep parser 条条符合!

有逐层的处理 — 李维的,少说也有50层吧!

有特征的内部变化 — 李维的,每层都在不同的维度/颗粒度/角度,用不同的特征/属性,产生新的特征/属性

有足够的模型复杂度 — 李维的,也有明显的“复杂度”(周志华强调,“复杂度”,不是指“表达力”。过度的“表达力”,往往是负面的)。李维的,不仅有传统的 linguistics motivated 概念/特征/属性,也广泛采用“大数据”(基于统计的)。最近也开始利用“AI”(基于分布式表示的)。

还有一点,周志华多次强调(我认为是作为“三条件”必然推论的),“深度学习,关键是深度,但不一定要 ‘端到端’ ”。他更强调(至少是我的理解),为了端到端,一味追求可微可导,是本末倒置。深度学习,中间有 不可微不可导 的特征/存储,应该是允许甚至是必要的。

对这一点,李维的“休眠唤醒”,大概也可算是 remotely related.

白:
拉倒。带前后条件的FSA早已不是纯种的FSA,只是拿FSA说事儿而已,真实的能力早已超过FSA几条街。

毛:
这就对了。其实,自然语言哪里是 CFG 可以套得上的。

李:
我其实不想拿 FSA 或 FSA++ 说事儿,听上去就那么低端小气不上档次。可总得有个名儿吧,白老师帮助起个名字?教给实习生的时候,我说你熟悉 regex 吧,这就好比是个大号的 regex,可实习生一上手 说不对呀 这比 regex 大太多了。这套 formalism 光 specs,已经厚厚一摞了,的确太超过。要害是剔除了没有线性算法的递归能力。

毛:
记得白老师提过毛毛虫的说法,我还说了句“毛毛虫的长度大于CFG的直径”。(【白硕– 穿越乔家大院寻找“毛毛虫”】

白:
有cat,有subcat,还拿这些东西的逻辑组合构成前后条件,还有优先级。有相谐性,有远距离雷达,有实例化程度不等带来的优先级设定。哪个FSA有这么全套的装备?

陈:
基于规则,遇到长句子一般必死

李:
非规则的 找个不死的瞧瞧。再看看规则的怎么个死法。反正是死。看谁死得优雅。你出一组长句子,找一个学习的 parser,然后咱们可以比较一下死的形态。

白:
先说任务是啥,再说死活。

李:
我是说利人的腔调,极具代表性,那种典型的“成见/偏见”(【W. Li & T. Tang: 主流的傲慢与偏见:规则系统与机器学习】)。

马:
人家DL端到端,不做parser。现在有人做从语音直接到文本的翻译,不过效果还不行,主要可能是数据问题

李:
苹果梨子如何比较死活。

毛:
乔老爷的CFG不应该算入AI,那只是形式语言的解析。

陈:
确实都死。。。但一个死了也没法解释,不要解释。另一个就得思考哪个规则出问题了

毛:
人也好不到哪里,只不过人不死,只是懵了。

李:
😄 懵了就是人造死,artificial death

马:
规则的好处是,你说什么不行?我马上可以加一个规则。这就是我前面说的复杂性无穷。😄 即表达能力无穷

白:
假设任务是从文本抽取一堆关系,放进知识图谱。

假设任务是根据用户反馈,把错的对话改对,同时对的对话不错。

陈:
抽取这个很重要,很多理解的问题其实是抽取问题。比如,阅读问答题

毛:
我还是相信多层符号会赢。

李:
从文本抽取关系 谁更行,需要假设同等资源的投入才好比。我以前一直坚信多层符号,现在有些犹疑了,主要是标注人工太便宜了。到了标注车间,简直就是回到了卓别林的《摩登时代》,生产线上的标注“白领”面对源源不断的数据,马不停蹄地标啊标啊,那真不是人干的活儿啊,重复、单调、乏味,没看见智能,只看见人工,甭管数据有多冗余和灰色。这就是当今主流“人工智能”的依托,让人唏嘘。当然,另一方面看,这是当今AI在取代了很多人工岗位后,难得地给社会创造就业机会呢,将功补过,多多益善,管他什么工作,凡是创造就业机会的,一律应予鼓励。

毛:
@wei 这不正好是训练条件反射吗

陈:
反正智能的事都让机器去做了,人就只好做些低级如标注的活了

白:
问题是啥叫符号?基于字节?字符?基于词已经是符号了吧。是不是要退到茹毛饮血,连词也不分,才算非符号。否则都是站在符号肩膀上

毛:
我认为可以这样来类比: 一个社会经验丰富、老江湖的文盲,跟一个教授,谁能理解更多的语句。我想,除那些江湖切口和黑话,还有些需要“锣鼓听声,说话听音”的暗示以外,一定是教授能理解更多的语句。而且,即使是江湖切口黑话,也能慢慢加到教授的知识库中。

李:
都是站在符号肩膀上。然而,符号系统的实质不是符号,而是显性的 可解释的符号逻辑。就是那套自己跟自己玩 系统内部能够自圆其说 有过程 有因果链条的针对符号及其动态特征做处理的算法。相对于建立在符号和特征基础上的不可解释的学习系统,很多时候这些系统被归结为一个分类问题,就是用原子化的类别符号作为语言落地的端对端目标。如果一个落地场景需要10个分类,只要定义清晰界限相对分明,你就找一批大学生甚至 crowd source 给一批在家的家庭妇女标注好了,一个类标它百万千万,然后深度训练。要是需要100个分类,也可以这么办,虽然标注的组织工作和质量控制要艰难得多,好在大唐最不缺的就是人工。可是,如果落地场景需要一千个、一万个不同侧面的分类,标注和学习的路线就难以为继了。

白:
结果是一个集合,已经比较复杂了。结果是关系集合,又更加复杂。让人类标注,好不到哪儿去。标注一个关系集合,等价于标注一个结构。

 

【相关】

周志华:满足这三大条件,可以考虑不用深度神经网络

周志华最新演讲:深度学习为什么深?

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

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

【白硕– 穿越乔家大院寻找“毛毛虫”】

【科研笔记:NLP “毛毛虫” 笔记,从一维到二维】

【泥沙龙笔记:NLP 专门语言是规则系统的斧头】

【新智元:理论家的围墙和工程师的私货】

乔姆斯基批判

泥沙龙笔记:再聊乔老爷的递归陷阱

泥沙龙笔记:骨灰级砖家一席谈,真伪结构歧义的对策(2/2) 

《自然语言是递归的么?》

语言创造简史

【立委科普:管式系统是错误放大还是负负得正?】

【李白雷梅59:自动句法分析中的伪歧义泥潭】

W. Li & T. Tang: 主流的傲慢与偏见:规则系统与机器学习

《一日一析系列》

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

《朝华午拾》总目录

【一日一析:“对叙军事打击是一次性行为”】

“对叙军事打击是一次性行为”

对不起,不是对“性行为”或成人话题有偏好,可是这两天老在想这个案例,疑似语言学走火入魔。微信群最近疯传的这个视频,字幕如上,属于 #中文理解太难了# 一类歧义案例,可读出来却不是,那位女播音员低下头,读起来是这样的:“对叙军事打击是一次性…性行为”。

估计是她没有预先看一遍稿子,结果突然看到这三个字,有点不知所措,结巴了。我们 “parse parse see see”:

如果结巴或停顿不用省略号记录的话,就是这样的:

这里面牵涉到的语言学和计算语言学在哪里呢?有什么可琢磨的点?

首先,文句是歧义的(因此可以休眠唤醒:前两天论过,唤醒的时候,把“一次-性”中的后缀“性”剪枝,改嫁给“行为”做定语,只是一个结构微调整,整个NP大局不变,比起VP/NP歧义的cases如“烤红薯”的休眠唤醒要简单一些),到了播音的时候,因为增加了一个“性”而变得没有歧义了。

更有意思的是,为什么没有歧义了,听众却仍然可以排除听到的结构,反而还原为另一种结构解读呢?

一种说法是,听众有常识,说“军事打击”是“性行为”,违背常识。这样解释自然不错。

另一种说法是,语音的音调和重音这些文字通常不记载的痕迹表明播音员口误了,慌张了,结巴了,因此我们还原到另一个结构的解读。如果是正常的阅读,除了两个性之间的停顿外,“一次性性行为” 中第一个“性”是轻声,重音在 “(一)次” 上,第二个“性”则是重音,可是播音员的第二个“性”读出来反而含混了。由此可见,两个 x 很可能是一个 x 的重复或结巴,因此人脑 parse 的时候是利用了 reduplication 机制处理了这个重叠,从而把原结构的歧义凸显出来,为另一种解读留下了空间。

在这个话题的延长线上,我们看某贪官被双规后对其权色交易的辩解:“这次性行为是一次性行为”。

改成“第一次”又如何呢?

有问,这“第一次”词典化了,如果是“第102次”看系统还能如此解析吗?

“这次” 、“第一次”和 “一次” 有啥不同?为什么决定了其后三个字的不同解读?parser 里面到底有什么神机妙算在内可以做出这种区分?

先不说模拟人脑的 parser 如何实现的,说一说人脑怎么 parse 的。人脑大概用的是排除法。另一个结构的解读呈现下列形态:这次 x 是一次 x,这是一句没有信息量的语句(this x is an x)。因为有定(the)或无定(a)的量词结构是很虚的东西,所以上句结构从实体概念看就是: x ISA x,逻辑上的同义重复,基本没有信息。有信息的 ISA 句应该有一个逻辑上的区分量 y(百科全书中概念定义的典型句式):x ISA y x’ (x belongs to x’), 譬如:”贪官就是违法乱纪的官员”,其中 “违法乱纪” 就是 y.

同理,“一次性” 也是 y(“第一次”也是y), 人脑于是排除了无信息量的结构解读“一次-性行为”,大家不约而同的采纳了具有信息量的常规 ISA句式的解读 “一次性-行为”,虽然理论上的结构歧义依然存在。至于,如何让电脑实现人类的歧义辨识语言认知这一套,那是另一个章回了,先打住。有没有下回分解也说不定了,看彼时的情绪吧。兴起而码字,兴尽而收笔,这是自媒体的好处不是?

 

【Parsing 标签】

1 词类:V = Verb; N = Noun; A = Adjective; RB = Adverb;
DT = Determiner; UH = Interjection; punc = punctuation;

2 短语:VP = Verb Phrase; AP = Adjective Phrase; NP = Noun Phrase;
VG = Verb Group; NG = Noun Group; NE = Named Entity; DE = Data Entity;
Pred = Predicate; CL = Clause;

3 句法:H = Head; O = Object; S = Subject;M = Modifier; R = Adverbial;
(veryR = Intensifier-Adverbial); NX = Next; CN = Conjoin;
sCL = Subject Clause;oCL = Object Clause; mCL = Modifier/Relative Clause;
Z = Functional; X = Optional Function

 

 

【相关】

《一日一析系列》

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

《朝华午拾》总目录

【一日一析:中文解析中的动名短语歧义】

老友让 parse 两句让人搞笑的歧义句。前一阵子微信里流传过的。那就试试:

性教育先进,吾党理应当仁不让。还有一句啥来着?

承诺什么?要是承诺性行为,对不起,不允许,因为你有钱。如果换成:”少林寺众僧禁止性行为承诺书”,承诺的应该是 “禁止性行为” 哈。俗人的社会,一种是有钱(譬如群主),一种是有权或有势(譬如正遭网民痛殴的语言学家沈阳),这两种人的性行为需要管束,否则权色交易,钱色交易就会猖獗。

“禁止 性行为” vs “禁止性 行为”,如何知道呢?

不知道,咱就选个标配结构,同时留了个后门:【禁止V+性+N行为】 暂时定为定中(定语修饰名词中心语)的结构 NG,做承诺书的修饰语。但里面留了种子,等以后见机翻案,可“休眠唤醒”其作为 VP 的结构语义。一旦翻案,V 变成为 VP 的 head (H),“行为” 自然成为其宾语(O),中间的那个“性”可以修剪,从“禁止”的后缀,改嫁为O的定语。这一套符号逻辑形式上是走得通的,就看实际落地的时候觉得值不值得做了。

中文句法的诡异在于,这种VP(动宾结构的动词短语)和NG(名词词组)同形歧义现象相当普遍。英语也有动词名词的同形歧义现象(study; works; etc)  但是到了短语级别,这种歧义就消失了。中文不然,典型的例子还有:“烤红薯”。到底是【烤…】 (VP) 还是 【…红薯】(NG)?

“我吃烤红薯”,“吃”的是“红薯”。“我想烤红薯”,“想”的是“烤”。

 

可是,“我喜欢烤红薯”呢?到底是喜欢“烤”,还是喜欢“红薯”,还是二者都喜欢,还是喜欢其中之一?所以,休眠唤醒,也有永远换不醒的,到死也翻不了案。这也没啥,人类听和说,一多半的时候,都是模模糊糊地说,一知半解地听。这实际上是语言交流的常态。也不必苛求机器比人还清晰了。

【Parsing 标签】

1 词类:V = Verb; N = Noun; A = Adjective; RB = Adverb;
DT = Determiner; UH = Interjection; punc = punctuation;

2 短语:VP = Verb Phrase; AP = Adjective Phrase; NP = Noun Phrase;
VG = Verb Group; NG = Noun Group; NE = Named Entity; DE = Data Entity;
Pred = Predicate; CL = Clause;

3 句法:H = Head; O = Object; S = Subject;M = Modifier; R = Adverbial;
(veryR = Intensifier-Adverbial); NX = Next; CN = Conjoin;
sCL = Subject Clause;oCL = Object Clause; mCL = Modifier/Relative Clause;
Z = Functional; X = Optional Function

 

 

【相关】

《一日一析系列》

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

《朝华午拾》总目录

 

【李白101: 话题在逻辑上是个什么东东?】

 

李:
“你们多少钱一条毛毯”

“你们”是主语,or 话题?即便说是“话题”,逻辑语义算个啥?(“毛毯”的【所有(者)】?):

“蓝色的你没有货吗?”

类似的,“蓝色的” 逻辑语义是“货”的【所有】吗?

但上句与下句还不同:

“你没有蓝色的货吗”

后者是全称否定:在你所有的货品中,你缺少蓝色的(子集)。前者是:在这种(你知我知)货品中,你缺少蓝色的款式。

看样子,句首的所谓话题,对于结构语义解析中的 scope 解读,有说法。话题呢,就是先画个圈圈,后面的 argument structure 里面的 args 跳不出这个圈圈。

回到“”你们多少钱一条毛毯”,也有说是省略了谓词:

“你们多少钱一条毛毯卖的?”
“你们多少钱一条毛毯买的?”

前者是 卖家,“毛毯” 的曾经所有者。后者是 买家,“毛毯”的新所有者。默认是卖家,因为这个应该是交易之前的询问。

白:
表“运载”类的动词,介于“给予”类和“取得”类之间:“你们多少钱一斤搬的?”当中,“你们”既可以是出钱的,也可以是干活的。所以,概括来说话题就是“后面一坨当中的未饱和坑”。如果未饱和坑多于一个,其中满足相谐性条件的也多于一个,满足对某些小类的动词可以有倾向性标配,对另外一些小类的动词无倾向性标配。不光领属可以,领属的领属也可以:“王冕昨天父亲腰扭伤了”,“我昨天拉了三趟煤。” 可能我是运输工人、运输老板或者运输客户。或者我自力更生自运自用。

所以,话题是一个纯形式的角色,它对应的逻辑角色是不确定的,完全取决于后面一坨空出来的坑的逻辑属性。如果空出来的坑也是不确定的,那就必然产生歧义。

【Parsing 标签】

1 词类:V = Verb; N = Noun; A = Adjective; RB = Adverb;
DT = Determiner; UH = Interjection; punc = punctuation;

2 短语:VP = Verb Phrase; AP = Adjective Phrase; NP = Noun Phrase;
VG = Verb Group; NG = Noun Group; NE = Named Entity; DE = Data Entity;
Pred = Predicate; CL = Clause;

3 句法:H = Head; O = Object; S = Subject;M = Modifier; R = Adverbial;
(veryR = Intensifier-Adverbial); NX = Next; CN = Conjoin;
sCL = Subject Clause;oCL = Object Clause; mCL = Modifier/Relative Clause;
Z = Functional; X = Optional Function

 

 

【相关】

《一日一析系列》

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

《朝华午拾》总目录

 

【李白102: 标题就是个大NP,痛点在谓词结构的安放】

白:
“中国证监会编造、传播虚假信息行政处罚案例综述”

李:

解析起来有几个 catches:

1. “案例” 和 “综述” 以及二者的组合“案例综述”,都是那个“另类”名词,它们不是前面的动词的宾语,而是要求一个动词性的前修饰语,逻辑语义是【内容】或【同位】。上面的 parse 不幸中了套。

2. “编造”/“传播” 与 “信息” 的动宾搭配:成为 VP

3. 所谓【修饰语的组合爆炸挑战】:这是一个很长的标题类NP,麻烦的是里面还有两个动词性的结构(“编造、传播……“,”行政处罚”)。

4. 两个动词结构的关系:VP(负面)【原因状语 ?】+ “行政处罚”

白:
“行政处罚”和与之固定搭配的行政处罚主体,有统计显著性。

李:
5. 居首的”中国证监会“到底是整个 NP 的修饰语,还是 VP 的主语?换句话说,这个动词性结构在做修饰语之前,左边界是不清的,到底是 VP 还是 CL(子句)做修饰语?

白:
这个跟“这本书出版日期”一样。

李:
最大的问题是: VP(负面)+ “行政处罚”,这种个性关系的总结,实现起来感觉心里不踏实。

白:
但是:NP(有权主体)+VP(负面)+“行政处罚”又不相同。

李:
如果再考虑前面的 NP,那就更稀疏了。

即便一切都处理妥当,预备各就各位了,这种案例的诡异在于头重脚轻:“VP+行政处罚” 这个头 应该是 “案例综述” 这个脚的同位修饰语。头重脚轻在汉语的修饰语通常都是用“的”来平衡的,不用“的”修饰语又超长就很游离来(outlier),模型起来极易弄巧成拙。

得,动宾搭配又跑了。弄巧成拙和按下葫芦起了瓢这种事儿 主要说的就是这种 outlier 案例的过度迁就(类似于学习系统的overfitting)。

打住,到此为止。要抑制钻牛角的好奇心。

白:
此标题的文章作者已经撤回。被我指出歧义觉得不妥了。

 

【Parsing 标签】

1 词类:V = Verb; N = Noun; A = Adjective; RB = Adverb;
DT = Determiner; UH = Interjection; punc = punctuation;

2 短语:VP = Verb Phrase; AP = Adjective Phrase; NP = Noun Phrase;
VG = Verb Group; NG = Noun Group; NE = Named Entity; DE = Data Entity;
Pred = Predicate; CL = Clause;

3 句法:H = Head; O = Object; S = Subject;M = Modifier; R = Adverbial;
(veryR = Intensifier-Adverbial); NX = Next; CN = Conjoin;
sCL = Subject Clause;oCL = Object Clause; mCL = Modifier/Relative Clause;
Z = Functional; X = Optional Function

 

 

【相关】

《一日一析系列》

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

《朝华午拾》总目录

 

《一日一析系列》

【立委按】汇集的《一日一析》,乃是日常遭遇的中文有趣文句,作为中文自动解析(deep parsing)的“压力”测试。兴之所至,对暗含的解构机巧,或点入讲解,或借题发挥。不求完整,但求启迪。谈资之余,或可管中窥豹,集腋成裘也。

 

【一日一析:“爱情这种事……”】

【一日一parsing:“举报毒品违法 犯罪活动有奖”】

【一日一parsing:修饰语的组合爆炸挑战】

【一日一parsing:parser 貌似发疯了】

【一日一parsing:汉语单音节动词的语义分析很难缠】

【一日一parsing:”钱是没有问题”】

【一日一parsing:从“见面”的subcat谈起】

【一日一parsing:#自然语言理解太难了# 吗?】

【一日一parsing:休眠唤醒的好例子】

【一日一parsing:NLP应用可以对parsing有所包容】

【一日一parsing:degraded text and robust parsing】

【一日一parsing,而山不加增,何苦而不平?】

【一日一parsing:中秋節談月亮和花錢】

【一日一析:“爱情这种事……”】

【一日一parsing:“爱情这种事……”】

爱情这种事 太极端 要么一生 要么陌生

精辟啊。不过,概率上很不对等,还是擦肩而过形如陌路的居多。一辈子见过多少人,一生的只有一个。

所谓缘分,就是n年修得同船渡,m年修得共枕眠: m > n > 10.

老友说:失恋也不是喝江小白的理由啊

 

【Parsing 标签】

1 词类:V = Verb; N = Noun; A = Adjective; RB = Adverb;
DT = Determiner; UH = Interjection; punc = punctuation;

2 短语:VP = Verb Phrase; AP = Adjective Phrase; NP = Noun Phrase;
VG = Verb Group; NG = Noun Group; NE = Named Entity; DE = Data Entity;
Pred = Predicate; CL = Clause;

3 句法:H = Head; O = Object; S = Subject;M = Modifier; R = Adverbial;
(veryR = Intensifier-Adverbial); NX = Next; CN = Conjoin;
sCL = Subject Clause;oCL = Object Clause; mCL = Modifier/Relative Clause;
Z = Functional; X = Optional Function

 

 

【相关】

《朝华午拾:与白衣天使擦肩而过》

《音乐心情:落雨的时节,失恋者的歌》

《一日一析系列》

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

《朝华午拾》总目录

 

 

【一日一parsing:“举报毒品违法 犯罪活动有奖”】

什么?

词类:V = Verb; N = Noun; punc = punctuation;
短语:VP = Verb Phrase; AP = Adjective Phrase; NP = Noun Phrase;
Pred = Predicate; CL = Clause;
句法:H = Head; O = Object; M = Modifier; S = Subject; SubjS = Subject Clause

都是“回车”惹的祸:

正常句子没有回车,没有逗号,空格也不会有,那就对了:

谁说标点符号可有可无,对于 parsing 无关紧要?如果是口语就是,谁说停顿语气对于语言理解不重要?

 

【相关】

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

《朝华午拾》总目录

 

【一日一parsing:修饰语的组合爆炸挑战】

中文合成词、术语命名可以很长很长,如果顾及内部的修饰关系的边界,是一种典型的结构歧义的组合爆炸。排列组合算一算,N个修饰语有多少种结构歧义?

怎么整?其实,人对于这种超长短语的理解,也基本上是糊里糊涂听,对于里面潜在的歧义无感居多。那机器去做呢,两个办法,一个是凑合大局,不拘小节,出个 deterministic 的结果。另一个办法就是穷举其中的潜在歧义,也不难,问题是穷举了以后如何是好,还是糊涂。

量子区块链AI韭菜盒子店

NG=Noun Group;  AP = Adjective Phrase; NE = Named Entity;
M/m=Modifier; H = Head; O/o=Object;
N = Noun; A = Adjective; V = Verb;

what is 量子区块链?

马氏体区块链智能韭菜盒子

马氏体?or 体区块链?马氏-style?

AI牌马氏体大数据区块链智能云韭菜盒子

智能云 or 云韭菜盒子?

AI牌马氏体大数据区块链智能云全自动去中心韭菜盒子

AI牌马氏体大数据区块链智能云全自动去中心韭菜盒子声控密钥无人店

这已经超过10个修饰语了:AI牌 / 马氏体 / 大数据 / 区块链 / 智能云 / 全自动 / 去中心 / 韭菜盒子 / 声控 / 密钥 / 无人店

“声控密钥” 感觉是直接修饰 “无人店“ 也许更合理。可现在这种结构也凑合了。好在 XP 内部的纠结,对于句子中 XPs 之间的关系基本没有影响。不过,这种超长NE或NP其实也很少出现在句子里面,通常都是做标题用。

(注:以上例句是尼沙龙人工智能群老友故意拿 buzz words 调侃清华人工智能马教授的一手好菜“生造”出来的。但这些例子反映现代汉语的语言事实,并不离谱。)

O网页链接 【一日一parsing:修饰语的组合爆炸挑战】@马少平THU @立委_米拉  @算文解字 @冯志伟文化博客 @zhazhaba @李利鹏-汇真科技 @永恒的侠少 @白硕SH ​就此谈点自己的看法:
1. 正规文档无论标题还是内容,应该不会出现这种过多个不相关的(即便相关)词罗列堆砌在一起的,既不利于传播也不利于理解。当然,有些新闻媒体,或者某些政府公文的题头内容,比文中本身内容都难理解,可能是另有用意,其实并不相信撰稿人就是真水平不及,或许让人产生印象或其他?无论文章或标题,若是总摆着一副“万层茧”的姿态话,我个人意见,人不用去看,机器更犯不着去分析,即便分析那结果也难看的很,无实用价值,就当是那样的是数据传输的一串乱码。要么,文者水平太差,此文不必去读;要么文者就是想着难为人,那我为何还耐着性子去受难呢。
2. 少数几个词组合在一起,在人们容忍范围内的,还是有一定价值的,毕竟不能要求每个人都有通文晓典,行文都能如丝滑般的顺畅。这种平素不相往来的几个词临时组团赴会,初期可以先作为一个团体来看,然后再在随后的文里看看是否离队的分子,若有,再看看是谁谁频繁结伴单游,再回头看看原来这个团的豪华标签,基本上就有所清晰理解。正所谓“不怕你们聚得紧,就看你们分开时”。若通篇没有一处是分开的,而且大块头的合成词语还挺愿意抛头露面的,且不嫌穿那么长衫而行动不便,那这八成就是专有词了,专有词,何去分析拆解它?作为一个词能从文首进,从文尾出就好,也懒得分析了。
3. 至于是凑合大局还是用穷举来罩它,既然早晚都是糊涂,那单独就句分析句就是没太多必要,别累坏俺们的不经世事的幼年机器哈。
from 微博

【相关】

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

《朝华午拾》总目录

 

 

【李白100:Parsing 的休眠唤醒机制】

尼:
十几年前给两个台办主任送过美凤光盘。

李:
主语施事是侬?

 

这是一个疑问句。

迈:
这是给中纪委举报的分析图吗?

白:
为啥“主任”没当actor?under是“两个台办”,actor是“主任”多好,不用向外借context里的“尼克”了。“台办主任”难道进词典了?N+N结构难道比缺主语还优先?

李:
没进词典,“台办+主任”是rule合成的。为啥主任要做那个actor?“给” here 是个介词,是“送”的 subcat 要求的,作为 dative,不是逻辑主语,就是双宾语句式的 human 对象,光碟才是 undergoer。

白:
说错了,“两个台办”是介宾,“光碟”不变。“主任”单拎出来,做actor。

李:
why?还只是理论上的可能性?有两个台办么?文革中的确有过两个司令部,但那是非常时代。

白:
我是好奇,为啥一个无主的选择会优于一个有主的选择。难道你是推理了没有两个台办才往后走的么?

李:
没有推理,I was kidding。合成词:台办+主任,优于被 determiner 直接修饰。汉语中合成词的构成优先于句法上的chunking;不仅汉语,这是语言学一般原则:合成词处于 morphology 和 syntax 之间。

白:
也就是说,局部的优先关系已经把别的可能性扼杀了?不把其他选择往外传?

李:
这个原则上是对的。

白:
比如“听说发文件的是台办主任吓坏了”,肯定分析不对了?

李:
这个…人理解也有歧义。
不怕献丑了:

白:
不太通

李:
的确不大通。这个 parse 是说,“是台办主任吓坏了”,“听说发文件”是一个诱因。不是完全不可能,但对里面的小词 “de” 和 “是”,parsing 有点走偏了。做这些小词,分寸很难掌握,稍不留心就过火。

白:
“去了趟台办主任更神气了”如何?没有小词了。

李:
白老师不要逼人太甚 :=)
没有小词了,但你为啥不加逗号,不加标点也罢,给个 SPACE 也好。

白:
学意识流。

李:
存心难为 parser:

wrong,as expected

白:
意料之中,构词法一上,木已成舟。

李:

see 你若规矩 便是晴天!
一个小小的 space 有那么难么?为啥意识流?ADD 了么?做系统的人都知道,没有没有软肋的。

白:
对。只是好奇。因为之前交流过能带着多种可能性往下跑的事情。

李:
只是分寸火候而已。原则上,合成词前置是合理的,好处远远大于副作用。理论上可以保留哪怕微小的其他可能性,待后处理。实践中,当断不断, 终于自乱。哪些带着往下跑,哪些当断则断,也是一个火候的掌控。PP-attachment 这类我们是往下带的。太低的模块,一路带着往下跑,瓶瓶罐罐的,非常难缠。

白:
所以,先休眠再有条件唤醒,也是一策。当然这就要允许逆行。

李:
带着往下跑本质上也是一个组合爆炸问题,除非一边往下跑,一边卸包袱。
休眠唤醒是一个好主意,对于某些现象。我也试验过,用得好是有效的。

白:
段子大都是休眠唤醒模式。

李: 譬如一个 NP,内部的关系难以全部穷尽可能性,那就保留部分关系,然后到最后,可以重新进入这个 NP,根据需要决定重建关系。在这种情形下,问题已经缩小了,重建不难。甚至 PP-attachment 也可以循此道。譬如,一律让 PP 挂最近的 XP,成为 deterministic parse,到了语用和抽取的时候,再去重建其他的 parses,这时候语用的条件进来了,先前被休眠的可能 parse 就可以复活。

白:
武断和文断的区别…… 武断是效率的保证,休眠唤醒是兜底的保证。

李:
段子的休眠唤醒说明,人的大脑认知也是先入为主的,很多时候是武断的,不过是允许反悔罢了。这种反悔有类似以前的 backtracking 的地方,但是实践中并没有那么大的 costs。

白:
看是哪种实践了

李:
因为在语用层面做反悔,基本上是已经聚焦了以后的反悔。这种聚焦最经常的方式是词驱动,因此,需要反悔重建的现象大大缩小。

白:
不同商业模式下,价值取向有差异是正常的。

李:
如果大海一样全部来反悔运动,还不如一开始就全部保留。幸运的是,绝大部分应用,语用与语法是可以分清界限的。

白:
反悔是白名单驱动,武断是标配。

李:
标配就是统计可能性大的,或者是遵循普遍原则的,譬如合成词前于句法。

白:

李:
任何原则或 heuristics 都有例外,到了例外,如果有一个反悔机制最好。

白:
给一条反悔的通道,但是慎用。

李:
与此相对应,还有一个例外排除机制,就是先堵住例外,然后做标配。这个办法比反悔更费工。只有在具有类似 Expert Lexicon 的词驱动的例外机制的时候,才好用。

白:
提醒一下,词驱动是取决于双因素的,不仅要看trigger是啥,也要看休眠的是啥。另外休眠的东东即使不参与分析,也可以自己做弥漫式联想(不同进程或线程),类似认知心理学说的阈下啥啥啥。这样trigger就可以提高命中率

李:
弥漫联想再往下就是弗洛伊德了。

白:
对。
词驱动这种“相互性”我举个例子就明白了:我家门前的小河很难过。
“难过”具有长词优势,“难/过”休眠了。但是,“过”弥漫式联想,激活了“过河”,于是开始反悔。直到“难/过”翻案成功。

李:
好例。“过河”与“洗澡”一样是分离式合成词,属于动宾结构。凡是可以词典化的单位,休眠重启不难实现。因为词驱动的可能性都是有限的,而且可能性都可以预先确定。以前提的“睡过”的歧义也是如此。

白:
trigger有外因有内因。外因就是更大整体的句法、或语义、或语用产生不匹配等,内因就是当事的成分自己或静态、或动态地展现出结合的可能性。休眠情况下,静态不可能。动态,相当于休眠的成分梦游了,在梦游中邂逅了。那个“夏洛特烦恼”,也是上下文给了“夏洛”独立成词的某种强化,回过头来唤醒了“特”作为副词的已休眠选项。或许,作为副词的“特”正在梦游。

说了半天,还不是为了尼克

李:
对了,忘了尼克究竟是不是actor了,丫保持缄默,怎么讲?贿赂完三X光碟,在一边偷着乐吗?

(i)  “这是我与领导的聊天记录”
(ii)“我与领导的聊天记录得详详细细”

两个休眠唤醒策略:

其一是,“聊天记录”做合成名词,到第二句的某个阶段,把“记录”分离出来做谓语。
其二是,“NP【我与领导的聊天】VP【记录】” 先做成句子(CL:Clause),然后,在第一句解析的某个阶段,再改造这个 CL,成为 NP,主语于是成了修饰语 M:

得字结构无动词谓语可以附着,是 trigger 休眠唤醒的契机。

NP +【得详详细细】:把 NP 内头词的潜在动词性唤醒,分离出来做谓语,非常有道理。新媳妇嫁错人家了,可以抢出来再嫁,没必要嫁狗随狗。

白:
得 向左还是向右,是一个问题

李:
虚词而已,左右无所谓,反正是敲门砖,用完了就扔(X)。

 2016-1-27 15:46 |首发 科学网—《泥沙龙笔记:parsing 的休眠反悔机制》

 

【相关】

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

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

【一日一parsing:休眠唤醒的好例子】

【NLP随笔:词法内部结构休眠,句法可以唤醒】

【李白91:休眠唤醒需要打离婚证】

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

《朝华午拾》总目录