deep parsing 小讲座】 屏蔽留存

立委科普:deep parsing 小讲座】

屏蔽已有 2866 次阅读 2016-5-26 23:59 |个人分类:立委科普|系统分类:教学心得| parsing, 语义, 句法歧义, 语用

就上面的parsing实例开一个小讲座吧。群里的学生辈的提问,老师辈的指正。

上图中显然把 “还” 分析错了,道理也明显,因为“还”这个词是特别常用的小词,副词性质,但在此句是用作动词,意思是“归还”。这样的错误就需要系统做细功夫去应对,因为稍不留神,你解决了这个 case,你引起更大的问题,毕竟在绝大多数场合还是个小词嘛。怎么个细活:可以考虑 “还” 与“信用卡” 的 动宾搭配,等于是把“洗澡”类的搭配延伸一下就可以了。

上图第二句的分析,就是我以前说过的结构歧义的应对。你看整个句法树,有三个 O (宾语) 的路径。其中两个是正确的【到-上海】; 【买-上海的飞机票】。第三个 O 【到-上海的飞机票】 是不对的。可以说,“到上海”和“买飞机票”,但不可以说“到飞机票”。这类结构歧义在汉语特别普遍,因为汉语没有宾格,加上汉语的小词 “的”的辖域是一个很大困扰。

在实践中,我们的策略就是句法分析尽量保存歧义(keep ambiguity),把可能的途径全部标示出来或休眠起来,这样就为下一步的语义模块(我叫语义中间件)或者下一步直接做语用层面信息抽取的模块,打下了修正和利用的基础。下面的问题就是,休眠了或保留了多种结构歧义,但是到用的时候(语义落地为产品的时候),唤不醒或辨不清真想要的正确路径怎么办?

这话说起来长了,但简单的回答是,在句法阶段,我们的 parser 核心引擎是独立于 domain 和应用场景的,同一个 parser 可以为各种中文应用服务(舆情,问答系统,自动文摘,智能 bots,等等)。因此,要识别保留或休眠尽可能多的结构歧义路径,不要勉强去排歧。但是到了具体语义落地为产品的阶段和模块,我们就进入了应用的语用考量,换句话说,我们的语义目标聚焦了,或者我们的 domain 固定了。这时候,排歧的条件就比漫无目标的大海一样的句法阶段好太多了。譬如我做舆情,我就聚焦到舆情相关的歧义上,而整个语义大海的其他部分就隐去了,这时候,我因为所有的路径都还在,我就可以根据聚焦以后的词驱动规则去做合适的选择。

理论上讲,词驱动的细线条排歧也可以糅合到句法阶段去做,但是那样的话,你面对自然语言大海,你的核心引擎,就会太庞大了,即便你有能力和资源一点点去做词驱动。这样也是不合适的,因为你很可能做了很多无用功,而且很难维护。事实上也不现实:聚焦与不聚焦大不一样。到了应用场景,问题都是聚焦的。有经验的NLP系统架构师不会那么做。

当然,如果某个语义排歧对于很多应用都可以预见有好处,那么也可以在句法模块以后,进入产品应用之前,做一个语义中间件去做这个工作:句法 --》 语义 --》 语用(语义落地)----》支持产品应用,句法模块是核心,是核武器,但是不要叠床架屋,陷入语义泥潭。条件创造好,后去还有语义中间件可以做一些工作,最后在语义落地的语用层面,因为语义聚焦了,有些难题也可能自然消解和简化了。

这才是NLP做产品的正道、王道。

再进一步说一点,为什么同样一个歧义的难题,后面做,比前面做要合理和合适?道理就在,自然语言太复杂,我们需要分而治之,一步一步从浅层做到深层。在句法规则做线性的模式匹配的阶段,我们的上下文视野是有局限的,局限于线性序列的羁绊。过了句法阶段以后,我们就有树结构了,这时候,我们的上下文条件就清晰了。你想啊,一维转二维了,通过一个 graph(术语叫 dag)来看结构中的上下文,与通过一个线性序列来看上下文,前者比后者的排歧条件好太多了。线性的结构化是NLP的一个质的飞跃。结构图中的 patterns (就是 sub-trees)可以从任一个合适的角度去概括。

其实你们也已经能看到,我现在的这个 deep parser 不是完美的,你总可以发现这里那里的错误,这是所有的 real life 系统免不了的。但是,所有这些错误,都不会总体影响句法分析的进行。错误被局限在局部范围内,这就是我一再强调的,要自底而上层层推进。这样的系统才鲁棒,才能落地为产品。

【外一则】

说说做 deep parsing 的体会吧。

中文的确缠人一些,多数欧洲语言的deep,难度也没那么大。做细了当然要功夫,但总体难度不比 chunking 大,对于俄语和德语,就更容易。

这就跟谈恋爱结婚一样,两个 XPs 看对眼了,眉来眼去觉得条件合适了,就结合了。动名形这些大词有 subcat 的细类,决定与谁谈恋爱。至于 Modifier 和 Adveribial,就直接去傍大款,找靠山。找到了,就投身做小了。不像subcat的明媒正娶,做小的可以有n个,小三啊小四啊。

最后大家差不多都配对了,那就合成了一个共产主义大家庭,分析树就形成了。共产不共妻,虽然在一颗大树下,里面的小两口还是有向直接联系的,不与他人共享或混杂。大家庭里面的核心仍然是小两口为主的 argument structures。

可叹的是这种结构秩序与人类或commnity大家庭一个德性,就是处处不平等。(生来人人平等之所以成为口号和我们世世代代的理想,乃是因为人类社会从来也是不平等的。)

主语谓语小两口,谓语做主。动词宾语小两口,男尊女卑,动词决策。至于小三小四的时间地点程度原因结果等等条件状语,甭管她们多么体贴,多么面面俱到,根本就是二等三等公民。到了修饰语的小五小六们就更惨了,那是大家庭的佣人,与奴隶无异,根本就上不了台面,只能伺候着主语宾语这些小主子,远远望着老爷。

语言成分的 hierarchy 啊。

【后记:新智元语义计算群的相关讨论笔记】

白:

伟哥的两个例子做些补充:一是兼语动词的提示作用:“提醒sb做sth”是一个比较成套路的用法,尽管不是“提醒”的唯一用法,但是会给“还”的动词义项加分;二是“明天到上海的飞机票”从填坑角度出现错配,因为飞机和人到上海才是关键,票到不到上海(物理上)并不是最主要的问题,客票电子化以后,不出票、不打印票、事后打印票的情形大量存在,语言处理上理解为“明天到上海的飞机+票”才更符合填坑的规范,知识处理上“明天”和“去上海”都来填“飞机票”的坑才是正解。

宋:

明天到纽约的飞机票呢? 明天起飞,后天到,也可以说明天到纽约的飞机票. 再加上时差,就更糊涂了。得允许糊涂。

白: 哈

首先是,时间词和介词短语可以并列修饰“飞机”,但不是修饰“飞机票”?再说,里面可能有隐含动词,比如“起飞”?细究起来,买的是“航班服务”,票是享受航班服务的凭证,但是已经虚化了(没有相应物理实体)。航班服务有许多选项,出发地、目的地、起飞时间、航空公司、服务等级(舱位)、乘机人之类。那个是知识层面的事情。语言层面究竟做什么,除非之间把“飞机票”就当作“航班服务”,买凭证是面子,买服务是里子。“明天”是服务开始的时间,与“去上海”并列,共享那个“的”。“飞机票”和“去上海”不是填坑的关系。“去上海的航班”,是说以去上海为内容的航班,航班本身不填坑,反而是去上海要填航班的坑。

宋:

明天和到上海可能是并列关系,也可能是状中关系。并列关系时说的是起飞时间,状中关系说的是到达。有歧义。正式的通知需要更精确的表达方式。

白:

正式无歧义的表示是“明天飞往上海的航班”。考虑到时差,甚至可能是“昨天到夏威夷”。“往”的参照点是未然,“到”的参照点是已然。“去上海”也比“到上海”准确。伟哥原文是“去”,我中间跟“到”混用了。“明天去上海”作为定语从句可以成立了,但不是提取结构,不发生向从句内部的填坑。不是提取结构,就只能是总括结构,被修饰成分以修饰成分为内容。也就是说,被定语从句修饰的“飞机票”是属于那个非标配的小集合的。

宋:

考虑到时区的差别,说话人与听话人是否在同一个时区,说话人是以自己所在的时区为参照还是以听话人所在时区为参照也是影响意义的因素。

白:

伟哥分析树原文是“到”,后面也有与“去”混用。套近乎的话,就应该说“来”而不是“去”。“往”和“到”是相对于过程的,“来”和“去”是相对于说话人的。把听话人的参照点赋予说话人,是一种套近乎,就跟“咱”类似。

宋: 可计算吗?

白: 也不排除狗比狐狸算得更深

宋: 这个例子能否说明下棋程序有空子可钻?

白: 空城计也是,诸葛亮知道司马懿知道诸葛亮谨慎,所以反常理而行之。如果狗知道狐狸知道狗信守承诺,而且狗知道狐狸在关键时刻不信守承诺,就可以将计就计。然后还可以作无辜状。

我:白老师在绕口令呢? QUOTE 如果狗知道狐狸知道狗信守承诺,而且狗知道狐狸在关键时刻不信守承诺,就可以将计就计

宋: 知道应改成认为。

白:或者认定。计谋的逻辑。

宋:对,认定。

我:

不尽如人意,也懒得调了(有一个patching没到位,掉链子了)。这话非白老师宋老师这样的大知识分子不能说的。也是乔姆斯基毛毛虫的毛边了,不值当花气力了。

白: 有主观性。对有主观性的认知作主观性的表达,反而更客观。

还有“回”。伟哥在美国出生的孩子第一次来中国,也叫“回”,是吧?

我: 甜甜从来都是把中国当成外国 但她知道这是对她最重要的外国

QUOTE 甜甜自记事起,就住在这里,水牛城自然是她心目中不可替代的唯一故乡。记得四年前第一次带甜甜回北京探亲,第一天的晚上住在姥姥家,一切对她是那么陌生,没有她已经习惯的美国卡通电视,她满脸委屈地吵着闹着要回家(“I want to go home!”)--当然是回水牛城的家。我告诉她这就是家呀,是妈妈的家,她怎么也无法认同。

from 《朝华午拾:乡愁是一张无形的网》

【相关】

【立委科普:美梦成真的通俗版解说】

【立委科普:语法结构树之美】

【立委科普:语法结构树之美(之二)】

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

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

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

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

【泥沙龙笔记:NLP hard 的歧义突破】

【立委科普:结构歧义的休眠唤醒演义】

【新智元笔记:李白对话录 - 从“把手”谈起】

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

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

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

上一篇:【泥沙龙笔记:强人工智能的伟哥测试】
下一篇:【新智元笔记:工程语法与深度神经】

 

3  庄世宇 xlianggg bridgeneer

发布者

立委

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

发表回复

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

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