《镜子大全》《朝华午拾》分享 http://blog.sciencenet.cn/u/liwei999 曾任红小兵,插队修地球,1991年去国离乡,不知行止。

博文

【李白对话录:从“把手”谈起】

已有 2365 次阅读 2016-2-25 01:32 |个人分类:立委科普|系统分类:科普集锦|关键词:休眠,唤醒,parsing,汉语,句法,歧义,切词,subcat| 汉语, parsing, 休眠, 句法, 唤醒

【立委按:以前提到过汉语切词中的 hidden ambiguity 一类词是个讨厌的东西,举的例子是“难过”:1 难过:“这个小孩很难过”,表示情绪的形容词(sad);2. 难/过:“这条小河很难过”,这是形容词动词的组合(difficult to cross)。提出并实现了的应对方法是所谓休眠唤醒,即,在句法阶段不做歧义区分,等到了parsing完成以后,进入语用语义阶段的时候,如果需要再用词驱动的方式唤醒歧义区分。这个对“难过”没有问题,因为两个意义的句法功能相差不大,或者是做谓语,或者做定语。可是如果面对的hidden歧义对应两个不同的句法功能,休眠唤醒的实现就要费思量了。】


李: 见到一个讨厌的 hidden ambiguity “把手” vs “把/手”, 休眠了,怎么唤醒它?

它整个儿是名词;如果拆开,就是介词短语,以状语的形式填宾语的坑。NP 与 PP 句法上功能不同,因此休眠封装要费一点思量。
当然 把 NP 和 PP 混在一起的案例也不是没有,譬如时间词,就是名词的样子,常做状语,等价于PP,不得已了,才做主语宾语。
因此,句法上可以考虑把对 “把手”的处理,当成时间词的处理一样。这样可以保证,在多数句法结构中,它可以在封装的情形下,占到一个合适的句法节点的位置上,或者是状语,或者是主语宾语。等节点位置占据好了,然后可以唤醒它去填坑,这个用词驱动不难。现在是这么个思路。
白: 有点ad hoc……
李: 给个不 ad hoc 的法子。总不能打一开始就分叉,一路走下去吧。打一开始分叉,如果是单层的parsing,自然不是问题。如果有好多层的parsing,这么拖着拽着下来,还不累死?
本质上说,任何词驱动都是 ad hoc,理想的世界里没有词驱动。
譬如,世界语的parsing,需要用到词驱动的时候,比起任何自然语言,都少得多,已经很接近理想世界了。
世界上出了两个老柴(柴门霍夫和柴可夫斯基),在我看来,与世界上出了牛顿爱因斯坦一样,是上帝对苍生的垂怜。
白: 把字结构/被字结构做不做状语其实无关紧要,与普通名词只是填坑是否指名道姓的区别而已。就一个标签的事儿。而且,前置修饰成分只要有一个隔着锅台上炕,普通名词立马做实。指名道姓的坑如果被其他成分强占,普通名词也立马做实。
李: 把字结构被字结构本身做不做状语的确无关紧要,它最终是要做主语宾语的,即便做状语,也是拿状语当敲门砖。
白: 我就是这个意思
李: 如果有不做状语一步到位就去做主语宾语自然更好。问题是,它做了状语,就为其他成分的就位创造了条件。因为它长得太像状语了,不做状语,在那里挡路,每条规则经过它的时候,都要特别照顾它一下,这不是个法子。
白: 太拘泥语序了就容易这样。
李: 一步到位是部分可行的,subcat 就是干这个的。
白: 坑的filler直接找provider,就不需要那么拘泥语序。
李: 不过我们现在说的不是把字句,而是"疑似把字句"的 “把手”。即便数据结构上,可以从词典就把它标注为与 PP 同形,这样 subcat 的 filler 找 provider 就同样找到它,也还有一个如何协调它的另一个 NP 可能的问题。
白: 就是封住他,碰到宾语被强占或者被定语修饰,再解锁。先当两个词:
门把手夹了
门把手坏了
哈,涉及N+N来捣乱
李: 门PP坏了
白: 不及物动词,相当于宾语被强占,再解锁。
李: 这个 PP 肯定连上 “坏了”做状语。何时唤醒它?
门在这里坏了
门由此坏了
没有唤醒的理由。
白: 我这里处理把字结构,就是有特殊subcat的名词,和一般状语不同。
李: 门把手 可以做合成词,不论。
门的把手坏了
门的 PP 坏了
白: 抽屉把手
李: 这也是合成词,凡是合成词能解决的,一律无视。
抽屉的PP坏了
这个可以考虑唤醒。
白: 它受定语修饰就解锁,无定语,坚持到碰见谓语,看宾语坑是否free。强占或不及物,都不是free,应解锁。
这个被定语强制得太明显了?左侧唤醒应该不是问题。
李: 原则上有些道理,实践中操作还是有难度。
白: 右侧唤醒,你看我列出的条件
绿色把手,不加的,也可以唤醒。左侧都是“吸收”类型的操作,右侧才是“填坑”类型的操作。
李: 绿色PP?
白: 不通啊
李: 孤立看不通,到句子里通的时候居多:
绿色PP而改变:绿色由此而改变
白: 把字结构不当作PP,死不了人的。
李: 给把字结构另起一个名字,那也可以,就是俄语的一个格变而已:accusative
可是,这样做的前提是assume,Parser 可以完善处理 subcat 的填坑。如果 subcat 稍有差池,它就是一个拦路虎,造成 parser 丧失鲁棒性。
换句话说,把字结构本来是要被吸收掉的,吸收不掉的时候,不能让整个系统给它做变通。
如果 “把+手“ 这样处置,吸收不掉,基本上就是该唤醒它的另外的角色了。
白: 可以给parser做个宏定义开关,控制唤醒功能启用与否。
李: 更大的问题不在这个个案,而是 BA-Phrase 与 一般 PP 独立的话,增加了系统面对的不同种的 objects。挺乱的。
白: 对那些subcat控制不了的应用,不建议启用。我的处理是把字结构当名词,但有个特征注明填坑优选位置,唤醒时这个特征复位,变成普通名词。
李: 回问白老师一个问题:为什么您现在热衷于休眠唤醒的思路?
不是说统计界对 non-deterministic parsing 一直很热衷,不以为是问题么?曾经在研究界闹腾过相当一阵子的路数,只是到底可行否,接不接地气,我就不清楚了。
白: 我不喜欢不确定性无差别地到处乱飞。
李: 这里面有一个根本的架构负担。如果是教科书上的 chart parsing,一锅端,一层做parsing,non-deterministic 是自然的分叉,不过是加重了组合爆炸和伪歧义,效率暂且不论,算法上是天然可以的。
如果parsing要走语言分层多层处置的道路,这个所谓带着分叉去做,是不堪负荷的。这个不堪负荷,主要还不是计算的开销,
主要的是人对模块的维护负担。人在调试后面模块的时候,如果不想堕入迷宫,最好还是少分叉,多休眠。
白: “意识到”的是主线, “下意识”的是休眠。机制必须不同。哪怕梦游,也不能跟主线同等待遇。

关键是,chart里面还夹带大量伪歧义,都跟着走。


【相关博文】


【李白对话录系列】

《新智元笔记:NLP 系统的分层挑战》

《泥沙龙笔记:连续、离散,模块化和接口》  

《泥沙龙笔记:parsing 的休眠反悔机制》

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

《新智元笔记:跨层次结构歧义的识别表达痛点》



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






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

上一篇:【立委科普:语言学算法是 deep NLP 绕不过去的坎儿】
下一篇:《新智元笔记:再谈语言学手工编程与机器学习的自动编程》

1 武夷山

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-10-18 09:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部