【立委科普:歧义parsing的休眠唤醒机制再探】
已有 6145 次阅读
2016-2-2 06:26
|个人分类:立委科普|系统分类:科普集锦|
parsing, 休眠, 唤醒, 结构歧义, nondeterministic
关于休眠唤醒机制,值得细细讨论,一类一类问题讨论。第一类是词一级的休眠:“难过”、“好过” 这类所谓 hidden ambiguity 的词。这是汉语切词的软肋,因为它直接违反最长匹配原则。然而,凡是能词典化的现象都容易处置。休眠容易,唤醒也容易,没有救不活的问题。不过是做一个词驱动的 resegmenter 或 reparser 而已。 其中一些也可看成是个别性的多义词消歧问题,即 WSD (Word Sense Disambiguation)。
词一级休眠的歧义被唤醒所需要的,就是词条里面给一个标签。说明该词 parse 后需要再调用一个词驱动(word-driven)系统,譬如: “难过”、“好过” 等。parsing 主线没有任何负担。“小孩很难过” 与 “小河很难过” 是同样的 parsing。但是parse完成后,在调用词驱动消歧模块的时候,这时候消灭结构歧义(所谓“唤醒”)以及wsd,这些工作的条件已经具备:既有现有parse tree 也有词node的信息。消灭歧义的个性规则不难想象,不外乎:主语如果不是人或动物,就翻盘。这是宽的条件,也可以收紧,极端一点就是:主语必须是河流或障碍类别的词,就翻盘。松紧可以根据数据去 fine tuning,达到精准与覆盖的合理平衡。
下面现场做一下“难过、好过”。没做之前是这样的,处于休眠状态:
因为 hidden ambiguity 休眠,因此 sentiment 也错了,小河也仍然是 Negative Sentiment:
好,加上对主语的限制,翻盘需要非Human或Animal,unit tests 结果就对了,就等看测试集里面有没有副作用了(估计不会有,因为这是 word driven 的休眠唤醒):
Note: sentiment analysis 中,“小河很难过” 依然是 negative 的,但是这种 negative 已经不再是情绪 (Negative Sentiment),而是客观的困境 (Negative 的 Objective Quality)。这个分析是对的,而且细致。
可见,词一级休眠唤醒,原则上无需其他特别的机制,只需要词驱动的系统即可,一个 expert lexicon,就可以翻盘。这个机制一直在,就是以前没想到去做 word driven 唤醒 hidden ambiguity。没有这个机制,就做不了 sentiment。如果一定说要机制层面的推进的话,主要在给翻盘结论的时候最好提供一点规则表达的便利。譬如怎样干净利索地推翻原结论,创造新结论,包括更新树表达等。 如果规则是条件和结论的组合体,条件一端无需改变机制,只是结论一端可以有改进。而结论工具的改进一般被认为是 formalism 的 side effects,是工程实现的雕虫小技,属系统内部的调控细节,大体就是数据结构的某种方便的操作改进而已,基本无关 formalism 本身的 power 和拓展。结论:词一级的休眠唤醒,只要想做,就可以做。所做的工作本质上与抽取所要做的工作,没有机制上的不同,都是利用现存的树结构,进行结构匹配而已。其实,在语用开发现场,二者往往是结合在一起做的,翻盘成为抽取的一个有机环节。
第二类的休眠从词上升到短语,特别是名词短语 NP,假定NP的边界是清晰的。但是短语内部的关系,需要休眠那些可能性不高的局部 parses,然后到合适的时机再唤醒。这个 np reparser 比词一级唤醒难度大一些,但还是不难实现。这里的挑战不在实现一个 base XP 的 non-deterministic reparser,而在于与语义模块或应用模块的接口。接口机制定义好了,局部的 nondeterministic paths 总是可以暂存某处,等待接口模块去根据需要翻盘和选优。这个没有实质性挑战。因此原则上也没有救不活的问题。主线parsing 的所有的短语内结论都应该看成是默认的标配,而不是最终的结论。主线parsing无论有什么问题,只要短语界限没错,短语树的词子串(叶子)还在,就总有利用全局条件对局部翻盘的可能。而且这个任务基本是 tractable 的。
排除上述两种翻盘的情形,问题就大大缩小了。剩下的问题就是,短语边界错误如何纠正。这个实践证明是一个很稀少的问题,可以忽略。除非连一个浅层chunking都做不好。如果是那样,也就不要蹚什么deep parsing的浑水了,更谈不上休眠还是唤醒了。第二个问题就是短语之间的结构歧义,如 pp-attachment 和“的字结构”的 scope问题。这是句素层面的问题,以前讨论过多次了。这一层面,实际上不一定要依赖休眠唤醒机制。句素之间带着非确定性结果也是完全可行的。
https://blog.sciencenet.cn/blog-362400-953986.html
上一篇:
《新智元笔记:找茬拷问立氏parser》下一篇:
《新智元:通用的机器人都是闹着玩的,有用的都是 domain 的》