《李白王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博文一览】

《朝华午拾》总目录

发布者

立委

立委博士,问问副总裁,聚焦大模型及其应用。Netbase前首席科学家10年,期间指挥研发了18种语言的理解和应用系统,鲁棒、线速,scale up to 社会媒体大数据,语义落地到舆情挖掘产品,成为美国NLP工业落地的领跑者。Cymfony前研发副总八年,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个小企业创新研究的信息抽取项目(PI for 17 SBIRs)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据