《李白王116:句法的脑补,情报的冤家(2/2)》

李:@宋柔 老师说了不少我正想说的话 I cannot agree more,譬如:

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

句法做深做透做得细线条 -- 直到暗度陈仓碎片化引入常识语义 -- 以后,句法这个“独角戏”可以唱很远,留给纯粹需要语义、事理的休眠唤醒部分就会大量减少。如果句法模块解决了90%+的逻辑语义,语言学知识成为解析的主力,留下不到 10% 交给语言学外的其他知识,岂不多快好省。其实 甚至那个 10% 还在不断缩小中 因为在句法解析不断迭代细化的过程中,硬性约束(或硬性+非系统性的碎片化软性约束)搞定的现象越来越多,无须留给后面的语义语用模块做。留给下一步的现象,理论上是句法有意留下的,包括真歧义。当然 也可以说 殊途同归,因为上面提到的细线条句法 已经不是纯粹句法了。

POS feature 公认为句法特征,POS 下面的 subcat 通常也认为是句法,再往下是 sub-subcat 直到词汇驱动的个性规则,最后到搭配和成语,其实是句法渗透到语义的地盘了。只要句法用特征(features)这种隐性形式(而不是词序、小词、形态这些显性符号的形式),句法就为碎片化语义和常识开了一道门缝。但这里的语义带入不是系统性的。换句话说 句法约束与语义约束是一个频谱 没有一道鸿沟。但是句法为主语义为辅、句法模块先于语义模块、句法系统话语义碎片化,则是一条解析路线。争的就是路线(“路线斗争”),所做的 功/工,无论哪条路线,也都有很多相交。

特征(features)是灰色地带的标志和桥梁。既然句法 可以用 N,V,NP 这样的特征 当然也可以用细线条的 food,person-action 这样的特征。前者普遍接受为句法 后者说是语义 但形式上不过就是命名的粗细而已。看句法 hierarchy 是如何逼近语义灰色地带的:

(1) SVO 传统规则的 VP rule:V + NP --> VP

这是经典句法 漏得跟筛子似的 但可以 cover 英语和汉语的很多现象(在汉语的表现差一些)。

(2)Subcat 句型规则: Vt + NP --> VP

用到 subcat 标签 Vt 了,不再涵盖动词的全集,漏洞是弥补了一些,但仍很多例外。

(3)SVO 完整句型:NP + Vt + NP --> NP:S + VP(Vt+NP:O)

这个用到了SVO完整句型,更可靠一些了。

(4)T1 SVO T2 上下文规则,如:
句首 + (NP + Vt + NP) + 标点 --> NP:S + VP(Vt+NP:O)

这条开始用到上下文约束了,有了前后条件,句法更加精准,差不多板上钉钉了。上下文也有更复杂的情况,所以光靠 T1 T2,也不是天衣无缝:但句法可以晚上睡觉睡得踏实一些了。进一步细化条件也可以的。

(5)细线条T1 SVO T2 上下文规则:
句首 + (NP + Vt + NP) + 句末 --> NP:S + VP(Vt+NP:O)

这是铁案,纯句法完全搞定。至此 没有常识语义什么事儿了,哪怕是nonsense(“鸡吃了我”),逻辑语义也是可以解析的。

(6)暗度陈仓的碎片化语义句法规则:EAT-V + FOOD-N --> VP(V+N:O)

开始带入常识语义了。虽然没有查验更大的上下文,但因为带入的语义(相偕)弥补了长度的不足,还是相当可靠的。也可以 argue 这实际上不是句法规则 而是语义规则,但放在句法 hierarchy 的一端,与句法规则的另一端 V + NP 形式上无异 不过是符号的颗粒度、概括性不同而已。

(7)动宾搭配规则:吃 + 亏|西北风|药 --> VP(吃+N:O)

这是 rule hierarchy 细化的极端,算是句法语义规则吗?搭配这类词典与句型交叉的东西 说它是词典化的句法 没问题。里面暗藏的语义相谐和常识的印迹是非常的强烈,句法语义已经分不清了。

所谓 hierarchy 就是说 上述n层规则可以组织成为一个系统 保证细颗粒度和高精度规则具有优先权。这样的暗度陈仓又自成体系的句法 叫唱独角戏也好 叫偷梁换柱也好 总之 留给系统性常识的空间已经不多了 90%+ 现象不需要等到“纯语义”出场。

从符号逻辑的匹配和演算来看 什么是句法 什么是语义 二者区别何在呢?给一万个词做N的标签 给一千个词做 Vt 的标签,写一条符号模式 V + N --》VP(V+N:O), 全世界都同意这是句法。如果给一千个词做个 FOOD标签,给50个词做 EAT 的标签,然后照猫画虎写一条模式:EAT + FOOD --> VP(EAT+FOOD:O), 突然就变成语义/常识规则了。不就是标签的概括面大小不同吗 所有的机制手段演算方式都不变,这个模式的所有句法变式也不变:

Vt+N ==> 把+N+Vt ==> N+被+Vt
EAT+FOOD ==> 把+FOOD+EAT ==> FOOD+被+EAT

ontology 中的 taxonomy 链条也是恒定不变的:

EAT --> Vt --> V
FOOD --> N

所有的标签都是隐性形式 只要开始使用隐性形式 想不让“语义”溜进来都难。除非句法不允许隐性形式(不许给词标签 不许抽象 不许查词典),只允许用显性形式:词序+直接量(词本身和前后缀词素和形态), 否则论约束条件,句法语义的边界必然是灰色的。(但句法模块与语义模块、语用模块是可以分开的。)

白:这个分明是暗度陈仓,细线条的特征就是轻量级的语义。无后续手段的句法标签例如s标了也是糊弄,不如不标。按这个说法,伟哥90%的所谓句法在我这里都是轻量级的语义,好的坏的暂且不论。

李:退一步 只使用显性形式的句法 也就是差不多一律只使用 ngram 去枚举语言现象 是不是句法就纯粹化 不受语义侵入了呢?其实也不是 因为所谓强搭配(洗+澡)的现象 实际上就是 直接量+词序 的规则 :吃 + 亏|西北风|药 --> VP,算不算句法?里面有没有语义约束?不仅有,而且是最强的语义相谐。

白:CFG无法把“吃亏”的原有形式和被穿插、被逆序的形式联系在一起。必须使用transformation,但这样一来毛毛虫又变长了。完全可以不这么处理的。

李:以前论过语言的句法形式 说主要就是:1 词序; 2 小词(直接量); 3. 形态(词尾直接量)和其他的前后缀(直接量);4. 句法词法特征。到了 4 就跳进黄河洗不清了,因为句法词法特征与语义特征的区别 只对人类玩符号逻辑的游戏有意义 对于机制和实现都是同样的东西,每个特征就是划个圈,代表一个集合,完全可以等价地用直接量的“逻辑或”来表达,这就从隐性形式等价转回为显性形式了。最后还有 5,被有意无意漏掉: 5. 实词(直接量)。据说实词是开放集,不提倡用直接量写规则(强搭配呢,例外?)。

白:直接量聚类可以获得标签。

李:从现在的算力看 实词直接量在 ngram(譬如 n<=5) 的范围内,全部死记住其组合 根本就不是问题。这就等价于 词直接量+词序 的规则形式,算句法还是语义呢?应该还是句法 不过就是沾染了人认为具有语义味道的句法。老话说 句法的基础是形式 语义的基础是概念。一旦概念利用同质的特征来形式化表示以后 语义也是(隐性)形式了,自然可以进入形式句法。

白:这些标签叫不叫语义不是一个理论问题,而是一个习惯问题。隐性只是相对于傻瓜而言。对于具有聚类和分类功能的系统来说,被称为隐性的很多特征也都是明摆着的。

李:这是在论证句法和语义从定义上就是模糊的,没有清晰界限和鸿沟的。句法为主的路线 可以不露痕迹带入语义,而且是句法发展的自然结果。不能说 a+b 是句法 换成 x+y 就不是句法了。都是 符号+符号的位置啊。从模式的形式化或形式化的模式来看 没有任何区别。但那个深度本身是一个渐变的频谱 pos -- subcat -- subsubcat -- wordsense。而且 对于深度的归类 本质上就是符号逻辑的游戏 说白了就是一个助记符。

wang:我觉得词法、句法、语义本身概念还是很清晰的,只不过为了实现他们的分析,采用的方法很难区分界限了,感觉也没有必要区分界限,只要能解决问题就好。方法上把它们分得再清晰,不解决问题,也无意义。符号描述内容的深度,确实会触及到语义。除非,N, V,adv,adj ... 这些符号,不过这些符号 现在来说,法力不大。助记符,是一方面,这分类的限制级别,对匹配效果影响很大,粗粒度,细粒度,什么都靠它。在匹配时,不是固定的级别,弹性适应才好。过粗,泥沙混进来了,过细,则无徒了。

白:对实现来说,叫什么不重要,是什么才重要。关键是,叫句法,显得这句法神秘无比。好混饭吃。叫语义,可以有N板斧挑战你,没想好就望风而逃吧。利用人们心目中的语义其重无比、其玄无比的印象,把轻量级的语义打翻在地再踏上一万只脚:让你冒充语义!声称用了语义者,一定拖家带口,拖泥带水,不干不净而且注定hold 不住。声称用了句法者,一定清清白白、简简单单、干干净净,而且让其他拘泥于真句法者不明觉厉。

wang:同意白老师,以最终解决问题为看点。可以先不拘泥于叫法。其实现在很多技术和方法都是杂糅的,单纯清口的一道菜,很难满足客人的胃口。若扯起语义挂名的系统,很多人就会追问那种语义,什么级别的语义,,,,非时一番解释后,发现对自身系统也没什么收益。语义盘子大,要么是沾点边就马上算,要么只要没覆盖到主要点上马上,就会视为伪语义。自然语言处理系统,尤其汉语,就必须走句法语义相结合,才能走大,不必去硬性区分泾渭之界。谁占得比例多大,结合的有效果就好,至少目前来说,看不出什么黄金比例。

李:其实 这年头是相反的。句法老掉牙了 谁都不尿它。要是说常识 事理 世界知识 领域图谱,才勉强能站得住 为符号学派发点声。毕竟语义、知识听上去高大上 那边厢黑箱子里面讨论未来的时候,也还是免不了要吆喝一声要常识 才可望有个奔头,否则就该到了终结者末日了。下一个突破点在哪里,说句法太寒碜 说知识才拿得出手。印象中几个院士也在说知识,没听说人还说啥句法的。

说法/吆喝不论,加了语义约束的句法叫是句法模块,是因为它与句法的运作模式没有变化。主要目标也依然是结构化:把线性输入变为树图输出。到了下一步的语义模块,运作模式就不再是线性输入了,而是在图里面做文章了。目的的重点也改变了,结构化已经基本完成,语义模块的任务变成:1. 逻辑语义细化(句法角色映射到逻辑语义角色);2. WSD。对结构化的部分重建(休眠唤醒)也算是一个语义模块的子任务。

句法模块:string --》graph/tree 句法
语义模块:graph --》逻辑语义+WSD 语义

白:大s小s,硬s软s,这种标签对于我们的体系来说是不重要的。我们更看重一些像C-Command这样的无语言学色彩的纯数学条件,比如:两个成分结合,一个携带了残坑,另一个携带了已填坑的萝卜,二者的源头都不是当下的中心词而且相谐,此时要不要建立萝卜和残坑的二元句法关系。

“象鼻子长”,象标成大s又如何,实质是鼻子的宿主。“王冕死了父亲”,王冕标成s又如何,整个句子标成svo又如何?王冕实质是父亲的宿主,死仍是不及物的。在我们的体系里,宿主有直接而明确的体现,没主语什么事儿。“张三又吃食堂了”,就算把食堂标成o又如何?吃什么还是不知道。假装把“吃”填的满满的,没解决根本问题,等能解决根本问题的词语出现时,却没位置了。小三就是这么上位的。

“张三又吃食堂了,那么油腻的面条他也忍受得了。” 面条出来了,位置却没了。句子复杂一点,就会遇到各种企图上位者。把它们挡在门外的最好办法就是相谐性检查。这是通过一个中间件进行的,一点不麻烦,与句法之间也不会发生除了优先级动态调整之外的任何其他牵连。这个检查做完了,句法设定的初始优先顺序如果没有发生改变,就相当于尊重句法了,也可以说是给句法把了一道关。但是不能因此说保镖无用。后句中心词是“忍受”,“面条”作为非中心词萝卜,与“忍受”有填坑关系。

两句以谓词“吃”与“忍受”的“合并”结合,各自携带着自己的辖域形成一个更大的辖域,这时候辖域内的未饱和坑就暴露出来了。“Food”坑是前句中心词“吃”的亲儿子,不是残坑,所以属于“单边飞线(中心词与非中心词的hidden link)”,优先级高于“双边飞线”。所以已填坑萝卜“面条”和未饱和坑“吃”的关系被摆上了桌面。查中间件的结果是,二者相谐。后来的正主儿“面条”登堂入室,先到的小三“食堂”该降格早已在处理前句时降格了,大家井水不犯河水。这个过程怎么看都是在帮句法啊。

“一辆车坐六个人”“六个人坐一辆车”,语义上没区别,我们给出的句法标签拓扑上也没区别。但语序上是两套不同的svo。如果不做相谐性检查,这样的s和o就算标了,给谁用呢?谁会用呢?等语义落地?我们在做相谐性检查的时候,这部分就已经落地了。

大家看到的似乎是除了词例外长得一模一样的两张图,但实际上,两个坑有语义差异,两个萝卜也有语义差异,这些语义差异引发的内部的较量已经完成,可以说提前撇下句法进入语义了。相应语义标签,在下一阶段开发完成后也会提供出来。记得当年长者的同学窦祖烈先生的汉英机器翻译系统就栽在我给他出的这个例子上:“这辆车能坐六个人”被翻译成“This car can sit six people”。后来我说,把“坐”换成“载”试试?老先生这个高兴啊……

加“把”会不会有利于坐实所谓逻辑宾语?不一定。

“食堂”过坑门而不入,都赶上大禹了。虽然被“把”加持了,该不是你的位置,仍然不给你。这里也遇到一个问题,就是原来“食堂”从名词降格而来的“地点状语”的身份不见了,成了补语“穷”的正牌萝卜。既然正牌,还降什么格?系统目前是这个逻辑。但是状语标签没了似乎也不对。既然都“把”了,总得给谓语动词留点什么念想吧?不能混同于普通名词。应该是降格之前做补语的萝卜,降格之后做谓语的修饰语,两不误才对。

【相关】

《李白宋115:常识是句法的脑补(1/2)》

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

【置顶:立委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博文一览】

《朝华午拾》总目录

《每周一歌:英语名曲 – Because I love you》

英语名曲:'Cause I love you (背景:硅谷腹地原生态盐碱沼泽地)

这是家喻户晓经久不衰的英语名曲,真正百听不厌。背景风光是硅谷腹地桑塔克拉拉237号公路旁的盐碱沼泽地,政府辟为野生动物保护区。虽然地近闹市,这一大片海湾末端的沼泽完全原生态。

周深 - 我是真的爱你 (背景:硅谷南边的天线山脊)

原唱是梁静茹 周深唱歌很用心 喜欢他。

天线 skyline blvd 是把硅谷与太平洋一号分开的山脊路线 最喜欢山顶村子的那片红木和绿地。

从 Saratoga 那个downtown 开进山里 曲曲弯弯就到了 skyline 右转一直开 一路很野的保留地 但路很好开。skyline 很好的路 但是山里有些岔路非常艰险 有一次不小心跟着GPS进了山里岔路 两边是悬崖 中间一条忽隐忽现的窄小土路 那叫一个后怕 只能硬着头皮蜗牛一样缓慢前行,爬一样一个多小时才慢慢开出山来。

宠物大片,主演牛顿、卡塔拉与赞他