【离皇冠上的明珠只有一步之遥的感觉】

1471802218_457583

parsing 是最好的游戏,而且实用。

据说好玩的游戏都没用,有实用价值的东西做不成游戏。但是,对于AI人员,parsing 却是这么一个最好玩但也最有用的游戏。纵情于此,乐得其所,死得其所也。

禹:
李老师parser有没有觉得太烧脑呢?
做parser少了个做字。感觉上先是一个比较优雅的规则集,然后发现规则之外又那么多例外,然后开始调规则,解决冲突,然后'整理规则的事情还得亲力亲为,做好几年感觉会不会很烦?

我:
不烦 特别好玩。能玩AI公认的世界级人类难题且登顶在望,何烦之有?
烦的是好做的语言 做着做着 没啥可做了 那才叫烦。英语就有点做烦了。做中文不烦 还有不少土地没有归顺 夺取一个城池或山头 就如将军打仗赢了一个战役似的 特别有满足感。

梁:
收复领地?

我:

【打过长江去,解放全中国!】

parsing 是最好的游戏。先撒一个default的网,尽量楼。其实不能算“优雅的规则集”,土八路的战略,谈不上优雅。倒有点像原始积累期的跑马,搂到越多越好。然后才开始 lexicalist 的精度攻坚,这才是愚公移山。在 default 与 lexicalist 的策略之间,建立动态通信管道,一盘棋就下活了。
譬如说吧,汉语离合词,就是一大战役。量词搭配,是中小战役。ABAB、AABB等重叠式是阵地战。定语从句界限不好缠,算是大战役。远距离填坑,反而不算大战役。因为远距离填坑在句法基本到位之后,已经不再是远距离了,而且填的逻辑SVO的坑,大多要语义相谐,变得很琐碎,但其实难度不大。(这就是白老师说的,要让大数据训练自动代替人工的语义中间件的琐碎工作。而且这个大数据是不需要标注的。白老师的RNN宏图不知道啥时开工,或已经开工?)

parsing 是最好的游戏。一方面它其实不是愚公面对的似乎永无尽头的大山,虽然这个 monster 看上去还是挺吓人的。但大面上看,结构是可以见底的,细节可以永远纠缠下去。另一方面,它又是公认的世界级人类难题。不少人说,自然语言理解(NLU)是人工智能(AI)的终极难题,而 deep parsing 是公认的通向NLU的必由之路,其重要性可比陈景润为攀登哥德巴赫猜想之巅所做出的1+1=2.  我们这代人不会忘记30多年前迎来“科学的春天”时除迟先生的如花妙笔:“自然科学的皇后是数学。数学的皇冠是数论。哥德巴赫猜想,则是皇冠上的明珠。...... 现在,离开皇冠上的明珠,只有一步之遥了。”(作为毛时代最后的知青,笔者是坐着拖拉机在颠簸的山路回县城的路上读到徐迟的长篇报告文学作品【哥德巴赫猜想】的,一口气读完,头晕眼花却兴奋不已。)

不世出的林彪都会悲观主义,问红旗到底要打到多久。但做 deep parsing,现在就可以明确地说,红旗登顶在望,短则一年,长则三五年而已。登顶可以定义为 open domain 正规文体达到 95% 左右的精度广度(f-score, near-human performance)。换句话说,就是结构分析的水平已经超过一般人,仅稍逊色于语言学家。譬如,英语我们五六年前就登顶了

最有意义的还是因为 parsing 的确有用,说它是自然语言应用核武器毫不为过。有它没它,做起事来就大不一样。shallow parsing 可以以一当十,到了 deep parsing,就是以一当百+了。换句话说,这是一个已经成熟(90+精度可以认为是成熟了)、潜力几乎无限的技术。

刘:
@wei 对parsing的执着令人钦佩

我:
多谢鼓励。parsing 最终落地,不在技术的三五个百分点的差距,而在有没有一个好的产品经理,既懂市场和客户,也欣赏和理解技术的潜力。

刘:
任何技术都是这样的

我:
量变引起质变。90以后,四五个百分点的差别,也许对产品和客户没有太大的影响。但是10多个百分点就大不一样了。譬如,社会媒体 open domain 舆情分析的精度,我们利用 deep parsing support 比对手利用机器学习去做,要高出近20个百分点。结果就天差地别。虽然做出来的报表可以一样花哨,但是真要试图利用舆情做具体分析并支持决策,这样的差距是糊弄不过去的。大数据的统计性过滤可以容忍一定的错误,但不能容忍才六七十精度的系统。

当然也有客户本来就是做报表赶时髦,而不是利用 insights 帮助调整 marketing 的策略或作为决策的依据,对这类客户,精度和质量不如产品好用、fancy、便宜更能打动他们。而且这类客户目前还不在少数。这时候单单有过硬的技术,也还是使不上劲儿。这实际上也是市场还不够成熟的一个表现。拥抱大数据成为潮流后,市场的消化、识别和运用能力还没跟上来。从这个角度看市场,北美的市场成熟度比较东土,明显成熟多了。

 

【相关】

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

泥沙龙笔记:从 sparse data 再论parsing乃是NLP应用的核武器

It is untrue that Google SyntaxNet is the “world’s most accurate parser”

【立委科普:NLP核武器的奥秘】

徐迟:【哥德巴赫猜想】

《朝华点滴:插队的日子(一)》

关于 parsing

【关于中文NLP】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【语义计算沙龙:语序自由度之辩】

刘:
WMT2016上有一篇文章,讨论了语言的语序自由度,结论很有趣,见附图。根据这篇论文统计,汉语和英语之间语序关系是最稳定的(注意:语序关系稳定与语序一致不是一回事),比其他语言稳定度都高出许多。日语虽然是粘着语,但跟英语的语序关系也是相当稳定的。相反,德语虽然跟英语亲缘关系很近,但其相对语序的自由(不稳定)程度相当高。

916632021314869711
论文链接 http://www.statmt.org/wmt16/pdf/W16-2213.pdf

我:
这个研究是说,如果这些语言要与英语做自动翻译,语序需要调整多少?
英语相对语序很固定,加上是最流行的语言,拿它做底来比较,对于各语言的相对语序自由度应该是不离谱的。但是,从(平行)大数据来的这些计算,与这些语言的语言学意义上的语序自由度,有差别:
譬如 Esperanto 的语序自由度应该很大,怎么排列,意思都不变,但是由于很多人可能思想是用英语的,写出来的时候下意识在头脑里面翻译成了世界语,结果跟机器翻译一样,人的懒惰使得表达出来的语序照着英语的样子相对固定起来,并没有充分利用语言本身本来有的那么大自由度。

汉语的语序自由度,语感上,比图示出来的,要大。但是,做这项研究的双英对照数据也许大多是正规文体(譬如新闻),而不是自由度更大的口语,因此出现这样的结论也不奇怪。虽然汉语是所谓孤立语,英语接近汉语,但没有那么“孤立”,汉语的语序自由度比英语要大。做英汉MT的 generation 的时候,需要调整词序的时候并不很多,多数情况,保留原词序,基本就凑合了,这是利用了汉语语序有弹性,相对自由度大的特点。汉英MT没亲手做过(除了博士项目在Prolog平台上做过的一个英汉双向MT的玩具),感觉上应该比英汉MT,需要做调序的时候更多。调序多容易乱套,特别是结构分析不到位的时候更容易出乱子,是 MT 的痛点之一。尽量少调序,警惕调序过度弄巧成拙,是实践中常常采取的策略。包括英语的定语从句,多数时候不调序比调序好,用的技巧就是把定语从句当成一个插入语似的,前面加个逗号或括号,适当把 which 翻译成“它”等等。

刘:
你说的有道理,这个研究是以英语为基准的,虽然严格说不是很合理,但还是靠谱的,英文英语语序是比较固定的。我们说汉语语序自由,我觉得是错觉。汉语语序是很不自由的。实际上,对一个语言来说,形态的复杂程度和语序的自由程度是成正比的。形态越复杂的语言,语序越自由。汉语没有形态,只能用语序来表示句法关系。因此是严格语序语言。不可能说一种语言既没有形态,又语序自由,那么这种语言基本上没法表达意义了。

白:
这个,需要分开说。一是subcat算不算形态,因为不是显性的标记,很可能不算。二是subcat是否提供了冗余信息使得一定范围内的语序变化不影响语义的表达,这是肯定的。

Jiang:
嗯!subcat这里指的是什么?

白:
比如“司机、厨师、出纳……”都携带human这个subcat,但是human并不是一个显示的形式标记。

我:
虽然大而言之形态丰富的语言语序自由度就大、形态贫乏的语言语序相对固定是对的,但汉语并不是持孤立语语序固定论者说的那样语序死板,其语序的自由度超出我们一般人的想象:拿最典型的 SVO patterns 的变式来看,SVO 三个元素,排列的极限是6种词序的组合。Esperanto 形态并不丰富,只有一个宾格 -n 的形态(比较 俄语有6个格变):主格是零形式(零词尾也是形式),它可以采用六种变式的任意一个,而不改变 SVO 的句法语义:

1. SVO Mi manĝas fiŝon (I eat fish)
2. SOV: Mi fiŝon manĝas
3. VOS: Manĝas fiŝon mi
4. VSO: Manĝas mi fiŝon
5. OVS: Fiŝon manĝas mi.
6. OSV: Fiŝon mi manĝas.

比较一下形态贫乏的英语(名词没有格变,但是代词有)和缺乏形态的汉语(名词代词都没有格变)的SVO自由度,很有意思:

1. SVO 是默认的语序,没有问题:
I eat fish
我吃鱼

2. SOV:
* I fish eat (英语不允许这个语序)
我鱼吃 【了】(汉语基本上是允许的,尤其是后面有时态小词的时候,听起来很自然)
虽然英语有代词的格变(小词直接量:"I" vs "me"), 而汉语没有格变,英语在这个变式上的语序反而不如汉语。可见形态的丰富性指标不是语序自由度的必然对应。

3. VOS:
* Eat fish I (英语不允许这个语序)
?吃鱼我(汉语似乎处于灰色地带,不像英语那样绝对不行,设想飞机空姐问餐:“吃鱼还是吃肉?”你可以回答:“吃鱼,我”)

4. VSO:
* Eat I fish (不允许)
* 吃我鱼 (作为 VSO 是不允许的,但可以存在,表示另外一种句法语义:吃我的鱼)
做VSO不合法,但有些灰色的意思,至少不像英语那样绝对不允许。

5. OVS:
* Fish eat I (不允许,尽管 I 有主格标记)
* 鱼吃我 (句子是合法的,但句法语义正好相反了 , 是 SVO 不是 OVS。句子本身合法,但做OVS非法。)

6 OSV:
fish I eat (合法,除了表达 OSV 的逻辑语义 这个语序,还表达定语从句的关系)
鱼我吃(合法,常听到,鱼是所谓 Topic 我是 S,逻辑语义不变)

总结一下,汉语在 6 个语序中,有 3 个是合法的,1 个灰色地带,2 个非法。英语呢,只有两个合法,其余皆非法。可见汉语的语序自由度在最常见的SVO句式中,比英语要大。

白:
不考虑加不加零碎的语序研究都是那啥。“鱼吃我”不行,“鱼吃得我直恶心”就行

我:
不管那啥,这个 illustration 说明,语序自由度不是与形态丰富性线性相关。也说明了,汉语往往比我们想象的,比很多人(包括语言学家)想象的具有更大的自由度和弹性。白老师的例子也是后者的一个例示。其实,如果加上其他因素和tokens,这种弹性和自由,简直有点让人瞠目结舌。汉语不仅是裸奔的语言,也是有相当程度随心所欲语序的语言。超出想象的语序弹性其实是裸奔的表现之一,思维里什么概念先出现,就直接蹦出来。而且汉语不仅没有(严格意义的)形态,小词这种形式也常常省略,是一种不研究它会觉得不可思议的语言。它依赖隐性形式比依赖显性形式更多,来达到交流。这对 NLP 和 parsing 自然很不利,但是对人并不构成大负担。

刘:
首先,语序变化以后意义发生变化,不说明语序自由,相反,正说明语序不自由。语序传达了意义。其次,语序变化以后要加词才能成立(鱼我吃了)也正好说明语序不自由。再者,这种简单的句子不说明汉语普遍语序自由。在绝大部分清晰下,汉语都是svo结构,个别情况下需要特别强调o的时候,可以把o放到最前面。语序自由的前提,是通过词尾变化明确了词在句子中的功能,这样的话,主谓宾不管怎么交换顺序,都不会搞混,所以语序自由。没有形态变化,不可能真正语序自由。
“小王打小张”,语序就不能随便调整。
“我爱思考”,“我思考爱”,意思完全不一样

我:
这要看你怎么定义语序自由了。你给的定义是针对格变语言做的,有宾格的语言,等于是把句法关系浓缩了标给了充当角色的词,它跑到哪里都是宾语是题中应有之意。但语序自由的更标准和开放的定义不是这样的,如果 SVO 是基本的语序,凡是与它相左的语序的可能性,就是语序自由,研究的是其自由度。这种可能性的存在就证实了我们在理解语言的时候,或者机器在做 parse 的时候,必须要照顾这种 linear order 的不同,否则就 parse 不了,就抓不住语序自由的表达。不能因为一种相左的语序,由于词选的不同,某个可能语序不能实现,来否定那种语序自由的可能性和现实性。

退一步说,你的语序自由是 narrow definition, 我们也可以从广义来看语序自由,因为这种广义是客观的存在,这种存在你不对付它就不能理解它。就说 “小王打小张”,SVO 似乎不能变化。但是 “小张小王打不过” 就是 OSV,不能因为这个变式有一个补语的触发因素,来否定语序的确改变了。pattern 必须变换才能应对这种词序的改变。

最后,汉语与英语的对比,更说明了汉语的语序自由度大于英语,否则不能解释为什么汉语缺乏形态,反而比形态虽然贫乏但是比汉语多一些形态的英语,表现出更多的语序自由。“鱼我吃了” 和 “我鱼吃了” 是一个 minimal pair,它所标示的语序自由的可能性,是如此显然。人在语序自由的时候仍然可以做句法语义的理解,说明了形态虽然是促进自由的一个重要因素,但不会是唯一的因素。隐性形式乃至常识也可以帮助语序变得自由。

“打小张小王不给力。”(这是VOS。。。)
“打老张小王还行。”

刘:
这两个句子里面“打”都是小句谓语,不是主句谓语。主句谓语是“给力”和“还行”。例子不成立。

我:
影响语序自由的,形态肯定是重要因素,其他的语言形式也有作用。小句也不好 主句也好,SVO 的逻辑语义在那里,谁打谁?我们在说SVO语序自由这个概念的时候,出发点是思维里的逻辑语义,就是谁打谁,然后考察这个谁1 和 谁2,在语言的 surface form 里面是怎样表达的,它们之间的次序是怎样的。。

刘:
这就强拧了。这么说the apple he ate is red. 也是osv了?apple he ate的逻辑关系在哪里。这么说英语也可以osv了?

我:
不错,那就是地地道道的 OSV:谁吃什么,现在这个【什么】 跑到 【谁】 和 “ate” 的前面去了,底层的逻辑语义不变,表层次序不同了。

说英语是 svo 语言,这种说法只是一种标签,并不代表英语只允许这个词序。英语的SVO 6 种语序中,前面说了,有两种合法常见,其他四种基本不合法。

刘:
如果你对语序自由是这样定义的话,那英语也是语序自由了。

我:
不是的。只能说语序自由度。英语的语序自由度还是不如汉语。汉语的语序自由度不如世界语,也不如俄语。世界语的语序自由度不亚于俄语,虽然俄语的形态比世界语丰富。

刘:
那我们不必争论了,我们对语序自由这个概念的定义不一样。

我:
不错,这是定义的问题。我的定义是广义一些。你的定义窄。

刘:
按照你的定义:Eating the apple he smiled. 英语还可以VOS

白:
beat him as much as I can
总而言之S是从相反方向填它的坑

禹:
俄语的我吃鱼这么多种语序也可以?当真现实就是这么用吗?

易:
@禹 俄语的语序确实很灵活,尤其在口语体中,但意思不会变,因为名词有六个格,施受关系基本不会乱。

白:
日语里面有个名句:きしやのきしやはきしやにきしやできしやえきしやした
除了动词,其他成分的位置也是各种挪来挪去

刘:
@白硕 这个日语句子什么意思啊?

白:
贵社的记者坐火车朝着贵社打道回府了
考验日语输入法的经典例子,流传了将近百年
据说是电报引入日本不久的事情
这么个拼音电文,没人知道啥意思
跟赵元任发明一音节文,有得一拼
格标记本来就是给语序重定向的,所以不在乎原来语序也是情理之中。
如果汉语的“把”“被”“给”“用”“往”一起招呼,也可以不在乎语序的。
被张三 把李四 在胡同里 打了个半死……

我:
广义说 介词也是格 也是形态,格通常是词尾形式,介词的本质却是一样的。
“被” 是主格,“给” 是与格,“用” 是工具格。

禹:
俄语格的问题,有没有需要三四阶语法模型才能确定的还是基本上就是看之前的动词或名词的类别

我:
格就是parsing依赖的形式条件之一。形态丰富一些的语言 parsing 难度降低
不需要过多依赖上下文条件。

 

【相关】

【语义计算:汉语语序自由再辩】

泥沙龙笔记:汉语就是一种“裸奔” 的语言

泥沙龙笔记:漫谈语言形式

关于 parsing

【关于中文NLP】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

中文parsing:语义模块大有可为

白:
“放在行李架上的行李,请您确认已摆放稳妥。”----高铁的词儿。

我:
t0812a

t0812b
二者应该是等价的,现在接近了,还没等价。
想等价的话,条件已经具备:确认这样的词的前S(主语)与其后的OPred(动词性宾语),勾搭上,成为逻辑主谓,这是语义中间件很容易做的,因为条件清晰。
如果追求极致,那就动一下手术:(1)断掉原先的主谓(行李与确认);(2)建立新的主谓 (行李与摆放);(3)断掉原先的 OPred(谓词性宾语);(4)代之以 O-S(宾语从句)。这个也合情合理,条件同样清晰。
如果追求极致的极致,再进一步在主谓关系上加一层逻辑动宾关系,“摆放”的宾语是“行李”。这个可以在“摆放”上做,但必须在新的主谓确立以后再做,可做,稍微有点tricky。

t0812c

Hey @白老师报告,毛主席保证:
mission impossible accomplished in semantics module
中间件大有可为。现在要做一下regressions测试了。
极致的极致,不能如此得来全不费工夫吧。

白:
“坐在座位上的旅客,请您确认您的安全带已扣好系紧。”

我:
t0812f
真要扑哧一笑了:
“好系紧”
大概当成广东话了,曾经把广东话揉进了系统。
不管那个,整体架构在轨道上,宾语从句 O-S 和前面的定语从句 Mod-S。
追求极致的话,“旅客”和“你”是同位语。但是,因为“请你VP”用得太多,而且其中的“你”常常省略,因此parsing根本就不理会你的存在,你没有地位,就是祈使句的默认(这里的祈使句标志是小词 “请”)。因此旅客无需与那个子虚乌有的“你”做同位语了,做主语就好了。
应该是无可挑剔了吧(除了句末的广东话疑似)。

白:
“放在座位前方的说明书,请您确认已看过读懂。”
“走在前方道路上的行人,请您确认跟照片上是同一个人。”

我: 白老师 得寸进尺呢。

t0812gt0812h

“看说明书” 与 “看书” 同属于搭配,这个还可以debug一下,本来应该勾搭上的。
“确认” 与 “是” 断链子了,不过 “是” 与其他动词不同,不是好缠的主儿,不敢轻易动它。

白:
这个时候还是有点念老乔的好。甭管多少层谓词,只要一个必填的坑没填,而外边C-command位置上跟它配型,基本就是它了。就是说,主语(话题)部分的中心词一旦与谓语部分的自由坑配型,就可解释为移位。比同位结构还来得优先

我:
语义中间件 continues,逻辑SVO补全:
t0813a

t0813b

宋:
【转发】周末开心一刻!
中国有两项比赛大家基本不用看,也不用担心:一个是乒乓球,一个是男足。
前者是“谁也赢不了”,后者是“谁也赢不了”!(外国人看不懂,咱们也不告诉他)

白:
太多处见到宋老师转的这个段子。这不是一个句法问题,两个分析结果在句法上都成立。关键是语用。要想正确理解,要明白:(1)有歧义结构的句式连用两次且都指向其中同一种结构,在修辞上是非常乏味的。(2)这两个结构分别描述了竞技能力水平的两个极端。(3)进入同一个句式的差异部分的所指如果恰好处于这两个极端,可以构成一个完美的段子(结构急转弯伴随价值评判急转弯)。(4)常识(或大数据)支持第(3)条。

我:
谁也赢不了 / 谁都赢不了 入词典,两个义项:1 必赢;2 必输
歧义保留到底。

0816a

“打败”也有两个义项,不过条件清晰一些:
(1)有句法主语没宾语:被打败
(2)主宾俱全,“打赢”
中国男足打败了
中国乒乓球打败了瑞典

0816b

我:
想起这句“成语”:毛主席保证!
“毛主席”不是“保证”的【施事】,而是“保证”的【对象】。
尽管处于绝对标准的主语位置。历史大概是,原来有介词“向”的,后来说得常了,于是省略小词,有意造成似歧义但语用无歧义的效果,显得别致,结果就传播开了。如今只好词典绑架死记了。
什么叫似歧义语用无歧义?
从句法上看并无歧义,似乎只能是主语。但从语用上看,先王毛何等高高在上,皇帝是不用向子民“保证”任何事的,只有蚁民向他保证或效忠(文革时有早请示晚汇报)。
其实,严格说,这个向先王的保证是做给对方看的,真正的对象是说话的对方。但经过向先王的保证,就赋予了这种保证一种特别的严肃(实际是转化为滑稽了)的效果:君子无戏言,对君子的保证更不敢戏言。
这两天做语义中间件的逻辑语义补全,有些着魔,总琢磨这事儿。昨天想,逻辑语义的前辈董老师一辈子琢磨它,该是怎么个心态和功力呢。是不是看自然语言达到了穿透一切形式,无申报直达语义的境界?

 

【相关】

关于 parsing

【关于中文NLP】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

从汉语Topic句式谈起

再谈汉语的 Topic 句式,这玩意儿说到底就是句法偷懒:不求甚解,凡是句首看上去像个实词的,贴个discourse意味上的标签 Topic 完事儿。管它逻辑语义上究竟是扮演什么角色,怎样达成深度的理解。说得难听一点儿,这就是汉语文法“耍流氓”。

宋老师的例子:
“吃苦他在前”--> Topic【吃苦】Subj【他】Pred【在前】
这就交差了,句法算及格了。
更常见的其实是:“他吃苦在前”。 分析起来,也是一个套路:
“他吃苦在前”-->Topic【他】Subj【吃苦】Pred【在前】。

“他学习好” 也是如此,话题是某个人(“他”),说的是他的弱点:什么地方(aspect)好(evaluation)。“学习【,】他好”(不用逗号亦可,但有歧义:【学习他】好。)。话题是 “学习”这事儿,说的是哪些人(subset)这方面好(evaluation)。

英语大概是: he is good in study;his study is good; he studies well

逻辑语义呢,似乎有这几个关系:
(1)他(big object)好;(2)学习(small object)好;(3)他学习。

人无完人。一个人的一个方面好了,就可以说这个人(整体)好,好的所在(优点,pros)就是部分。这是整体与部分的相互关系。缺点(cons)亦然,如:
iPhone 屏幕不好。
细节是屏幕的不如人意,但是屏幕(部分)不好,也就影响了iPhone(整体)的评价,所以也是 iPhone 不好。

说来归齐,就是 Topic 做句法的第一步没问题,但不是句法语义的终点。更像是偷懒,或者桥梁,最终要达到(1)(2)(3)才算完事儿。无论“iPhone屏幕不行”还是“屏幕iPhone不行”,无论中文英文,表达法可以不同,最终的逻辑归结点应该是一致的,大体上就是123。思考一下英语没有话题句式但用了至少三种其他的表达式(如上所述),想想这些表达式最终怎么归化到逻辑的123,是非常有意思和启迪的。

句法分析或逻辑语义上的123,最终要落地到语用去支持应用。语用上的定义可以依据应用层面的情报需求。下面是我们目前的自动句法分析及其相关的 sentiment analysis 的语用表达:

0815d

 

【相关】

关于 parsing

【关于中文NLP】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

一日一parsing:“宝宝的经纪人睡了宝宝的宝宝 ..."

bai:
宝宝的经纪人睡了宝宝的宝宝,宝宝不知道宝宝的宝宝是不是宝宝亲生的宝宝,宝宝的宝宝为什么要这样对待宝宝!宝宝真的很难过!宝宝现在最担心的是宝宝的宝宝是不是宝宝的宝宝,如果宝宝的宝宝不是宝宝的宝宝那真的吓死宝宝了。

tan:
这种八卦,估计很难分析。 难为parse这个宝宝了!

姜:
里边的歧义真是不少啊!要仔细用心才能理解每个“宝宝”的含义!
宝宝1:王宝强;宝宝2:王宝强媳妇;宝宝3:王宝强媳妇的儿子;宝宝4:王宝强的儿子

我:
结构上看还是蛮清晰的,有些人看上去类似绕口令的话语,结构分析的挑战其实不大

0814a

0814b

0814c

刘:
@wei 这主要不是parsing的问题,主要是指代消解的问题

我:
是的,我是说parsing提供结构的基础不难, 语义模块怎么消解指代是另外的问题。很多人以为这玩意儿没法 parsing,是因为对句法和语义的模块和功能不甚了解。当然一般人心目中的 parsing 等于 understanding,是结合了句法、语义甚至语用的整体的系统。
一步一步来吧。打下一个坚实的结构基础总是有利的。
我是 native speaker,其实也看不懂,不知道里面宝宝指的都是谁。刚才上网恶补了一下新闻,才明白怎么回事儿。所以,这里的指代消解需要很多语用背景知识,光句法语义分析不能解析的。

白:
这么快段子就来了:王宝强去马场选了一匹马准备骑,这时候马场的师傅阻止了他,说选的这个马不好。宝强问为啥?师傅解释说:“这马容易劈腿。” 宝强没有听太明白,师傅又大声说:“这马蓉易劈腿啊!!”?

我:
这是白老师先前转的,还是也 parse parse 凑齐一段吧:

814d

814e

814f

雷: 宝宝的宝宝是宝宝的吗?

我: 最多也只能提供可能性,然后语用或背景知识去定。
从词典上,“宝宝(Baby)”的可能性是:(1)孩子;(2)爱人
至于宝宝指王宝强,那是抽风似的娱乐界当前的背景知识,此前此后都没有这个知识。

白: 名字里带“宝”字的都有可能
之前宝宝的称号还被赋予过仰望星空那位大人物 是有先例的

我: 这样每一个宝宝就有三个义项: 宝宝1 (孩子),宝宝2 (爱人),宝宝3 (宝强)

孩子的孩子是孩子吗
爱人的爱人是爱人吗
宝强的宝强是宝强吗
孩子的爱人是孩子吗
孩子的爱人是爱人吗
孩子的爱人是宝强吗
孩子的宝强是孩子吗
孩子的宝强是爱人吗
孩子的宝强是宝强吗
爱人的孩子是孩子吗
爱人的孩子是爱人吗
爱人的孩子是宝强么
.........

总之,逃不过这些爆炸的组合之一
加一点限制条件可以排除一些不可能组合,但留下的空间还是远远大于可以离开新闻背景知识而能消解的可能。

雷: 还有,现在还流行自称“宝宝”,比如,宝宝不高兴

白: 没那么复杂。“【孩子】是【男人】的吗?”才是唯一有看点的提问。其他都是渣。

我: 人不看新闻也解不了,反正我第一次看,完全不知所云。

雷: 还有,宝马之争

我: 宝强的孩子是宝强(亲生)的吗

雷: 宝强的老婆是宝强的吗?

我: 恩,这两条是关键,怎么从成堆的渣里面提炼出这两条?
通过什么样的知识?
这不是新闻背景知识了,这是人类道德在现阶段的扭曲和窥探欲的某种知识

白:
不是窥探欲的问题,是信息量、冲击力大小的问题。

雷: 孩子的爸爸是孩子的吗?

我: 孩子的爸爸是孩子的吗? 这个可能只在想象中成立,想象孩子把自己的爸爸叫做宝宝,孩子有这种探究的动机,等。

雷: 第三方看,也是可以的

 

【相关】

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

关于 parsing

【关于中文NLP】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

On Recall of Grammar Engineering Systems

After I showed the benchmarking results of SyntaxNet and our rule system based on grammar engineering, many people seem to be surprised by the fact that the rule system beats the newest deep-learning based parser in data quality.  I then got asked many questions, one question is:

Q: We know that rules crafted by linguists are good at precision, how about recall?

This question is worth a more in-depth discussion and serious answer because it touches the core of the viability of the "forgotten" school:  why is it still there? what does it have to offer? The key is the excellent data quality as advantage of a hand-crafted system, not only for precision, but high recall is achievable as well.

Before we elaborate, here was my quick answer to the above question:

  • Unlike precision, recall is not rules' forte, but there are ways to enhance recall;
  • To enhance recall without precision compromise, one needs to develop more rules and organize the rules in a hierarchy, and organize grammars in a pipeline, so recall is a function of time;
  • To enhance recall with limited compromise in precision, one can fine-tune the rules to loosen conditions.

Let me address these points by presenting the scene of action for this linguistic art in its engineering craftsmanship.

A rule system is based on compiled computational grammars.  A grammar is a set of linguistic rules encoded in some formalism.  What happens in grammar engineering is not much different from other software engineering projects.  As knowledge engineer, a computational linguist codes a rule in a NLP-specific language, based on a development corpus.  The development is data-driven, each line of rule code goes through rigid unit tests and then regression tests before it is submitted as part of the updated system.  Depending on the design of the architect, there are all types of information available for the linguist developer to use in crafting a rule's conditions, e.g. a rule can check any elements of a pattern by enforcing conditions on (i) word or stem itself (i.e. string literal, in cases of capturing, say, idiomatic expressions), and/or (ii) POS (part-of-speech, such as noun, adjective, verb, preposition), (iii) and/or orthography features (e.g. initial upper case, mixed case, token with digits and dots), and/or (iv) morphology features (e.g. tense, aspect, person, number, case, etc. decoded by a previous morphology module), (v) and/or syntactic features (e.g. verb subcategory features such as intransitive, transitive, ditransitive), (vi) and/or lexical semantic features (e.g. human, animal, furniture, food, school, time, location, color, emotion).  There are almost infinite combinations of such conditions that can be enforced in rules' patterns.  A linguist's job is to use such conditions to maximize the benefits of capturing the target language phenomena, through a process of trial and error.

Given the description of grammar engineering as above, what we expect to see in the initial stage of grammar development is a system precision-oriented by nature.  Each rule developed is geared towards a target linguistic phenomenon based on the data observed in the development corpus: conditions can be as tight as one wants them to be, ensuring precision.  But no single rule or a small set of rules can cover all the phenomena.  So the recall is low in the beginning stage.  Let us push things to extreme, if a rule system is based on only one grammar consisting of only one rule, it is not difficult to quickly develop a system with 100% precision but very poor recall.  But what is good of a system that is precise but without coverage?

So a linguist is trained to generalize.  In fact, most linguists are over-trained in school for theorizing and generalization before they get involved in software industrial development.  In my own experience in training new linguists into knowledge engineers, I often have to de-train this aspect of their education by enforcing strict procedures of data-driven and regression-free development.  As a result, the system will generalize only to the extent allowed to maintain a target precision, say 90% or above.

It is a balancing art.  Experienced linguists are better than new graduates.  Out of  explosive possibilities of conditions, one will only test some most likely combination of conditions based on linguistic knowledge and judgement in order to reach the desired precision with maximized recall of the target phenomena.  For a given rule, it is always possible to increase recall at compromise of precision by dropping some conditions or replacing a strict condition by a loose condition (e.g. checking a feature instead of literal, or checking a general feature such as noun instead of a narrow feature such as human).  When a rule is fine-tuned with proper conditions for the desired balance of precision and recall, the linguist developer moves on to try to come up with another rule to cover more space of the target phenomena.

So, as the development goes on, and more data from the development corpus are brought to the attention on the developer's radar, more rules are developed to cover more and more phenomena, much like silkworms eating mulberry leaves.  This is incremental enhancement fairly typical of software development cycles for new releases.  Most of the time, newly developed rules will overlap with existing rules, but their logical OR points to an enlarged conquered territory.  It is hard work, but recall gradually, and naturally, picks up with time while maintaining precision until it hits long tail with diminishing returns.

There are two caveats which are worth discussing for people who are curious about this "seasoned" school of grammar engineering.

First, not all rules are equal.  A non-toy rule system often provides mechanism to help organize rules in a hierarchy for better quality as well as easier maintenance: after all, a grammar hard to understand and difficult to maintain has little prospect for debugging and incremental enhancement.  Typically, a grammar has some general rules at the top which serve as default and cover the majority of phenomena well but make mistakes in the exceptions which are not rare in natural language.  As is known to all, naturally language is such a monster that almost no rules are without exceptions.  Remember in high school grammar class, our teacher used to teach us grammar rules.  For example, one rule says that a bare verb cannot be used as predicate with third person singular subject, which should agree with the predicate in person and number by adding -s to the verb: hence, She leaves instead of *She leave.  But soon we found exceptions in sentences like The teacher demanded that she leave.  This exception to the original rule only occurs in object clauses following certain main clause verbs such as demand, theoretically labeled  by linguists as subjunctive mood.  This more restricted rule needs to work with the more general rule to result in a better formulated grammar.

Likewise, in building a computational grammar for automatic parsing or other NLP tasks, we need to handle a spectrum of rules with different degrees of generalizations in achieving good data quality for a balanced precision and recall.  Rather than adding more and more restrictions to make a general rule not to overkill the exceptions, it is more elegant and practical to organize the rules in a hierarchy so the general rules are only applied as default after more specific rules are tried, or equivalently, specific rules are applied to overturn or correct the results of general rules.  Thus, most real life formalisms are equipped with hierarchy mechanism to help linguists develop computational grammars to model the human linguistic capability in language analysis and understanding.

The second point that relates to the topic of recall of a rule system is so significant but often neglected that it cannot be over-emphasized and it calls for a separate writing in itself.  I will only present a concise conclusion here.  It relates to multiple levels of parsing that can significantly enhance recall for both parsing and parsing-supported NLP applications.  In a multi-level rule system, each level is one module of the system, involving a grammar.  Lower levels of grammars help build local structures (e.g. basic Noun Phrase), performing shallow parsing.  System thus designed are not only good for modularized engineering, but also great for recall because shallow parsing shortens the distance of words that hold syntactic relations (including long distance relations) and lower level linguistic constructions clear the way for generalization by high level rules in covering linguistic phenomena.

In summary, a parser based on grammar engineering can reach very high precision and there are proven effective ways of enhancing its recall.  High recall can be achieved if enough time and expertise are invested in its development.  In case of parsing, as shown by test results, our seasoned English parser is good at both precision (96% vs. SyntaxNet 94%) and recall (94% vs. SyntaxNet 95%, only 1 percentage point lower than SyntaxNet) in news genre, and with regards to social media, our parser is robust enough to beat SyntaxNet in both precision (89% vs. SyntaxNet 60%) and recall (72% vs. SyntaxNet 70%).

 

[Related]

Is Google SyntaxNet Really the World’s Most Accurate Parser?

It is untrue that Google SyntaxNet is the “world’s most accurate parser”

R. Srihari, W Li, C. Niu, T. Cornell: InfoXtract: A Customizable Intermediate Level Information Extraction Engine. Journal of Natural Language Engineering, 12(4), 1-37, 2006

K. Church: A Pendulum Swung Too Far, Linguistics issues in Language Technology, 2011; 6(5)

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

Pride and Prejudice of NLP Main Stream

On Hand-crafted Myth and Knowledge Bottleneck

Domain portability myth in natural language processing

Introduction of Netbase NLP Core Engine

Overview of Natural Language Processing

Dr. Wei Li’s English Blog on NLP

 

 

It is untrue that Google SyntaxNet is the "world’s most accurate parser"

As we all know, natural language parsing is fairly complex but instrumental in Natural Language Understanding (NLU) and its applications.  We also know that a breakthrough to 90%+ accuracy for parsing is close to human performance and is indeed an achievement to be proud of.  Nevertheless, following the common sense, we all have learned that you got to have greatest guts to claim the "most" for anything without a scope or other conditions attached, unless it is honored by authoritative agencies such as Guinness.  For Google's claim of "the world's most accurate parser", we only need to cite one system out-performing theirs to prove its being untrue or misleading.  We happen to have built one.

For a long time, we know that our English parser is near human performance in data quality, and is robust, fast and scales up to big data in supporting real life products.  For the approach we take, i.e. the approach of grammar engineering, which is the other "school" from the mainstream statistical parsing, this was just a natural result based on the architect's design and his decades of linguistic expertise.  In fact, our parser reached near-human performance over 5 years ago, at a point of diminishing returns, hence we decided not to invest heavily any more in its further development.  Instead, our focus was shifted to its applications in supporting open-domain question answering and fine-grained deep sentiment analysis for our products, as well as to the multilingual space.

So a few weeks ago when Google announced SyntaxNet, I was bombarded by the news cited to me from all kinds of channels by many colleagues of mine, including my boss and our marketing executives.  All are kind enough to draw my attention to this "newest breakthrough in NLU" and seem to imply that we should work harder, trying to catch up with the giant.

In my mind, there has never been doubt that the other school has a long way before they can catch us.  But we are in information age, and this is the power of Internet: eye-catching news from or about a giant, true or misleading, instantly spreads to all over the world.  So I felt the need to do some study, not only to uncover the true picture of this space, but more importantly, also to attempt to educate the public and the young scholars coming to this field that there have always been and will always be two schools of NLU and AI (Artificial Intelligence).  These two schools actually have their respective pros and cons, they can be complementary and hybrid, but by no means can we completely ignore or replace one by the other.  Plus, how boring a world would become if there were only one approach, one choice, one voice, especially in core cases of NLU such as parsing (as well as information extraction and sentiment analysis, among others) where the "select approach" does not perform nearly as well as the forgotten one.

So I instructed a linguist who was not involved in the development of the parser to benchmark both systems as objectively as possible, and to give an apples-to-apples comparison of their respective performance.  Fortunately, the Google SyntaxNet outputs syntactic dependency relationships and ours is also mainly a dependency parser.  Despite differences in details or naming conventions, the results are not difficult to contrast and compare based on linguistic judgment.  To make things simple and fair, we fragment a parse tree of an input sentence into binary dependency relations and let the testor linguist judge; once in doubt, he will consult another senior linguist to resolve, or to put on hold if believed to be in gray area, which is rare.

Unlike some other areas of NLP tasks, e.g. sentiment analysis, where there is considerable space of gray area or inter-annotator disagreement, parsing results are fairly easy to reach consensus among linguists.  Despite the different format such results are embodied in by two systems (an output sample is shown below), it is not difficult to make a direct comparison of each dependency in the sentence tree output of both systems.  (To be stricter on our side, a patched relationship called Next link used in our results do not count as a legit syntactic relation in testing.)

SyntaxNet output:

1.Input: President Barack Obama endorsed presumptive Democratic presidential nominee Hillary Clinton in a web video Thursday .
Parse:
endorsed VBD ROOT
 +-- Obama NNP nsubj
 |   +-- President NNP nn
 |   +-- Barack NNP nn
 +-- Clinton NNP dobj
 |   +-- nominee NN nn
 |   |   +-- presumptive JJ amod
 |   |   +-- Democratic JJ amod
 |   |   +-- presidential JJ amod
 |   +-- Hillary NNP nn
 +-- in IN prep
 |   +-- video NN pobj
 |       +-- a DT det
 |       +-- web NN nn
 +-- Thursday NNP tmod
 +-- . . punct

Netbase output:
g1

Benchmarking was performed in two stages as follows.

Stage 1, we select English formal text in the news domain, which is SyntaxNet's forte as it is believed to have much more training data in news than in other styles or genres.  The announced 94% accuracy in news parsing is indeed impressive.  In our case, news is not the major source of our development corpus because our goal is to develop a domain-independent parser to support a variety of genres of English text for real life applications on text such as social media (informal text) for sentiment analysis, as well as technology papers (formal text) for answering how questions.

We randomly select three recent news article for this testing, with the following  links.

(1) http://www.cnn.com/2016/06/09/politics/president-barack-obama-endorses-hillary-clinton-in-video/
(2) Part of news from: http://www.wsj.com/articles/nintendo-gives-gamers-look-at-new-zelda-1465936033
(3) Part of news from: http://www.cnn.com/2016/06/15/us/alligator-attacks-child-disney-florida/

Here are the benchmarking results of parsing the above for the news genre:

(1) Google SyntaxNet:  F-score= 0.94
(tp for true positive, fp for false positive, tn for true negative;
P for Precision, R for Recall, and F for F-score)

P = tp/(tp+fp) = 1737/(1737+104) = 1737/1841 = 0.94
R = tp/(tp+tn) = 1737/(1737+96) = 1737/1833 = 0.95
F= 2*[(P*R)/(P+R)] = 2*[(0.94*0.95)/(0.94+0.95)] = 2*(0.893/1.89) = 0.94

(2) Netbase parser:  F-score = 0.95

P = tp/(tp+fp) = 1714/(1714+66) = 1714/1780 = 0.96
R = tp/(tp+tn) = 1714/(1714+119) = 1714/1833 = 0.94
F = 2*[(P*R)/(P+R)] = 2*[(0.96*0.94)/(0.96+0.94)] = 2*(0.9024/1.9) = 0.95

So the Netbase parser is about 2 percentage points better than Google SyntaxNet in precision but 1 point lower in recall.  Overall, Netbase is slightly better than Google in the precision-recall combined measures of F-score.  As both parsers are near the point of diminishing returns for further development, there is not too much room for further competition.

Stage 2, we select informal text, from social media Twitter to test a parser's robustness in handling "degraded text": as is expected, degraded text will always lead to degraded performance (for a human as well as a machine), but a robust parser should be able to handle it with only limited degradation.  If a parser can only perform well in one genre or one domain and the performance drastically falls in other genres, then this parser is not of much use because most genres or domains do not have as large labeled data as the seasoned news genre.  With this knowledge bottleneck, a parser is severely challenged and limited in its potential to support NLU applications.  After all, parsing is not the end, but a means to turn unstructured text into structures to support semantic grounding to various applications in different domains.

We randomly select 100 tweets from Twitter for this testing, with some samples shown below.

1.Input: RT @ KealaLanae : ?? ima leave ths here. https : //t.co/FI4QrSQeLh2.Input: @ WWE_TheShield12 I do what I want jk I ca n't kill you .10.Input: RT @ blushybieber : Follow everyone who retweets this , 4 mins?

20.Input: RT @ LedoPizza : Proudly Founded in Maryland. @ Budweiser might have America on their cans but we think Maryland Pizza sounds better

30.Input: I have come to enjoy Futbol over Football ⚽️

40.Input: @ GameBurst That 's not meant to be rude. Hard to clarify the joke in tweet form .

50.Input: RT @ undeniableyella : I find it interesting , people only talk to me when they need something ...

60.Input: Petshotel Pet Care Specialist Jobs in Atlanta , GA # Atlanta # GA # jobs # jobsearch https : //t.co/pOJtjn1RUI

70.Input: FOUR ! BUTTLER nailed it past the sweeper cover fence to end the over ! # ENG - 91/6 -LRB- 20 overs -RRB- . # ENGvSL https : //t.co/Pp8pYHfQI8

79..Input: RT @ LenshayB : I need to stop spending money like I 'm rich but I really have that mentality when it comes to spending money on my daughter

89.Input: RT MarketCurrents : Valuation concerns perk up again on Blue Buffalo https : //t.co/5lUvNnwsjA , https : //t.co/Q0pEHTMLie

99.Input: Unlimited Cellular Snap-On Case for Apple iPhone 4/4S -LRB- Transparent Design , Blue/ https : //t.co/7m962bYWVQ https : //t.co/N4tyjLdwYp

100.Input: RT @ Boogie2988 : And some people say , Ethan 's heart grew three sizes that day. Glad to see some of this drama finally going away. https : //t.co/4aDE63Zm85

Here are the benchmarking results for the social media Twitter:

(1) Google SyntaxNet:  F-score = 0.65

P = tp/(tp+fp) = 842/(842+557) = 842/1399 = 0.60
R = tp/(tp+tn) = 842/(842+364) = 842/1206 = 0.70
F = 2*[(P*R)/(P+R)] = 2*[(0.6*0.7)/(0.6+0.7)] = 2*(0.42/1.3) = 0.65

Netbase parser:  F-score = 0.80

P = tp/(tp+fp) = 866/(866+112) = 866/978 = 0.89
R = tp/(tp+tn) = 866/(866+340) = 866/1206 = 0.72
F = 2*[(P*R)/(P+R)] = 2*[(0.89*0.72)/(0.89+0.72)] = 2*(0.64/1.61) = 0.80

For the above benchmarking results, we leave it to the next blog for interesting observations and more detailed illustration, analyses and discussions.

To summarize,  our real life production parser beats Google's research system SyntaxtNet in both formal news text (by a small margin as we both are already near human performance) and informal text, with a big margin of 15 percentage points.  Therefore, it is safe to conclude that Google's SytaxNet is by no means "world’s most accurate parser", in fact, it has a long way to get even close to the Netbase parser in adapting to the real world English text of various genres for real life applications.

 

[Related]

Is Google SyntaxNet Really the World’s Most Accurate Parser?

Announcing SyntaxNet: The World’s Most Accurate Parser Goes Open

K. Church: "A Pendulum Swung Too Far", Linguistics issues in Language Technology, 2011; 6(5)

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

Introduction of Netbase NLP Core Engine

Overview of Natural Language Processing

Dr. Wei Li's English Blog on NLP

 

Is Google SyntaxNet Really the World's Most Accurate Parser?

Google is a giant and its marketing is more than powerful.  While the whole world was stunned at their exciting claim in Natural Language Parsing and Understanding, while we respect Google research and congratulate their breakthrough in statistical parsing space, we have to point out that their claim in their recently released blog that that SyntaxNet is the "world’s most accurate parser" is simply not true.  In fact, far from truth.

The point is that they have totally ignored the other school of NLU, which is based on linguistic rules, as if it were non-existent.  While it is true that for various reasons, the other school is hardly presented any more in academia today due to the  mainstream's dominance by machine learning (which is unhealthy but admittedly a reality, see Church's long article for a historical background of this inbalance in AI and NLU:  K. Church: "A Pendulum Swung Too Far"), any serious researcher knows that it has never vanished from the world, and it actually has been well developed in industry's real life applications for many years, including ours.

In the same blog, Google mentioned that Parsey McParseface is the "most accurate such model in the world",  with model referring to "powerful machine learning algorithms".  This statement seems to be true based on their cited literature review, but the equating this to the "world's most accurate parser" publicized in the same blog news and almost instantly disseminated all over the media and Internet is simply irresponsible, and misleading at the very least.

In the next blog of mine, I will present an apples-to-apples comparison of Google's SyntaxNet with the NetBase deep parser to prove and illustrate the misleading nature of Google's recent announcement.

Stay tuned.

 

[Related]

It is untrue that Google SyntaxNet is the “world’s most accurate parser”

Announcing SyntaxNet: The World’s Most Accurate Parser Goes Open

K. Church: "A Pendulum Swung Too Far", Linguistics issues in Language Technology, 2011; 6(5)

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

Introduction of Netbase NLP Core Engine

Overview of Natural Language Processing

Dr. Wei Li's English Blog on NLP

 

 

【没有翻不了的案子,兼论专家vs学习的现状】

白:
分层不是要害,one way才是

我:

什么叫 one way? 没有不可推翻的。原则上讲,如果某个现象足够突出,值得去做,NLP 就没有翻不了的案子。连毛太祖钦定的文化大革命都全面否定、彻底翻案了。

Parsing的分层设计本身隐含了语言学的流程和算法,但与一切的语言学规则一样,规则的背后就是例外。只不过规则及其例外构成的 hierarchy 在同一层表现,而分层的例外则在 pipeline(管式)中处置。经常是做几层 就加一层 patching 做例外处置或修正,也有留到最后通过【词驱动】(word-driven)去唤醒的。词驱动不单单是词,可以是任意可能 trigger 歧义休眠及其唤醒的 ngram。(非词驱动的唤醒,如果需要,还需要研究,目前不太清晰。)但凡是可以词驱动的,问题就不大,因为词驱动聚焦了特定的歧义现象,错误的 parse 在聚焦为有限子树patterns以后是可以预计的,当然也就可以修正。错误不怕,就怕错误不可预测。可预测的 consistent 的错误,在管式架构下不是挑战,不必担心其 error propagation,如果设计者具有“负负得正”的准备和机制的话。

白:
唤醒的ngram再进一步,就是一个CNN了。parsing用明网RNN,休眠唤醒用暗网CNN。相得益彰啊。

我:
听上去高大上,cnn fox abc 呵呵

白:
多层卷积

我:

我骨子里是相信数据的,相信大数据的自动学习,因为太多的语言细节隐含其内,终归是可以挖掘出来帮助parsing和理解的。但不大相信短期内可以改天换地,匹敌专家的经验积累。

syntaxnet 已经被我剁成稀泥了。但同时也注意到 statistical parsing 的精度在最成熟的文体 news 方面,很多年 stuck 在 80 以下,syntaxnet 确实突破了 90,这个成就让他们忘乎所以一把、吹点不符合实际的牛也是情有可原的,虽然多年前我们就把规则系统做到了 90 以上的parsing精度,当时的感觉是理所当然,貌似苦力不值得弹冠相庆(不是蛮力,当然也不可能仅仅是力气活,还有架构者的设计匠心和类似 dark art 一样不可言传的绝技,譬如经年经验加研究而来的 NL“毛毛虫”的formalism及其实现,等等)。没有炫耀,就这么一直默默地领先了“主流”很多年。

虽然仍然无法匹敌规则系统,但深度神经的运用的确使得统计型parser有了新闻领域内的90的突破。很好奇他们如今用了多大的训练库,还用了什么 tricks(据报道行内达人声称真正能玩转深度神经系统的大牛全世界不过百人,因为里面不仅仅是科学,还是 art),其他人多快可以重复结果?最后的大问题是,cnn rnn 等深度神经的牛算法,多快可以移植到新的文体、新的domain和新的语言,这种成功移植的最低条件(譬如最少需要多大的带标数据)是什么。未来的某个时候,如果新的文体新的语言,就像流水线一样,可以高质量快速自动学习出来一个个可应用的 parser 出来,语言学专家们也就死得其所,可以安然地“永垂不朽”了。

不过,在共产主义神经大同真能实现之前,专家还不愁饭碗。

在 parsing 这个NLP核心任务方面,要赶上专家的系统质量也并非易事,因为专家的系统已经证明可以做到非常接近人的分析水平,而且文体和领域独立,鲁棒、线速且可以 scale up,这对学习有诸多挑战。Deep parsing,专家一边是 production system,已经达到实用的高度,学习一边还是 research 在努力追赶,这就是 parsing 质量的现状。可很多人误导或被误导,把深度神经未来可能的成功当成现实或铁定,完全无视专家系统现实的存在。

 

【相关】

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

【泥沙龙笔记:语法工程派与统计学习派的总结】

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

[转载]【白硕 – 穿越乔家大院寻找“毛毛虫”】

【科研笔记:NLP “毛毛虫” 笔记,从一维到二维】

NLP 是一个力气活:再论成语不是问题

【科普随笔:NLP主流的傲慢与偏见】

关于NLP方法论以及两条路线之争】 专栏:NLP方法论

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

【语义计算群:句法语义的萝卜与坑】

白:
张三对李四的批评一针见血。
张三对李四的批评置若罔闻。

梁:
白老师,这个挑战绝了,第一个是,张三批评李四,第二个是李四批评张三。

我: 白老师这个 minimal pair 是语言学的绝配样例。顺着它,可以 illustrate 一车的“萝卜与坑”的语言学:subcat 怎样工作,如何竞争,以及句法句型的的逻辑语义落地。这是语言学的魅力。我们先来 parse 一下,然后尝试做解读。

t0708b

谁一针见血,谁置若罔闻,都是张三(S)。我们先看两句的总体句子架构,然后再论内层的逻辑谓词“批评”的句法逻辑语义。“一针见血”是不及物动词,只有主语一个坑,可以是人 也可以是观点类抽象名词或动作类的语词;“置若罔闻”有主语宾语两个坑,但这个成语性的语词谓语,其宾语在汉语句法(subcat pattern)中要求PP(对),而不是后置NP,置若罔闻的主语坑必须是 human,最多推广到 法人(机构、公司等)。
t0708c

“X 一阵见血”,无论 X 是人是物还是动作:

t0708d

“human 对 X 置若罔闻”, 置若罔闻的X无论是物(信息)还是人(指代的仍旧是信息,是指那个人说的话:此乃“闻”的常识语义 ontology 所规定,但为了鲁棒,不必在句法上做这样的语义限制,因为介词“对”已经是一个很好的类似于“格变”的语言显性形式手段了,对于填这个坑已经足够精准了):

t0708f

后一句意思是,张三不把李四的话当话(e.g. 张三逆反)。

接着我们考察一下“批评”的SVO句型,看看S和O的坑在中文是怎样要求和被填的:

t0708g

t0708h

这算是“批评”的三个最基本的 subcat patterns,逻辑语义不变,尽管第二个变式中的表层句法是以PP做状语(Adv)的面貌(和位置)出现,但语义中间件根据变式2的规定可以很容易确认其逻辑宾语(O)的角色。

下面来看汉语中利用“的字结构”的SVO句型变式:e.g.  S对O的V

t0708i

t0708n

t0708j

这是指称性 arg structure,通常用“的”(“之”),于此对应的是英语的动名词NP:
John's criticism of Peter
vs
John's criticism by Peter
Peter's criticism towards/of John
the criticism of John by Peter
the criticism of John towards Peter

可见,英语的 of 几乎与汉语的 “的” 一个臭德行 充满歧义。by 和 towards 就规矩多了。再举几个指称性SVO的例句:

t0708k

t0708l

t0708m

t0708o

如果不是逻辑动词的“意见类”语词,就是 human 对/关于 thing 的 意见,广义的 thing 包含 human:
张三对李四的看法
张三关于时局的一点意见

雷:
这个人不是东西

我:
人不是东西 但可以当东西看 在语义限制的时候 除非特地标明 NOT human,白马是马非马 的辩证法:“张三对李四的意见”。“李四”不是东西 但在这个句型当东西看 因为“意见”没有human逻辑宾语的坑 只有关于万事万物的坑。

梁:
张三对李四的评价很好。--》 评价很好--》评价是主语。
张三对李四的评价无所谓。 ——》 张三无所谓 ——》 张三是主语。
“对”管到哪儿的问题。

我:
到了 意见 的同义词 “看法” 就有趣了:“张三对李四的看法”。
句法上 仍然是 【关于】 万事万物;词法上,这个外化到句法的 pp 实际上是逻辑动词语素 “看” 的逻辑宾语,只不过 在 “看” 与 “法” 合成为黑箱子的词典化过程中,这种深度搭配被遮掩了。必须词典化、黑箱化,因为此法非彼法。只有词典化,才能绑架 “法” 的语义。

“张三对李四的看法”
结构上是
“ 张三 看 李四 的 ‘法’ ”

“法” 不是默认的 method 语义,而是引伸的 perspective 语义,相当于英语的 point 在 viewpoint 或 point of view 中。黑箱的好处是可以把引申语义绑架为本义,英语的 viewpoint 就是用的同一种绑架的招数,否则 point 本身也意义含混。

"John's viewpoint about Peter"
structurally is equivalent to
"John's perspective of (John) viewing Peter"

昨天说过 虽然黑箱化 但在段子里可以休眠唤醒为白箱子:tv 新看法 就是。

总结:今天调试开发了的 unit test 的句子如下,工作成效颇不坏:

张三对李四的批评一针见血。
张三对李四的批评置若罔闻。
张三的批评一针见血。
张三一针见血。
批评一针见血。
张三对批评置若罔闻。
张三对李四置若罔闻。
张三置若罔闻。
张三批评李四
张三对李四批评
张三对李四的批评
张三之批评李四,毫无道理。
张三被李四所批评
张三被李四批评
张三为李四所批评
张三的被批评
李四对他批评
李四对他的批评
张三对李四对他的批评置若罔闻。
李四对他的批评一针见血。
张三对王五对李四的批评置若罔闻。

 

【相关】

tv 新看法

关于 parsing

【关于中文NLP】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

【李白之30:算账先生说,parser 就是个交易系统】

李:

t0702d

陈:
日他,不是应该分析成 日 他

李:
“日他”在我们sentiment中语义是落地了的,社交媒体中表达 negative 情绪的骂人的

白:
伟哥到隔壁做做两个句子

t0702e

t0702f

白:
next有点耍赖

李:
NEXT 不是有点耍赖 是非常耍赖。如今是把 NEXT 作为未来语义中间件的重点改造对象。

白:
人工智能那个,怎么排除另一个“发展”为名词的解释?

李:
怎么排除的?根本就没刻意排除。
现在的问题是,如果不想排除,我可以不可以做,值得不值得做?

白:
有助于人类 和 有助于人工智能  大数据会告诉你

李:
就case论case 我有点怀疑大数据的作用 语感上 是半斤百两:“有助于人类” 和 “有助于人工智能”。即便依照大数据的阈值,走了其中一条 path 也还是很可能与语感或具体的case相左。大数据也只能解决基本分明的现象 大数据对模糊现象不是灵丹。

白:
人类的人工智能,这条路径更弱。

李:
有助于人类的 path 还是可以的。当然 那个如果正确 也是瞎猫撞死耗子。
目前的喧嚣是人工智能可能是坏的 可能毁掉人类 因此下面这个提倡 非常具有霍金盖茨马云般的“高瞻远瞩”:既不排斥科学技术的发展进步 又提出了道德的要求。
MD 听上去都有点像斯大林做学问了:
发展有利于马克思主义的语言学
发展有利于社会主义的生物学
发展有利于人民革命的核武器

白:
“改革有利于中国的持续发展”
看看狗屎运是不是可持续

李:
狗屎运与否,这次是耍了一次流氓:

t0702f

Next 与 Topic 基本等价,所以其实并不坏。
句首的词做 Next 与句首的 Topic 基本都是耍流氓。但是都是可以教育好的,等到语义中间件去教它从良,恋爱结婚生子。

白:
改革不适应时代的陈旧观念。
改革有利于少数人的管理制度。

李:

t0702g

“不” 给拉下了,这是个 bug 很好奇怎么拉下的。不过框架是对的,怎么对的,只能说狗屎运了 因为自己也搞不清。下面这个把“少数人”加入词典后,狗屎运似乎就光临了的样子:
t0702h

白:
需要在边界附近强化蹂躏

白:
改革有利于多数人的公平正义。
指挥没有记熟谱子的队员很没劲。
指挥没有记熟谱子的后果很严重。

李:

t0702i

上面断链了两次 挺不咋样的。

t0702j

t0702k

白:
第一个,队员是指挥的逻辑宾语

李:
还有个 bug 应该不难 de:已经有“谱子”做宾语了,语义中间件还是在逻辑主语(对的)又给加了逻辑宾语(错的)。有一阵子是有意放宽了保持歧义的策略 因为语用的时候有歧义比较好运作。

白:
后果,和行为、事件、消息是一个封闭小类。是在对VP进行“概括”

李:
现在没给这个小类起名字 都是零碎地用一些已有的类别 结果就是有漏掉的 可以考虑加一个 feature 就叫 VdeN,表达的不是宾语 而是其他,譬如同位语。

白:
第二个,指挥根本就是名词

李:
“指挥”是名词,不太好伺候,需要细线条。

白:
前面的“发展”其实也是双性 还有“改革”

李:
我其实不主张把这类归为 POS 歧义 因为这很容易推卸句法的责任 误导人在 POS 里去做句法的事儿 这种教训太多了。后果很严重,尤其对汉语。不说是 POS 双性 而说POS就是V。汉语缺乏形态 基本上逻辑的POS就是语言的POS,不存在动词又是名词的事儿。到了句法,就有了这个动词是自我包裹起来 还是成家生子的区分。闹独身的动词 类似于英语的 gerund,成家生子的动词就是常态的谓语动词了 构成了自身的 arg structure

白:
转指(比如作为人的指挥)的PoS一定是双性。自指(比如作为动作的指挥)的PoS在词法阶段可以保持不变,在句法阶段被强制,有案可查。指称性、陈述性。

李:
“指挥”不论,指挥是 human 当然是名词。说的是 “改革”、“发展”。这样的词强调POS双性无益 而且误导。

白:
这个同意

李:
不知道如今的汉化的PennTree或WordNet 是不是还把它们作为 POS 的歧义来标注。如果是,就是 community 的政策性误导。结果新人就一头钻进去试图在 POS level 去解决这个 POS 歧义,这不是死胡同吗?

白:
所谓被强制,就是强制之后改性。如“这本书的出版”:出版是V,这本书的出版是NP

李:
不错。这些是在 parsing 的过程中解决,而不要归结为一个独立的 POS 问题 或 POS 模块,这是症结。其实 都 NP 了 改不改 POS 已经无所谓了。保证做出 NP 是目的。

白:
这没有问题。
“画穿裙子小人的是女厕所。”

李:
没看懂 不过 parse parse see see:

t0702aaa

一无是处。

当然 作为人脑 我看了几遍了 还是没看懂。
Wait,是标志 ......

白:
这是小学一年级课外读物

李:
画有穿裙子标志的那间是女厕所

白:
还好你的“穿”没做补语

李:
确实没看懂 人脑其实也不咋样。
这样就清楚多了:画了穿裙子的小人的那间是女厕所 于人于机。

t0702m

当然 “那间” 应该是 S 而不是动词 “画” 做主语。定语从句没搞定。
画的是“人”不是“间”。

白:
定语从句对于标配的坑和非标配的坑处理是不同的,前者可以省略“的”的中心语,后者不能省略。
“写了三行字的是作文本,写了两行字的是记事本。”

李:
的字结构作为指代,【定从】中插入“是”,前面的就成了【的字结构】主语,后面成了表语的是哪些?

我看的书 --》 我看的是书
我吃的这家馆子 --》 我吃的是这家馆子
我吃的亏 --》 我吃的就是这个亏。(动宾离合词的搭配需要这个pattern帮助搞定。)

上面的例句因为宾语的坑还在(没有 daturated),还好说。下面的呢?

我写了三行字的作文本 --》 写了三行字的是作文本
我写书的这个屋子 --》 我写书的是这个屋子??
我【在其中 in which】写书的屋子

白:
有些动词处所坑是标配,有些不是。不是的,的后面不能省略

李:
处所标配的动词是 “去”“来”这样的?

白:
这是其中一类

李:
“写书” 没有这个标配,如果带处所也是所有动词都带的状语性质。

白:
还有表示附着、固定的,画、涂、标、钉、挂,都可以。

李:
那是 put 、place 这类 带处所做补足语的。HowNet 里面应该有,这是跨语言的常识要求。

白:
挂两颗星的是中将。

李:
“中将” 与【处所】貌似没关系啊。“挂两颗星的是中将制服”。
“制服” 倒是处所的延伸。

白:
写书和写字不同。写字有附着对象,写书没有。
“写白字的是黑板,写黑字的是白板。”

李:
这个虽然有道理,但确实已经很微妙了 感觉上不大好拿捏。

白:
标配和光杆“的”之间的变换关系有道理?还是“放置、附着、固定”这类subcat带标配处所有道理?
我承认后者很微妙,总结得未必精准,但前者似乎是比较正常的。

李:

t0702n

看看这个parse: 就是说
写白字的是黑板 == 黑板写白字
写黑字的是白板 == 白板写黑字
这个解释几乎可以接受了吧?
至于这个 S 的深层逻辑语义该取个什么名字 暂时不管。

白:
你这白字和黑字不对等哦……

李:
yeh 我也发现了,不知道为啥
知道了:“白字” 词典化了。

白硕:
“白字”另有所指。

李:
对,白字不一定白,是错别字。而 “黑字” 却是自由组合出来的。组合的时候 算是 open compounding 就简单的加了个 x link

白:
但是,当逻辑主语现身的时候,S不会还霸占着吧?
“他们写白字的是黑板”
也可以逆行:“黑字写白板,白字写黑板”

李:
哈 你猜这么着?
Topic!

t0702o

t0702p

白:
今天飞北京,明天飞成都。
他们和黑板,显然不是大小主语关系,这属于滥用第三个坑了。

李:

t0702q

白:
“这里他写了三个字”

李:

t07021

这还差不多。

白:
这个O,对于不及物的“飞”来说,其实就是标配化的处所宾语了。
“重庆我昨天飞的”
“这张纸他只写了三个字”

李:
估计是 Topic。

t07022

不是 Topic 就是 Next。没关系 意味着想做后面可以接着做。其实在语用的时候,很可能不需要这个语义 arc 的求解了。反正 作为 node 重庆是地点,纸 是广义的处所 这个 ontology 知识系统是有的 不必借助精细的句法语义关系。所以 这个语义中间件 说到底就是要做可以一直做下去 理论上讲 做得好 对各种语用都会有好处。但实际上不做也没啥 语用的时候 稍微多费点儿力气 或者 语用很多时候根本用不到。

白:
标配与否,其实是人为的,有些不是满格,也许称为“半标配”更好接受。

李:
逻辑语义这东西 太细了麻烦大 好处却不明显。董老师的定义 我都觉得太细了。

白:
其实这个群讨论的问题,很多都无关做不做,而是事关有没有。

李:
从一个语义系统的角度看 董老师的定义有助于语义全貌的完整性;
从实际使用看 其实绝大多数的时候 要不了那么精细。

白:
做统计的人也一样可以说,我不做某事是因为好处不明显。我不需要那么精细

李:
他们一直就那么说。 昨天@Guo 还说呢,你那个 deep parsing 甭管多牛,我其实 shallow 就很好了。

白:
但是一个可以逐步精细的通道有还是没有,才是最关键的。

李:
通道是有的 至少我这里;有了 Next 和 Topic 精细化的通道就铺就了。而且写这些精细化的规则 比线性parsing要容易 容易很多。

白:
线性不线性,其实就是个是否允许做空的问题。一定要先买再卖,就是线性。

李:
线性的束缚大 而且层次多 里面的调控有很多 tricks 到了句法树出来了 问题就简化了

白:
允许一定窗口期内先卖再买,就打破线性了。

李:
耍流氓是谈一场精细浪漫恋爱的很好的前戏 尽管这句话听上去很不地道。

白:
topic很多就是在“做空”:动词没出场,逻辑宾语先出场了。

李:
就是。
能搞定的先搞定,搞不定的先挂着。等到局部大部搞定以后,再看那个别没搞定的,就不再是挑战了。

白:
卖自己没有的东西 赊账

李:
白老师还是在交易所里面呆太久了 满口算账先生的味道

白:
还别说,parser就是个交易系统:左括号是买单,右括号是卖单
你以为

李:
subcat 就是 ......

白:
subcat是股票

李:
saturated 就是成交

白:
subcat的提供者在填坑,subcat的需求者在挖坑。一对多的右括号是市价订单,无论多少左括号都通杀。比如多个定语对一个中心语 可以看成右括号潜在供应量无限。

李:
这是 mod 的本性,与 subcat 相对应。subcat 一个萝卜一个坑。两个萝卜来了 除非是 conjoin 否则没戏。

白:
补语在与述语动词分立时,坑的总供给有可能大于总需求。打包以后,有的坑被“合并同类项”了,取得了新的供需平衡。比如,冻肿了,冻X,X肿,两个X自然合并。合成的述补结构仍然只有一个坑。
什么坑能合并,看见两个谓词自然就能知道。(subcat or 大数据)不用和填坑的词打照面。所以,述补结构的处理,分层上要先于名词(短语)填坑。全放在一个平面,就说不清楚坑多萝卜少咋分的。

 

【相关】

【征文参赛:美梦成真】

关于 parsing

【关于中文NLP】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【立委科普:NLU 的螺旋式上升以及 open知识图谱的趋向】

宋:
汉语有些动词,其核心概念其实是事件。对于这种动词V,SV中的S可能是施事,也可能是受事、与事,反正是事件V的参与者。比如,张三上课呢。张三可能在讲课,也可能在听课。张三动手术呢。张三可能是动刀的医生,也可能是病人,还可能是麻醉师、护士。遇到这种动词,填坑比较麻烦。

我:
宋老师 可以换一个角度看。
把 “上课” 看成是 “听课” 和 “讲课” 的上位概念,把 “动手术” 看成是 “施行手术” 和 “挨一刀” 的上位概念。然后 在这两个上位概念的 subcat 中确定其主语填写的是 involved role 或起个其他合适的名字。这个 involved 的角色 在逻辑上 是 【施事】、【受事】和【与事】 的上位概念。这才是合理的分析和系统设计 因为语言事实的模糊性得以合适地被model和保留 不多不少。

宋:
@wei 确实合理。

我:
我们应该改变勉强机器和自己在模糊地带做黑白划分的思路。

宋:
进一步问,这些动词是哪一些呢?有什么特征呢?

我:
以上是引子。这个“设计哲学”我们从前在前知识图谱时代的图谱项目中用过。
那是 15 年前在水牛城给政府做 IE(Information Extraction) 和知识图谱(当时叫 Profile,还没有图谱这个术语)的项目的时候,我们意识到 IE 及其知识图谱 按照 community 的标准定义 都是 pre-defined:所有的关系和事件都是事先定义好的一张空表格,等着 IE 去填写、等着 IF (Information Fusion) 去熔合成图谱,然后利用图谱去做应用。
这个传统有历史的积极作用,IE 因此使得 NLP(Natural Language Processing) 和 NLU (Natural Language Understanding) 有了聚焦,有领域针对性,走出了实验室。
但是随着图谱的发展,我们觉得这样做图谱不够,漏掉很多相关的但事先无法精确定义的重要事件。
我们因此定义了一个概念 叫 GE (General Event),以动词的 arg structure 为核心,里面的 args 在 图谱中的语用角色 就命名为 Involved 这是因为其 event 的语义事先是没有清晰定义的。对于一个 arg 来说,它牵涉到的 GEs 叫 Involved-events,对于一个 event 它的 args 叫做 Involved-roles,这个思想实际是延迟具体角色的确定,先把相关的东西绑在图谱再说,可以不变应万变。(《钩沉:SVO as General Events》)。

回看历史,这是一个典型的螺旋式上升的过程:前IE时代的NLU基本都是 toys,原因之一是自然语言太复杂,NLU试图把语言的千变万化parse成无所不包的语义表达,这是眉毛胡子一把抓,boiling the ocean,完全不切实际。结果就是, NLU 的学者成了象牙塔里面研究各种零星而复杂语言现象的腐儒,做不来实用的东西。

IE 开创了新时代。

美国 DARPA 开启和推动的 IE 从一开始就是语用制导,从实际需要定义目标,从 MUC-1 (1st Message Understanding Conference)到MUC-3 开始定义领域事件(名叫 Scenario Template,ST,"火箭发射"、“高管变动” 等 ),到后来定义的实体以及实体之间的具体的关系,这就把语言处理和理解的任务聚焦了:语言不再是大海,而是海洋中的一个个岛屿。这个扭转是划时代的。

因为语义落地的目标在IE中聚焦了,这就给了机器学习(ML)施展拳脚的机会:ML 把 IE 的任务作为端到端的黑箱子,利用浅层的NLP(譬如本质是 ngram 的关键词models),而不是深层的 NLU,做 IE 抽取和知识图谱。这逐渐成为IE的主流。在IE的community 的 MUC 各个会议中,可以看到直到 MUC-6,两条路线的系统还都有参与和报告,但 MUC-7 以及后续的 IE 的学界(譬如,ACL 的一些 workshops,以及 MUC 后影响和规模小得多的 ACE Automatic Content Extraction program)报告中,规则学派完全彻底地退场了。这与 NLP 整个领域(不仅仅是 IE 这块)的历史趋势完全一致。

统计一边倒到了这个地步,IE 这块肥肉被 ML 在学界独吞了,虽然实践中没有任何理由证明 ML 在 IE 能够真正胜过 deep parsing 支持的规则系统(其实恰恰相反,后者精度更高)。白老师说的,门户之见是不需要理由的,这就是学界的现实。以后也许会改变,但现状就是如此。

但是工业界做类似 IE 或 图谱 工作的,却远非学界那般极端地一刀切,火种尚存,有NL经验的语言学家仍然得以生存,星火燎原的希望也不是没有。如今,NLU 技术已经发展到了大海不再可怕,deep parsing 面对语言大海,无论精准度(precision)、召回率(recall)、鲁棒性(robustness)还是速度(speed),都已经达到了实用的高度,以至于当年的 IE 必须预先定义的框框,在新的知识图谱的设计中成为了一个束缚。突破 predefinition 有利于 open 图谱做大和多用途。历史可以、而且正在开始向这个方向回转。独立于领域的“一般性事件”(GE)与传统的事先定义的领域事件(PE,Predefined Event)开始汇合和互补。

我们作为 GE 和 知识图谱的先行者,早就看到了这个趋向,相信可以看到这种汇合开花结果。在这个过程中,deep parsing 的作用更加凸显。General event 因为目标没有事先预定,对于浅层分析为基础的黑箱子技术路线构成了挑战。GE 的核心就是 arg structure,简称 SVO,是 deep parsing 的自然结果。当年我们给的定义在 GE 里面附加了语用的限制条件(譬如 ignore 指代性 nominalized 的事件),为的是防止把不重要的事件全部喽进来,系统不必要地过载和鱼龙混杂。但那些不过是对 deep parsing 的过滤而已,不改变 GE 立足于 deep parsing 的本质。

NLU 从象牙塔的 deep 起,历经 IE 的 shallow,现在到了可以回归 deep 的图谱时代。这就是 NLP 螺旋式上升的鲜活实例。

 

【相关】

知识图谱的先行:从 Julian Hill 说起

《新智元笔记:知识图谱和问答系统:how-question QA(2)》

《新智元笔记:知识图谱和问答系统:开题(1)》

《泥沙龙笔记:知识习得对本体知识,信息抽取对知识图谱》

【泥沙龙笔记:再谈知识图谱和知识习得】

【语义计算沙龙:知识图谱无需动用太多知识 负重而行】

【立委科普:信息抽取】

《朝华午拾:信息抽取笔记》

泥沙龙笔记:搜索和知识图谱的话题

《有了deep parsing,信息抽取就是个玩儿》

【立委科普:实体关系到知识图谱,从“同学”谈起】

泥沙龙笔记: parsing vs. classification and IE

前知识图谱钩沉: 信息抽取引擎的架构

前知识图谱钩沉: 信息体理论

前知识图谱钩沉,信息抽取任务由浅至深的定义

前知识图谱钩沉,关于事件的抽取

钩沉:SVO as General Events

Pre-Knowledge-Graph Profile Extraction Research via SBIR (1)

Pre-Knowledge-Graph Profile Extraction Research via SBIR (2)

【关于知识图谱】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

 

【一日一parsing:"钱是没有问题"】

雷:
2016年最佳语文组词能力:
"钱是没有问题 ” 就这六个字的组词成句,可以变成不同意思的句子!哈哈,偉大的語文能力!
钱是没有问题
问题是没有钱
有钱是没问题
没有钱是问题
问题是钱没有
钱没有是问题
钱有没有問题
是有钱没问题
是没钱有问题
是钱没有问题
有问题是没钱
没问题是有钱
没钱是有问题
@wei parsing请
高:
显然字不一样

t0709a

t0709b

t0709c

t0709d

 

我:
有少数不尽如意的 parses,但几乎每个 parse 都可以站得住,或说得出道理。是不是有点牛叉,我自己都有点吓倒了。哈。
最后的两个断链的 parses 也有道理,因为那两个破句子,我作为 native speaker 都不知到底想说啥。就是玩弄文字游戏,排列组合汉字瞎凑合。

雷:

白:
最后两个,我理解:没问题是有钱=没问题是因为有钱,没钱是有问题=没钱是因为有问题。所以用next是对的,用subj略勉强。但是如果说“没钱是有问题的”,就是subj了。

我:
"没钱是有问题" = "没钱的确有问题"
这个说法倒是听过。
白:
语感有差异
我:
“没问题是有钱” 还是听着别扭,不知所云 白老师的解读也有硬去揣摩的味道。

白:
如果“是”重读,也会到“确实”那个含义

我:
“没问题,是有钱。”
这个可以,就是两个小句: == 没问题。(X)的确有钱。
“没问题是有钱” 如果中间没停顿 没逗号 就几乎可以说不合法了。法不法不论,就是不容易明白想说啥。

陈:
立委最近发言不多了?

我:
@陈 钱不是问题 那啥是问题?我觉着,啥都不是问题,就钱是问题。

陈:
@wei 多来点parsing。。。

我:
要多少有多少。吹牛谁不会

dolo:
@wei 这个分析不错

我:
@dolo 我说了 牛叉不是吹的吧。
---- 其实还就是一个苦力,后面就是个力气活。到用了,就显灵了。

 
【相关】

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

【一日一parsing:休眠唤醒的好例子】

白:
IPTV首页广告语“IPTV,电视新看法”。
需要休眠唤醒的好例子。

我:
t0796a
对,这个 hidden ambiguity 与 “难过”、“好过”一样,可以也应该休眠唤醒。如果真想做的话,就在“看法”的词条下,在句法后做一个词例化规则:
查一下“看法”(默认词义:viewpoint,有个 human 的坑)的 Mod 来唤醒第二条路径(词义)。
查 Mod 的条件有宽松两个选择,可以根据大数据测试的质量来权衡定夺:
(1)宽的话,如果 Mod 不是 Human,那就唤醒
(2) 窄的话,如果 Mod 是“看”的搭配词(看电影、看电视、看戏、看热闹、看耍猴 etc),那就唤醒

白:
作为一个词的“看法”有两个坑,“谁”对“什么”的看法。“谁”即使锁定到human和“电视”不搭调了,还有“什么”可供填充。所以,单纯从一个坑的不匹配,还不足以翻盘。需要“看-电视”这样的强搭配来推波助澜里应外合。

我:
好!
唤醒的是句法层面的定中关系(默认的是词典的合成词,可以看成词的黑箱子,也可以看成是词法内部的定中关系):“看-法”(而不是“看法”),语义落地在 MT 上的表现就是选择第二个译法:way of 看。因为搭配找着了,MT 也就可以把“看”的翻译从默认的“see”改成搭配的“watch”:
IPTV,电视新看法 ==》
IPTV, a new way of watching TV (而不是 TV's new viewpoint)
这个思路是没有问题的 虽然需要花点儿力气。至于选择做还是不做 那是另一个问题。
在“难过” vs “难-过” 这样的case上,我们做 sentiment,是选择了去做,用到上述休眠唤醒的招术,把表达主观负面情绪的默认的“难过”解读,语义落地为表达客观负面情形的“难-过”。见 【立委科普:歧义parsing的休眠唤醒机制再探】 。

梁:
“IPTV,电视新看法” 这句话,连我都休眠了好一阵,刚刚被唤醒。
语义落地到 MT, 是 “ IPTV, a new way to watch TV" ?
so it is either, 一种看电视到新方法, or 一种对电视的新的看法? ”看法“ could be "opinion"?

我:
广告跟段子一样,故意弄这些,为了俏皮,加深印象。
可喜的是,至少我们寻到了解决这类段子似的俏皮话的计算机实现的路径。
休眠唤醒的事儿,以前在语义落地的时候“自发地”做过,但从来没有总结到现在的高度,可以有意识地推广运用。这是在本群与白老师等探讨的收获。
hidden ambiguity 和段子这类的parsing,以前一般都认为是难以企及的语言难题。至少现在不是那么遥不可及了。

梁:
想想这事是挺有趣。“看法”,本来挺强劲的结合,硬是给左边的“电视”拆开了。这类暗中较劲,猜想、比较、争吵,分裂,结合,settle 的过程,人的大脑 parsing 的时候,可能也有这样的过程。据说人思考时经历一种微型达尔文过程。

白:
【转神段子】航拍记录显示,湖北已经基本都是湖,找不着北了。
看看如何休眠唤醒。

K:
他伸出双手,要露上两手。

我:
唤醒啥? “找不着北” 是成语:
t0707a

白:
湖北两个字,只剩一个字了 另一个字找不着了
元层次和对象层次的纠缠

我:
并不影响语义理解

白:
影响段子理解

我:
俏皮的定性 如果也是语义的一部分 可以利用机械扫描匹配 来发掘 无需与句法层发生纠缠

白:
总之是要吃回头草

我:
不属于核心语义。核心语义是 湖北这个地儿现如今到处是水 方向辨别不清了

白:
核心语义没发生颠覆或荒诞化 只是附加了一层元层次上的俏皮。段子理解,有颠覆型的也有附加型的。

我:
“伸出双手 露上两手” 同理 同机制 也可以扫描匹配发掘 后半部也是成语 唤醒的是成语的非成语解读。这与切词中的 hidden ambiguity 同理。

白:
俏皮也是附加。还有我之前举的例子,“贾宝玉托举林黛玉,纯粹是多此一举”。先导词语素的重叠使用。

K:
电视的新看法 看法有了非成语语义属于唤醒

我:
Longest principle 默认一个多语素词的黑箱子性质,但在特定的上下文中 可以唤醒句法透明的解读。
t0707b

K:
露上两手 多此一举 是否与之类似呢?唤醒了手与举的非成语语义?

白:

我:
就是。词法的内部关系 唤醒为句法的外部关系。哪怕词法句法是一脉相承 平行的,句法解读与词法解读 在语义和概念层面是很不同的。英语类似的 hidden ambiguity 有blackboard 解读为black board

K:
感谢二位老师
我理解 成语语义的整体性与成语内部结构的潜在可分解性会影响休眠唤醒
比如 新看法 作为成语有其常用语义,但其内在结构可分解,(新(看(法))),这种结构分解为 看法 增添了新的语义。这与分词中的组合型歧义有关联。何时分,何时合,可能单在分词层面难以完成,有什么好的解决办法吗?

白:
先说没有外部刺激是不该拆开来的
然后再说外部刺激可能有哪些特征
比如,重复。

 

【相关】

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

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

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【语义计算沙龙:Parsing 的数据结构和形式文法】

白:
如果完全把句法还原为左括号找右括号,规则就是多余的。只需要词典和原则。
我:
不必那样极端。
作为思路,是可以的。其实,HPSG 那些比较极端的 lexicalist 学派就主张,只有三五条“组合原则”。然后一切从词典出发,根据原则配对。HPSG 那样主张显得可行,是因为他们把 FEATURE structure 推向了叠床架屋的极致。一个词条里面的 SUBCAT 就是无比复杂的结构。SUBCAT 里面事先预备好了组合的各种可能性,当然只靠组合原则就ok,可是那是一条看上去美 实践中难缠的路线。
白:
关键错不在这,而在复杂特征集本身是一个错误的数据结构。
方向错了,不应该“合”而应该“拆”,拆到最简。
我:
太精巧的 typed feature structure (里面还有厚厚的一层 hierarchy,预先定义好,叫 signature),使得系统非常“脆弱”。对这个 structure 的任何改动,都是全局的改动,影响所有的词和短语。
白:
而且他还没放弃PSG,费二遍事。
我:
为了应对这个庞大的structure,只好鼓励使用 macros,macro calling macros,表面上精简了词典,实际上把词典和内含的潜在规则弄得不可读,不可维护。
白:
其实DG词例化大可以避免这些麻烦
我:
宏这个东西 极易滥用。宏的自然边界稍微不清晰 不直观的话,超过一层的宏调用 就把系统弄得跟密电码一样。初学的人以为自己很牛,宏调宏,似乎规则或词典越有层级越显得自己高明:我能玩转,你看不懂,也玩不转。
扯。
规则扁平化才是正道。宁肯冗余,也不能滥用宏调用。规则与规则的独立是原则 即便不能完全做到 也应该时刻警醒自己。
白:
我恰恰在说那些是可以避免的。扁平化的规则和单子化的词典是一致的。
我:
单子化??
白:
就是数据结构没层次
我:
MY GOD
我得去找找鲁迅的那个条幅 就是对瞿秋白写的那个 谬托知己的那个。
数据结构没层次是高境界
张:
大湿极
我:
但是更高的境界是没结构后面留了有结构的后门。这个后门完全可以独立管理 独立经营。再说下去 就差不多泄露天机了。
白:
卖单和买单也可以形成结构后门
对倒什么的
甚至伞型信托
我:
这个听不懂了
白:
卖单和买单
我:
数据结构是规则系统的大学问。stay simple stay foolish 还要留后门 暗度陈仓。不留后门 连 HowNet 都容纳不了。
在很多年以前,在上个世纪,我跟刘倬老师做MT系统。当时就开了个后门 我们向外宣称 起了个很响亮的名字,叫“背景知识库(BGKB)”,查当年的老论文,还有这一段。这个后门就是我提议刘老师允准的。
张:
都经历过了~~~
我:
当时其他的MT系统,譬如一个知名的系统 在 Texas,西门子资助的,好像叫 Metal(??),做德英,他们整个系统才用了 8 个 semantic features,已经被认为是很高级 很成熟的系统。
张:
后门太多屋便不在
我:
我们来了个理论上开放的背景知识库,天壤之别。可是我们仍能保持结构的极度简单。
迈:
大巧若拙@wei
张:
保持简单不简单,台湾三毛说的
我:
复杂的层级系统 并非一定需要精巧的数据结构去装。
张:
层级系统是指扫描的遍数?@wei
白:
扫描是可以流水的,不存在遍数概念
我:
其实这个道理 学过电脑 Introduction 的都知道:
高级语言的东西 编译成代码 就扁平化 低级化 但功能等价。低级到极限 就剩0和1了
HPSG 那一路算是另一个极端。当年对那一套数据结构也入迷过,很逻辑,很美。就是像个玻璃美人,不大敢碰她。可以远瞻 近则亵。再加上一个 unification 的优美操作,浪漫得很。里面没有丝毫强勉:一切都是理想世界的自由恋爱 你情我愿 极度和谐。任何层面的任何一点信息的冲突,都会导致 unification 失败。unspecified 信息在不同层面恰到好处地被充值,一旦充值,矢志不渝,决不允许翻案。没有过程性,不分头和尾。
白:
这个还是要反对一下,程序是图灵等价的,高级语言是必须的。自然语言是毛毛虫,离图灵等价差好大一截,用单子化的标签已经enough。二者不具有可比性。
我:
开始学 Prolog 和 HPSG 的人,几乎不可能不被迷住。日本人被迷住的结果就是闹了个五代机项目。栽在不接地气.
白老师 高级语言的必要性是自然,更高级的nlp语言的必要性 也是无需证明的。很难想象没有高级语言的软件世界,就如很难想象没有某种形式文法的parser一样。
几个月前 有一位貌似白人老工程师的 Linkedin 联系 说他用汇编写了一个高效精准的自然语言 parser,问我要不要看 他可以免费 license 给我用 因为他认为我可能是知己。我只好礼貌“谢”绝了,没那个功夫,也不存在好奇心。
用 general purpose 高级语言做 NLP toy,我们都做过的,硕士项目便是。完全可以想见汇编做的是个什么样子。反正是程序,见到什么做什么,图灵可以随心所欲。一 scale up 就完了,你就是有十个脑袋也 hold 不住它。
自然语言的毛毛虫 绝对不是随心所欲的图灵 可以不是 2 型 或 3 型 但必须有型。没有规矩 不能成方圆。
乔姆斯基的伟大在于他发现了语言是有型的,并试图给型做数学定义。
乔姆斯基的误导在于他非要证明某个型(3型)是不适合自然语言的,隐含的指向是2型。他老人家也没重视和考察过自然语言的分层,以及这个“型”与“层”的关系。他的形式系统于是只作用于一个平面,在立体架构中没有说法。这样作用于单层平面的型,对于电脑语言的 parsing 也许足够,但对自然语言就有些力不从心,似乎抓住了一些,又似乎总不贴切。就是预制了几双鞋子,可是脚总不配合。他老人家到今天也不认识毛毛虫。

【相关】

【语义计算沙龙:乔老爷的围墙,community 的盲区】

乔姆斯基批判

[转载]【白硕 – 穿越乔家大院寻找“毛毛虫”】

【科研笔记:NLP “毛毛虫” 笔记,从一维到二维】

【泥沙龙笔记:NLP 专门语言是规则系统的斧头】

【新智元:理论家的围墙和工程师的私货】

关于 parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

【李白张61:长尾问题种种】

李:
欢迎金老师。从理转文 学语言学的 往往功力深厚 别具一格。白老师 还有语言所的前辈范继淹先生 都是证明。

白:
这里是NLP的一大窝点,每天都有扯不完的话题。
“白总,您可以给我一点您的简介,关于区块链的文章我来报选题不?”
看看这个“可以……不”之间经过了多么漫长的旅途。

李:
这个“可以不”肯定是搭配不上了,硬做也不值得,主要还是看看怎么凑合吧?当然是用 Next 把局部parses先patch起来,这样至少通道是有的,想做功的话,余地在。
t0704a

白:
从技术层面来讲,我们可以将8.11之后的人民币汇率形成机制简单表述为“双锚相机转换机制”。
这里的“相机”,谁的机译系统能翻对?
aaa

李:
not bad

白:
bbb
全是camera

李:
不是 camera 是啥?不懂术语。
谷歌这次及格了。涉及汉语的MT,谷歌总是比百度差或略差。谷歌干脆 license 百度得了,至少中文MT。

白:
take actions accordingly
这哪是术语。地道的中文。

李:
那就是我中文不行。哦,相机-见机 而行
双锚相机是什么相机?

白:
在没有camera的时候,就有这个“相机”

李:
但是大数据把它冲得快没影了

白:
我朋友圈转发了FT这篇文章,一看便知。

李:
相机是现代高频词。一个不懂行的人,看到这一段虽然不懂,但是心里在问:
“双锚相机是个什么相机?”

白:
双锚,也不修饰“相机”,他俩都是状语,修饰“转换”。

李:
那是你懂。对于不懂domain的人 不是这样的。
cf:“单反相机转换机制”

白:
双锚vs单反,完美的对仗。

李:
如果汉字保留“像机”不用“相机”,可能不至于。
一个 real life MT 很难为了一个几乎从来不用的 WSD 的选项,做啥特别的功夫。不单不合算,而且太容易弄巧成拙了。对于 trained model, SMT 根本就没有这个data;对于规则MT,也不大值得做。拉倒好了。

白:
这种逻辑,等于告诉用户,你就从了吧。

李:
对于极小概率的现象,如果真要做,那就尽可能词典化。词典化或 expert lexicon,没有啥副作用,可以应对长尾。任何概括化的努力,都容易亏本。

白:
极小概率累计起来就是长尾

马:
谋求单反相机起义。造一个,哈哈

白:
在不同formalism下,亏本与否可能结论大不相同。比如,如果formalism天然就是词例化的,就不存在弄巧成拙的问题。满世界都是拙。

张:
极小概率的词典化是规则系统最可爱而可贵的品质和能力

李:
可不,满世界都是拙,高高在上的精英规则就可以很光鲜。词例化 or expert lexicon 也还是不时需要与上面的合作。譬如句型的变式。合作的方式有不同。有句法语义一体的合作方式,也有先句法后语义的合作方式。各有利弊。

张:
这种拙是大局观,是大智若愚
我们这里有个小组正在天晕地暗研究知网的MT~~~

李:
愚公移山呗
挖一块儿 少一块儿 而山不加增 ......

张:
两位大师何时有空一来论剑?@白 @wei

李:
没去过东北,都说东北有三宝。

张:
白到骨,wei入髄
wei来we妙; wei说I 赞

李:
张老师那地儿 迟早是该去看看
李: 似乎是调通了,但还是选择不做“相机”。非不能也,是不为也,你懂的
有一个 catch: 将 ----> 把: “将” 等于 “把”(介词),但更歧义(modal V),好在前面有 “可以”。

t0704c

 

【相关】

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

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

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【一日一parsing:NLP应用可以对parsing有所包容】

白: “西方人类比用得少,是因为西方的逻辑学产生的早。”
t0614a
什么叫狗屎运?我的定义就是:
遇到一个找茬的顾客,看到他藏着陷阱的“自然语言”语句,心里有点没数,但测试自己的系统,一次通过了。
今天是个好日子,撞了一个狗屎运,不必 debug 了,因为此例就没有 bug。
当然,真是通不过,需要 debug 也没啥,所有的系统都不是一锤子买卖。只要这种 bug 是在你设计的框架内,有一个顺达的对症下药之路,而不是为了这个 bug,没完没了折腾系统。严格说,也可以找到瑕疵:理想的 parse 最好是对 “西方人” 耍个流氓,label 成 Topic,而不是 S,但这个 Topic 的流氓不见得比现在这个 parsing 强,半斤八两吧。现在的parsing 是把 “西方人类比”当成主语从句了。S 是主语,Subj 是主语从句。
对于半斤八两的句法分析路径 怎么判断对错?
一个包容的系统,就认可两者,因为其间的区别已经很 sutble 了,连人很多时候也糊涂。所谓包容的系统,指的是,在语用层面做产品需要语义落地的时候,parser 对此类现象给出的两个不同的路径,应该不影响落地。这个对于句法和语用 integrated 的系统,是没有问题的。后者可以也容易实现这种鲁棒性。对于汉语常见的 NP1+NP2+Pred 的现象,下列分析大都可以被包容:
(1) Topic + S + Pred
(2)[S + Pred] +Pred
when the second element can be Pred (V, A, or deverbal N)
(3) [Mod + S] Pred
包容的都是可以预见的,因为可以预见,因此可以应对,hence robustness
顺便做个广告,承蒙高博协助,立委 NLP (liweinlp)频道 再张大吉:
liweinlp.com

【相关】

关于 parsing

【关于中文NLP】

《朝华午拾》总目录

【关于 parsing】

泥沙龙笔记:骨灰级砖家一席谈,真伪结构歧义的对策(1/2)

泥沙龙笔记:骨灰级砖家一席谈,真伪结构歧义的对策(2/2)

【语义计算沙龙:巨头谷歌昨天称句法分析极难,但他们最强】

语义计算沙龙:parsing 的鲁棒比精准更重要】

语义计算沙龙:基本短语是浅层和深层parsing的重要接口》

【做 parsing 还是要靠语言学家,机器学习不给力】

《泥沙龙笔记:狗血的语言学》

语义计算沙龙:关于汉语介词的兼语句型,兼论POS】

泥沙龙笔记:在知识处理中,很多时候,人不如机

《立委科普:机器可以揭开双关语神秘的面纱》

《泥沙龙笔记:漫谈自动句法分析和树形图表达》

泥沙龙笔记:语言处理没有文法就不好玩了

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

泥沙龙笔记:从 sparse data 再论parsing乃是NLP应用的核武器

【立委科普:NLP核武器的奥秘】

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

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

【立委科普:自然语言理解当然是文法为主,常识为辅】

语义计算沙龙:从《知网》抽取逻辑动宾的关系】

【立委科普:教机器识英文】

【立委科普:及物、不及物 与 动词 subcat 及句型】

泥沙龙笔记:再聊乔老爷的递归陷阱

【泥沙龙笔记:人脑就是豆腐,别扯什么递归了】

泥沙龙笔记:儿童语言没有文法的问题

《自然语言是递归的么?》

Parsing nonsense with a sense of humor

【科普小品:文法里的父子原则】

Parent-child Principle in Dependency Grammar

乔氏 X 杠杠理论 以及各式树形图表达法

【泥沙龙笔记:依存语言学的怪圈】

【没有语言结构可以解析语义么?浅论 LSA】

【没有语言结构可以解析语义么?(之二)】

自然语言中,约定俗成大于文法教条和逻辑

泥沙龙笔记:三论世界语

泥沙龙笔记:再聊世界语及其文化

泥沙龙笔记:聊一聊世界语及老柴老乔以及老马老恩

《泥沙龙笔记:NLP component technology 的市场问题》

【泥沙龙笔记:没有结构树,万古如长夜】

Deep parsing:每日一析

Deep parsing 每日一析:内情曝光 vs 假货曝光

Deep parsing 每日一析 半垃圾进 半垃圾出

【研发随笔:植树为林自成景(10/n)】

【deep parsing:植树为林自成景(20/n)】

【deep parsing:植树为林自成景(30/n)】

语义计算沙龙:植树为林自成景(40/n)】

【deep parsing 吃文化:植树为林自成景(60/n)】

【deep parsing (70/n):离合词与定语从句的纠缠】

【deep parsing (80/n):植树成林自成景】

【deep parsing (90/n):“雨是好雨,但风不正经”】

【deep parsing (100/n):其实 NLP 也没那么容易气死】

 

关于 NLP 以及杂谈

关于NLP体系和设计哲学

关于NLP方法论以及两条路线之争

关于 parsing

【关于中文NLP】

【关于信息抽取】

【关于舆情挖掘】

【关于大数据挖掘】

【关于NLP应用】

【关于人工智能】

【关于我与NLP】

【关于NLP掌故】

 

【语义计算沙龙:其实 NLP 也没那么容易气死】

白:
“严把个人商用房客户准入关”
我:
这个句子我人脑也费了半天劲才明白讲的啥(“严把个人商用房客户准入关”=="对个人商用房客户应严把准入关”),尝试用parser也只好瞎碰了,果然乱得不是一处两处,甚至把 “准入关”词典化(拼音联想词组里面 还真有这个词条)也还是不行:
t0626a
白:
“严把个人商用房客户准入关”
严还是个姓,上下文清晰时,可以用裸姓指代全名
“入关”也是词
“把”作动词用不如作介词用的概率高
“房客”也是词

我:
幸亏 real world 这样的句子是极少数。不过人脑怎么 parse 的呢? 虽然也饶了几圈,backtracking ......
白:
这个例子是银行发的正式文件里的
纵向不确定性比较丰富,导致结构貌似不稳
“个人”是定语
我:
这个“严” 做状语也不好掌控 因为更多是做谓语的
"个人"也有些难缠,词典不行 因为有 “n个人” 的存在,只好后面补救了。
个人的定语问题倒是可以解决,但还是搞不定这句:
t0626b

算了,就当没看见。我投降。
白:
“准入”是有坑的,“把关”是有坑的。当“准入”+“关”生成“准入关”的时候,坑也要有同步的调整。
我:
谁(被)准入; 为谁把关(把谁的关)?
白:
把什么事由的关。
我:
把VP的关
白:
“皇军要当你的家”类似
我:
“把学习英语的关”
“英语学习的关真不好把”
白:
“严把生猪进口质量关”
我:
“要把好业务关”
这个事由的坑可以是 VP or (abstract)NP,逻辑语义大体是 about:关于什么事儿的关

白:
“教室的地得扫了”
旅行的目的地得调整了
马:
气死NLP
的士的目的地得调整
我:
其实 NLP 也没那么容易气死 @马少平
t0626c
t0626d
t0626g

马:
哈,强大
我:
当然不能指望“世界第1”的谷歌NLP,靠的是世界第0 的立氏NLP。毛主席保证,上面的句子是一次通过,没做任何工作(当然此前一定是有工作的)。
白:
扫地的离合词处理
目的地,长词优先,不用特意做什么
我:
幸好 real world 的句子也有貌似困难其实无根本挑战的 我们还有活路。
白:
反过来才有挑战性,看着是离合词,就是不该碰一块儿的。伟哥试试:“这地是这样地难扫。”
我:
t0626e
哈哈哈哈 仰天大笑
李白曰过的:我辈岂是蓬蒿人
白:
很好
舍近求远得真解
我:
不过我心内是把它当成狗屎运的,只不过狗屎运常光顾愚公似的人。以前说过n次,NLP 是力气活
白:
话说,离合词这个功能好像也没多久。
我:
两三月前?早就想做了 盘算很久了 实现是最近几个月的事儿。量词更近,才个把月。
白:
量词和本群有直接关系
我:
离合词的处理 直接源于我13年前做英语的 phrasal verbs:take it off / take off the coat / take the coat off 之类(Wei Li et al, An Expert Lexicon Approach to Identifying English Phrasal Verbs, ACL 2003
对量词,的确是本群反复议论才被促上马的 因为没有量词搭配 90%+以上的场合无碍 以前一直拖着没做。

白:
“蔡英文说得不好。”
我:
这种还是休眠吧,hidden ambiguity,跟 “难过” 类似。真做就唤醒,用 word driven
t0626f
白:
和大语境有关
如果满篇都在说另一个蔡,就和蔡英文没啥关系了。
我:
是的,但是那种情形的处理需要在另外一个层面去做。discourse 的因素 trigger “蔡英文”-driven 的唤醒机制。
白:
分层不是单向,该交互时就交互
我:
word driven 是可以想象的,因为“蔡英文”这个词对于我们来说,的确是既透明又黑箱的:黑箱是,只要不是文盲,基本上都知道蔡英文是一个人名;透明是,尽管知道这是一个人名,我们也仍然知道这个词的内部结构,以及这个词的句法可能性:蔡 -- 英文,Topic - S 的潜在性,单从这个词,我们就知道。
白:
一个上下文提供了所提及对象的“场”,重复出现可以增加“场强”,左右句法层面对部件的“抢夺”。
我:
不过这些可以想象的操作,大概很少有人去做,选择不做为多,因为还有很多可做的事儿还没做完呢。
白:
分场景。在游戏场景,上下文中的活跃对象“场”是至关重要的,不仅对其中的NLP,也对智能角色的动作规划。用于NLP是捎带脚
我:
所有的 hidden ambiguity 都可以用 word driven 机制唤醒 如果我们真想做的话。
而 hidden ambiguity 一直公认为是中文切词的死穴。至少可以说,死穴不一定就死。换句话说,在休眠唤醒理论(见文末【相关】链接)正式提出之前,这个挑战很可能是被认为无解或极其困难的
但是,我们已经用 “难过” 在 sentiment 语义落地的实际工作中的实现,证明了还是有救。“小王很难过” vs “小桥很难过”,如今在我们的中文舆情系统中处理得如此漂亮!(重温  【立委科普:歧义parsing的休眠唤醒机制再探】)

白:
从一个包含NLP在内的更大系统视角来看,关键语境参数的实时刷新,受益者绝不仅仅是NLP。作者的观点和作者转述的他人观点,在极性上就是需要区别对待的。引述可能是为了反驳或反衬。所以,观点的主人是谁,就需要甄别。
我:
至少在知识图谱的工作中,discourse 内的实体aliasing 以及 anaphor 的工作,成为整合抽取信息的相对可靠的关键元素,这一步可以 leverage document-internal 的线索,这才为下一步的跨文本的 information fusion 打下了基础。
跳过 discourse 直接做 fusion 是不智的。

 

【相关】

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

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

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

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

《朝华午拾:我的考研经历》

NLP 是一个力气活:再论成语不是问题

【新智元笔记:巨头谷歌昨天称句法分析极难,但他们最强】

Wei Li et al, An Expert Lexicon Approach to Identifying English Phrasal Verbs, ACL 2003

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

《朝华午拾》总目录

Deep parsing 每日一 fun: 雨是好雨,但风不正经

气象局通知~~~原约定今日凌晨来的暴雨,因半路上被堵,耽误了点时间,或许今天下午到夜间赶到。这场雨如果下大了肯定不小,下小了也肯定……不能大,请市民再耐心等待!具体情况等气象台会上研究后报给市民。气象台温馨提醒:今天如果不下雨,明天不下雨的话,这两天就没有雨了,等下暴雨再准确播报。
气象台郑重劝告美女们最近几天不要穿裙子,容易被撩,雨是好雨,但风不正经。

这是微信最近流行的段子。每日 parsing 一 fun:
t0621a0
t0621a下面是笔者对两条路线斗争的总结,也 parse parse see see 吧,QUOTE:

说什么两条路线斗争 宗教门派之别 主流非主流 眼珠转与不转 这些都不是本质 本质就是鸡同鸭讲。隔行如隔山 同行也隔山。隔了山还讲个球。鸡犬之声相闻 老死不相往来。这就是计算语言学的尴尬。这是一个非常奇怪的交叉学科 两路完全不是一个类型的人 没有 chemistry 没有基本的共同背景、世界观和方法学 没有共同语言  兴趣迥异 无法正常对话  更甭提恋爱结婚 最简单的办法 就是一派灭了另一派 眼不见为净。结果就是虽然被扫地出门了 语言学对于多数的殿堂内人 依然是格格不入 而又回避不了。做了一辈子的某些主流 NLP 大牛 不懂语言学常识的 并不鲜见 这在任何其他学科都是不可思议的。但是语言学比共产主义还更像一个幽灵,一直在殿堂徘徊。

0623a
0623b
0623c
0623d
0623e
0623f
0623g

My interview:
wei_interview
from http://www.netbase.com/about-netbase/

 

【相关】

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

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

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

《朝华午拾》总目录

NLP核武器的奥秘

我总说,deep parsing 是NLP应用的核武器,有人以为夸张,今天就说说这道理儿。

NLP 的应用主要分两部分,一部分是对于 text input 的分析或“理解”,一部分是反映这种分析理解的 output(俗称语义落地,譬如 output 是另一个语言,就是MT;output 是 response,就是对话系统;output 是针对 input 问题的答案,就是问答系统;等等)。NLP 应用就是连接 input 到 output 的系统。其中第一部分是关键,核心就是 parsing,可以实现为作为条件的模式匹配,而第二部分很多时候不过是与第一部分对应的作为结论的 mapping 或 side effects。

在上述场景的抽象描述中,可以这样来看 parsing 对于处理text的作用。首先,input 的样本就是我们 parsing 的 dev corpus,样本中的语句相同或类似意义的是我们识别的对象。绝大多数情形,识别了就算 “理解” 了,系统就知道如何应对最合适。

自然语言的难点在于表达这些 input 的语句千变万化,因此用 ngram 枚举它们是不现实的。现实的办法是 parse 相同或类似意义的input语句成为结构树,然后在这些树上找共同 patterns,叫“最大公约树”吧(intuitively 叫最小才顺耳,就是这些树的common core,树大了的话就没有召回率了,白老师提议叫“最大公共子树”)。如果找不到,那就把这批句子分而治之 直到可以找到几个所谓子树 patterns,写成逻辑或的模式规则。

Patterns 的宽严度调试得恰到好处 就可以以有限的规则 应对无限的表达了。宽严不外是调整结构arc的条件 或 节点(node)的条件,deep parsing 说到底就是创造这些结构条件的机器。

以不变应万变,用有限的patterns抓住无限的语言变化,这就是自然语言核武器威力的表现。

【相关】

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

泥沙龙笔记:从 sparse data 再论parsing乃是NLP应用的核武器

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

《朝华午拾》总目录

Deep parsing: 每日一析,内情曝光 vs 假货曝光

白老师出的那个 minimal pair:
“这家公司卖给张三的内情曝光了。”“这家公司卖给张三的假货曝光了。”

测试一下,现在没有区分:
t0623
结构上粗线条是一样的 没大问题 可是 同位与动宾的区别没表达出来。既然句法大筐子不变,只是 roles miss 掉了,应该可以在语义中间件中轻易解决,透过定语从句的路径以及约束条件。

一觉醒来,在中间件加了一条简单的找逻辑宾语填坑的规则,看看怎么样?改进版:
t06231
这条规则是说,如果定语从句谓语句法完了以后仍然有宾语坑未填满,那么它所修饰的NP就来跳坑,除了 “消息” 类的NP。“内情” 于是被堵在外面 不跳,“假货”当然无所畏惧。至于 “内情” 与 定从 的同位语关系,可以做,但选择不做,因为定语的概念包含了同位语,比同位语大,目前没有感到有细分的必要。
上图中还有一个 catch,“公司”与 "卖给” 的逻辑主语没有做,而只是做了 “公司”与“假货”和“内情”的句法定语关系。目前也选择不做,等到需要的时候也不难在中间件中补。主要理由与上面同,偷懒而已。主语是arguments中最接近adjunct(定语就是一种 adjunct)的角色,细分的必要性不强。当然语义落地真地需要,那就或者在语义中间件补上,或者在落地时候唤醒。

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

《朝华午拾》总目录

Deep parsing 每日一析 半垃圾进 半垃圾出

白: 越南一架载有9人的巡逻机执行搜救任务时失踪,这失踪的CASA是去搜寻刚刚失踪的苏-30的。搜寻失踪的,自己也失踪了,得再派一架去搜寻这因搜寻失踪而失踪的飞机的飞机了。

白老师看重的是 不是人话的人话 “。。。得再派一架去搜寻这因搜寻失踪而失踪的飞机的飞机了”。不是人话的话,我把它叫做半垃圾。

半垃圾我都不想试,笃定搞不定。犯“错”了吧心里别扭,又想逞能,就必然去debug一个其实也没啥bug的系统 其结果很可能是得不偿失,或费九牛二虎之力不过是为了一个基本不会再次出现的长尾之长尾。如果无视吧,跟眼里揉了沙子似的。

好奇心害死猫,还是忍不住测试了,不过毛主席呢保证,绝不 debug,我说的是绝不! 也不进 unit test,任它 half-garbage in half-garbage out, 有当无好了:

t0617a

合上揉进沙子的眼呼呼去也,希望今夜无梦,至少无语言学的噩梦。

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

《朝华午拾》总目录

Deep parsing:每日一析

“西方人类比用得少,是因为西方的逻辑学产生的早。
t0614a
什么叫狗屎运?我的定义就是:遇到一个找茬的顾客,看到他藏着陷阱的“自然语言”语句,心里有点没数,但测试自己的系统,一次通过了。
今天是个好日子,撞了一个狗屎运,不必 debug
当然,真是通不过,需要 debug 也没啥,所有的系统都不是一锤子买卖。只要这种 bug 是在你设计的框架内,有一个顺达的对症下药之路,而不是为了这个 bug,没完没了折腾系统。
严格说,也可以找到瑕疵:理想的 parse 最好是对 “西方人” 耍个流氓,label 成 Topic,而不是 S,但这个 Topic 的流氓不见得比现在这个 parsing 强,半斤八两吧。现在的parsing 是把 “西方人类比”当成主语从句了。(S 是主语,Subj 是主语从句。)
对于半斤八两的句法分析路径 怎么判断对错?
一个包容的系统,就认可两者,因为其间的区别已经很 sutble 了,连人很多时候也糊涂。所谓包容的系统,指的是,在语用层面做产品需要语义落地的时候,parser 对此类现象给出的两个不同的路径,应该不影响落地。这个对于句法和语用 integrated 的系统,是没有问题的。后者可以也容易实现这种鲁棒性。

对于汉语常见的 NP+XP+Pred 的现象,下列分析大都可以被包容:
(1) Topic + S + Pred
(2) [Mod + S] Pred
(3)[S + Pred] +Pred
when the second element XP can be Pred (V, A, or deverbal N)
包容的都是可以预见的,因为可以预见,因此可以应对,hence robustness

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

《朝华午拾》总目录