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

博文

《新智元笔记:找茬拷问立氏parser》 精选

已有 3344 次阅读 2016-2-2 05:05 |个人分类:立委科普|系统分类:科研笔记|关键词:中文,parsing,鲁棒,休眠,结构分析| parsing, 休眠, 中文, 鲁棒, 结构分析

洪爷有诗道:伟爷强弩上大弓,先吃豆腐显轻松。 NLP parser天天弄,小菜十碟拌饭红。

我: 语义求解的目的何在?如果不与domain、客户需求、语用或应用连接,那就是普遍性语义求解,那是一个很容易陷进去出不来的地方。一旦与应用对接,则大不相同,很多事情往往没有想象的那么复杂深奥。

宋: 对。普遍性的语义求解是一个陷阱,但有上下文约束会好一些。孤立地看一个短语,确定它有什么坑(语法的或语义的),比较困难。上下文的作用不仅是填坑,而且是约束坑的类型。
我: 回宋老师,那些依存关系的标签基本是 self-evident 可以顾名思义的,不外就是逻辑主语(actor)、逻辑宾语(under),动词性宾语(cinf),谓词补语(buyu),补足语(comp),定语从句(relmod),修饰语(mod),状语(adv),同位语(equiv),话题(dummysubj),并列(conj)、介宾(pobj),有当无的关系(dummy),连动或接续关系(nextoken) 等。
宋: 什么是“有当无的关系”?
我: 就是一些附加语啊,或者无所谓的小词啊。连上也许后去会用上,不连上丢掉其实也可以。
宋: 谢谢立委。你的parser确实可以解决很大问题。
顾: 怎么把应用语境程序表示呢?应用相关的规则集?
我: parsing 提供的是树结构,应用就在树结构上做模式匹配。这比传统的在线性序列上匹配(譬如 ngram 匹配),威力强大多了。以一当十可不止,这种匹配是以一当百。不仅是数量上的一当百,而且线性匹配够不着的模式,结构也能够得着,一些所谓远距离的现象。因此,对于NLP应用,比起关键词和ngram的小米步枪,parsing 就是核武器,这就是我们一直在鼓吹的:subtree matching is way more powerful than linear pattern matching (泥沙龙笔记:parsing 是引擎的核武器,再论NLP与搜索)。
绝大多数应用的基础,不是搜索就是抽取。抽取可以看成是线下(offline)的搜索(可以叫做 structure indexing),搜索就是实时(real time)的抽取。搜索解决的是无法 pre-computing 的信息检索,抽取是为预订(predefined)的信息需求做更周全的服务。二者都可以用parsing,也都可以用关键词,但效果和质量天差地别。(见立委科普:关键词革命
顾: 但这里的问题是对语义的理解造成树不同,如果树不准确,匹配也不好做吧
我: 恰恰相反,树不准,应用中的语义条件可以做弥补,因为应用的时候有已经大大缩小了或简化了的语用现场,以及domain知识。
顾: 是否一个关键是在特定应用中,一般无需将每句话都parse正确?
我: 当然。如果必须每句话都parse对了,才能应用,世界上就没有 parsing 的应用了。事实上,人也会遇到 parsing 和理解的困难和错误。
顾: 我就是问这个domain knowledge在程序中怎么实现的。是个比较初级的问题,您的核武器我一向佩服的。
我: 甚至信息抽取做了近20年了,90%以上的抽取应用,连 parsing 都不用,更甭说 parsing 对不对了。
domain knowledge 有几个角度,都有帮助和弥补的作用:首先,是对于抽取的目标的定义。抽取就是填空,但填空前必须定义语义名称和关系,数据库里面的数据 fields 也是预先定义的,定义抽取template作为语义目标与此类似。譬如,你要抽取会议信息,你就会定义会议名称、会议时间、会议地点、主讲人等等,所有这些都是domain的语义关系。有了domain语义的定义,你的目标就聚焦了,与这些关系无关的信息和句子,一律排除出局。
不仅如此,因为所有这些定义都是围绕一个domain的语义主题(“会议事件”),你对普遍句法关系的容错性大大增强。第二个就是所谓 domain ontology 也可以派上用场。
顾: 我的理解是立委对每类应用有多棵目标语法树,然后文字parse时往这些树上靠,无需考虑其它的非目标树的解析法.
我:恰恰相反。不是语法树往不同应用去靠,而是直接支持应用的抽取模块往语法树靠。是为以不变应万变。parser是独立于应用的,核心引擎不轻易为具体应用做改变。因为应用总在变,引擎是稳定的、轻装的。
Qing: 我个人直觉结果的稳定性比正确性重要
我: 鲁棒性比正确性重要,不鲁棒就会够不着信息。鲁棒了至少可以有路径,哪怕路径有误,只要错误的路径有一致性或是可以预见的,那么信息抽取的时候从错误的路径抽取到正确的信息,也是完全可能的,所谓负负得正。因为有了路径,节点之间的语义相谐性(semantic coherence)就可以弥补句法的不足。
Qing: 以后我们每个人要约束自己。有话好好说,才能愉快地聊天。要自觉地向立委的语法规则靠拢。白老师曰,别抬杠,别找茬。
我: 这是哪里焊哪里。找茬和抬杠都不是问题。时髦话说:不zuo不活。扛得住找茬和抬杠才能鲁棒坚强。
宋: 对,我相信你的这些策略肯定是非常有用的。我在刚才说的“接桩”的问题中,也曾经想用parser来选择接桩的结果,但找不到性能好的parser,于是只能用类似于ngram的方法建立一种学习策略,找最优接桩结果,效果只能说凑合。
立委,你能否用你的parser做这样一件事情。原文是:
西藏银行部门去年新增贷款十四点四一亿元,比上年增加八亿多元。农业生产贷款比上年新增四点三八亿元。
其中后两个标点句前面都缺成分,需要补上。第2标点句前面补上成分后可能的结果是:
比上年增加八亿多元。
西藏银行部门比上年增加八亿多元。
西藏银行部门去年比上年增加八亿多元。
西藏银行部门去年新增比上年增加八亿多元。
西藏银行部门去年新增贷款比上年增加八亿多元。
西藏银行部门去年新增贷款十四点四一亿元比上年增加八亿多元。
这6个结果用你的parser从中选一个最优的,再把这个最优的用上述策略同第3标点句匹配,或者用前3个较优的分别用上边的策略同第3标点句匹配,通过你的parser再选最优,看最后结果是什么。
我: 你看看,这不是难为我么?
顾: 您说了可以找茬抬杠,那宋老师出这题不算过分
宋: 难为立委了,有时间有兴趣就试试,无所谓。
我: 我只管结构parsing,算是给你的目标提供靠谱的基础。利用这样的基础,你自己的系统也许可以更好地去选择接桩。

好,把parser的错改正增强了,结构应该是没问题了,其他的事情是应用和domain层面了。这下对了吧,再不对,我就砸机器了:


湖: 李老师的parser很强啊,有试用版吗?
我: 没有试用。内部产品使用,不对外。用户也就可数的几个(其实满憋屈的,大材小用),虽然都是大户人家。
湖: 独门秘术啊。
白: 农业生产贷款,典型的主谓宾,为啥不中?
我: 农业生产贷款,不能算典型的 SVO,因为 农业生产 是典型的 compound。
湖: 分析中人工干预吗?
我: 分析是全自动的,怎么干预?如果干预指的是开发过程不断地维护和提高(fine tuning),那与机器学习的培训(training or retraining)是类似的。所有的电脑自动系统的开发不都是这样的么?除非现在打包成黑箱子,把引擎封死固化。
宋: 立委。你没有直接回答我的问题呀。我的问题是,第二个标点句补全成分的6种选择,应该选哪一个?第三个标点句如何补全成分?
我: 我回答不了啊。语义我不在行,我就懂一点句法。你的问题我不认为是句法范围的问题,而是句法后的语义问题。句法可以提供基础,真正的语义工作还是要你自己的模块去做啊。我提供一个比较靠谱的句法结构基础,在上面怎么玩语义的把戏是语义学家或 domain specialist 的任务了,各司其职。
宋: 立委,我并不要求作语义分析,只是在6个候选句中用parser挑一个最优的。当然,这也许同你的目标不大一样。你的parser是在同一个句子的不同parser结果中找最优,不知能否用于不同句子parser结果中找最优,从而确定哪个句子最合理。

我: 不能,句法不跨句,甚至都基本不跨从句。跨句的NLP需要另外的机制。

白: 那,压力测试环境,会如何?压力测试环境已经准备好了。

试试。

我:好:

 

湖: 够快啊
我: 本来就是“线速”啊。就是还要转成图形费点事儿。
白老师心里想什么我知道
湖: 这超出预期
我: 以前说过的,最大可能的先出来,其余应该休眠。
白: 橱柜消毒喷剂昨天买到了

我: 这个露馅了。“喷剂” 居然不在词典。本来以为词典够全的了呢。

 

加进词典了:

 

白: 炸药投射装置在操场北侧。
湖: 这个例子太牛

我:

 

例子再牛还有我parser牛么?
kidding ......
湖: 这个分析器确实很强
我: 说到这里想起一件好笑的事儿。
白: 拿社保养老保险吗?
我: 先等我讲个故事,也算NLP掌故吧。话说近30年前吧,我与前辈大牛聊天。前辈不仅学问深不见底,也是一个特别幽默直爽的人,直爽到让我目瞪口呆。当时前辈经过多年的努力刚刚正式推出NLP系统支持的产品,正得意中。大概所处的状态与我现在类似。他提到他的两个作品,一个是他儿子,一个是系统,that's my real baby。说:儿子不算真的作品,根本没费劲儿呢,也就是个自然灾害。系统才算,那真是好多年的呕心沥血呢。前辈的这个对比让我忍俊不住,被幽默了好多年。
白: 试试,拿社保养老保险吗?

我: 白老师今天是不气死机器不罢休的阵势啊。来了:

 

白: “养老保险”词法就搞到一起了,没有休眠机制,“保险”没办法做谓语的。救不活了。

我: 现在是没有。休眠机制还在考虑中 ....... 但是还是可以救活的,等我有机会再专门讲一下如何救活它,并不难,就是词驱动的 reparsing,如果 reparsing 单做的话,譬如可以专门做一个 NP 的reparsing。实现一个 NP 的 re-parser, 以提供更多的 parses 选项,不是一件很难的事儿,只要想做,就可以做。问题是,在应用层面还没有想好接口之前,这个工作暂缓。休眠救活的具体策略,以后专找时间详论。(见:【立委科普:歧义parsing的休眠唤醒机制再探】 

白: reparsing是需要划禁区的。

试试:媒体挖掘真相的速度比不上谣言制造工厂的速度

我: 这句后半句掉链子了:

 

我:小小抗议一下,白老师的那个句子,刚刚重新读了一遍,我是 native,也给你绕糊涂了,你那后半句是“人话”还是“准人话”?什么叫 “谣言制造工厂的速度” ?我用人脑 parse 了几遍也没搞明白。明显就是个坑,我如果往左parse,你可以说错了,如果往右,你还可以说错了。人根本就没法统一意见的事儿,怎么教给机器?还有前一句“拿社保养老保险么”,我人脑的parsing与机器输出的完全一致。听上去又不对了。也许是因为我缺乏背景知识,不了解国内的社保制度。我觉得意思就是,(你是)用社保来做养老保险么?难道不对?
白: “谣言制造工厂”和“炸药投射装置”在结构上是完全平行的,但和“媒体挖掘真相”不平行。后者是svo,前两者都是np。
我: 这个我懂。你生生地狗尾续貂,加了 “的速度”,我头脑就 parse 不了了。
白: 工厂不可以有速度吗?
我: 怎么那么别扭呢。一般来说,物是没有速度的,动作才有速度。
白: 况且这会儿都还没见到语义呢,都在做句法分析。句法不别扭就OK。
湖: 刘翔的速度。
白: 信息生产,无论造谣还是辟谣,都可以谈论其速度。
湖: 不过这类语义粘合度低的,确实让机器分析有难度。
白: 进而也可以把速度投射到生产者身上。
湖: 我分析@wei 的分析器在词典里有利用语义的。
我: 汉语如果连词典语义都不用,parser 不就寸步难行么?
湖: 是的
我: 那会有多少 伪parses 啊。如果只从POS类考察汉语,那几乎就是爆炸,核当量的,根本无法收场。几乎所有 POS 都可以互相结合。
湖: 真心觉得@wei 的分析器很强大。按白老师的奥卡姆剃刀,POS完人该被X的。最近我潜意识里认为乔式的最简理论中的移动理论还有道理。句法要解决的是语义结合及其顺序、成分共享、焦点表达。
我: 哦,我明白了,“拿社保养老保险么”,指的是 【拿社保养老】保险么?
白: 正是。
“保险”可作谓词,“养老保险”不行。
我: 不过 【拿社保】【养老保险】 的 parsing。虽然结构不同,核心语义是一样的。应该算对,我觉得。
湖: 白老师的是个歧义句,一是保险为核,一是拿为核。两个歧义句意思完全不一样。@wei 您的句子我觉得也有两个意思啊
我: 因为我的parser 把【养老保险】当谓语看的,【拿社保】是手段状语。以前也见过一些逻辑结构不同,但语义相同或类似的例子。尤其是英语的 PP-attachment 的歧义句子,如果这个PP 是一个 for+NP,可以找到相当一批句子,无论分析为NP的定语,还是Pred的状语,其核心语义是一样的:last year we built 20 schools for blind children。
白: 拿“养老保险”作谓语,出轨的尺度比较大。不是不行,是不到万一不应采用。
我: 某种程度上,已经万一了。这就好比 PP 做谓语一样,句子里没有更强的谓语选项了。
白: 现实是,没有休眠机制,只能将就。有休眠机制,就不这么认为了。“谣言制造工厂”,必须通过相对强大的构词法,才有希望结合成整体,不受“速度”的干扰。


【相关】

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

《新智元笔记:汉语parsing以及所面对的汉语的意合特点》 

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

【新智元:中文 parsing 在希望的田野上】 

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

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

立委科普:关键词革命 

泥沙龙笔记:parsing 是引擎的核武器,再论NLP与搜索 

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







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

上一篇:“任免”的说法
下一篇:【立委科普:歧义parsing的休眠唤醒机制再探】

1 黄永义

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

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

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

GMT+8, 2019-10-15 01:02

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部