【李白79:中文深度解析的地基是词法分析器】

白:
“我电话费用不完”谁家分词系统强?

李:
这不仅仅是“分词”问题,而是词法分析(morphology analysis)问题,对比:


Note: M=Modifier, S=Subject, H = Head;
N=Noun, NP=Noun Phrase, AP=Adjective Phrase, CL = CLause

这里,“不”(还有“得”)是现代汉语的中缀(infix),派生词构词法如下:

用完 --》 用得完
用完 --》 用不完

而三元组“用不菲”却不成词:

“用不菲的价格购得”。


Note:M=Modifier, R=Adverbial, X=Functional, H = Head;
N=Noun, NP=Noun Phrase, AP=Adjective Phrase, VG=Verb Group, PP = Prepositional Phrase

白:
不菲 应该成词吧,不完 不该成词。

李:
对。但是 “用不完”成词,是派生词。上述词法分析除了派生(derive)了这个词,而且得到了这个派生词的分析结果:

(i)原词:“用完”
(ii)原词词典“绑架”的词法结构:述补
(iii)词法特征:【否定】【结果(述补结构)】【可能(情态)】

这不是切词,这是以派生的方式做词法分析,对比同为情态的等价表达“不能用完”:

(i)头词(Head):“用完”
(ii)句法短语:VG(动词组)
(iii)词法特征:【否定】【可能(情态)】

特别有意思的是,“用不完”的构成不是 “用” 与 “不完” 的拼接(concatenation),而是 “用完” 与 中缀“不”的派生式构建。这不是语言学上的合成构词法(compounding),而是派生构词法(derivation)。由于汉语被普遍地粗线条指认为缺乏构词法手段的所谓孤立语,大众一股脑把所有的构词都叫作 compounding(也叫“小句法”),但是现代汉语其实不是这么单纯。欧洲语言的构词手段大多在现代汉语也有体现,包括 类词尾(quasi-inflection)如表达完成体的“了”,也包括利用类缀(quasi-affix 如前缀。中缀、后缀)的派生(derivation),以及大量使用的重叠(duplication)构词手段(如:高兴--》高高兴兴)。我的博士论文对这些现代汉语的词法(morphology)现象及其计算机处理,有详尽论述,语言学味道浓一些(见:Ph.D. Thesis: THE MORPHO-SYNTACTIC INTERFACE IN A CHINESE PHRASE STRUCTURE GRAMMAR)。

现在已经清楚,为了中文自动分析,所谓中文分词,不仅仅是把要词“切分”出来, 而是应该输出白老师所说的微结构及其词法特征(时、体、态等)和句法特征(如类别、子类等) ,除此之外 还要通过“词典绑架”输出语义特征(叫 lexical semantic features)及其背后的本体知识层级体系(类似于董老师的HowNet,内含常识)。这样的词法分析器(lexical analyser)才算是完成了词法任务,为下一步的句法分析和语义分析打下基础,从而为汉语的深度理解开辟了道路。

所谓实体识别 (NER),属于合成词范畴,也是题中应有之义。还有 Data Entity 的合成,譬如各种度量表达法(长度、体积等)也是合成词。当然也要包括与句法纠缠的离合词(“洗澡”)的识别和绑定。

中文深度解析(deep parsing)的大楼不是凭空可以建造起来的,词法阶段就要夯实。

白:
“用不完”搞成词没啥意义

李:
这个没的争的。根本不是什么“搞成”词的问题,而是词法分析的问题。说到底,这个中缀的词法意义必须抠出来,因为它是 open-ended,绑架不全。最终系统要知道 “不能用完” 与 “用不完” 不过是用不同的词法句法形式,表达相同或相近的语义。否则何谈语言理解(NLU)?

白:
“用不完”在句法层次一样处理。放到构词法层次,难不成就是为了凑一个长词优先?

李:
句法与词法本来就是一伙的,从万米高空俯瞰,都是形式分析。句法如果能分析出词法分析同样的结果,亦无不可。以结果论英雄。但语言学上,它就是一个派生词,这个没有多少疑问。其实,“凑成一个长词优先”不仅是词法的“凑”,背后有其所以为词的原因在。词法句法在中文纠缠,并不说明二者没有顺序。顺序的一个体现就是长词优先。

白:
好的分词系统,即使“用不完”分成三个词,总体得分还是占优的才对。

李:
如果较真的话,中缀现象在通常的句法里面还真不好处理妥善。我们可以用近似、逼近的句法去处理中缀,但派生词的处理在词法是一个常规的过程,是词法里面避不开的一类。

白:
“我电话费用也用不完”

李:
这与沙滩望远镜看女孩有点异曲同工(自注:这是NLP领域最著名的代表结构歧义的例句:I saw a girl with telescope.  句末介词短语做 girl 定语,与做 saw 的状语,二者都说得通,是为“真歧义”)。这种人为的真歧义(1. 我电话费,用也用不完; 2. 我电话费用, 也用不完),系统怎么做都不能算错。理想的情况是输出两个结果,但人脑理解貌似也是先绑定一个结果(不同的人可能绑定不同的路径),有时间咀嚼的话,再想到另一个结果。人际交流和理解中,多数人不拘小节,根本不在乎这种歧义区分,除非是遇到较真的人,或在段子里。问题是,就算一个高明的系统可以区分这种较少出现的“真歧义”与大量存在的“伪歧义”,下一步接不上还不是白费。还不如就绑定一个。

“v 也 v 不完” 这种重叠手段与派生手段纠缠的汉语现象,不是应该把 “用不完” 置于句法的充分理由。首先,这种纠缠现象非常局限,基本上还在词法范畴内部,不像离合词“洗澡”,已经明显溢出到句法了,经常是“远距离”离合,那才真地需要词法(包括词典)与句法有一个灵活的接口。

白:
“电话费用不用得完成任务了再说。”

允许“用也用不完”成词,那就得允许“用不用得完”也成词吧?其后果是,即使“完成任务”算一个词也压不住了。

李:
压不住就不压呗。弯不过三。压不住的,基本上是长尾的尾端。

白:
这不是自然的压不住,是人为的压不住。不把那东东搞进词法就没这事儿。不是天灾,是人祸。拿解释天灾的逻辑解释人祸,欠妥。

李:
关于词法、句法,对于多层系统,就是一个连续体,有顺序,但没有一个黑白分界线,这与教科书里面的词典、词法、句法、语义等组件的各自完全独立不是一回事儿。
譬如说 1层到10层是黑色的词法,20层到40层是黑色的句法,但11层到19层呢,那就是灰色地带。可以说是词法后期,也可以说是句法前期,安排什么现象到灰色地带,是根据现象的特性来决定。因此争论某某是扔进词法还是句法这样的问题,前提的假设就是两个前后模块,而不是离散又连续的多层系统。

撇开抽象的模块分界,真正有意义的问题是,“凑成一个长词”(并参加分词大餐)是好处大于坏处还是相反?其实,答案是相当清楚的,利大于弊太多。与其指望一个“聪明”的分词程序来应对 “v -也(都)-v-不-完”这个五元组,不如把“长词”做出来心里踏实:这样再“笨”的分词程序也不至于出乱子。五元组分散开来进入分词所可能造成的副作用,较之合成了五元组长词(并同时做了词法分析)可能引起的后续的切分问题,前者比后者严重得多,也频繁得多,根本不是一个数量级上的问题严重程度和频繁程度。因此,恕我直言,白老师的“人祸vs天灾论”或者是唯心的,或者是误导的。

白:
关键是长词是什么时候做出来的,我很赞赏前面说的灰色地带的说法。长词是句法分析介入以后做出来的。做出来以后就可以反悔分词方案。这样分词和句法两方面就都是可控的。走的路线类似分词1-句法1-分词2-句法2………这种。

李:
有道理。不过白老师举例来说的人祸论实在不能让人心服。事实上,分词系统免不了要用 heuristics,对于每一个heuristic,无论如何表达,也无论如何安排先后次序及权重永远可以找出反例来,这是 heuristic 的本性。但我们最好不用(罕见的)反例来结论某种安排是人祸。如果不那样安排,这个人祸是避免了,另外一个更大的人祸很可能就在身边,因为所谓“没有了人祸的更高明的方案”其实并不能保证周全。这不是说方案与方案之间没有优劣,而是说,门户之见很容易让我们看到别人方案的缺点,忽视了自己方案的副作用。

白:
可以有一些另外的表述,比如结构冻结,比如分词永远在进行时,都能让人更好地理解所说方案的建设性。人贵在举一反三。如果从反例中只能看到个别、长尾、噪音乃至门户之见,那很可能就忽略了真正有意义有价值的问题。

李:
对,道理是这样的。不过,直觉还是很担心五元组进入分词程序的。晚上睡不好觉。汉语是二字词为主,五元散列的情况让人心慌,老觉得会当成外国人名给打入了另册。如果v是二字词,则另当别论,可以句法处之:“反正学习也学习不完”。换句话说,不是不知道这个现象可能需要句法:即便五元组参加了分词,同样的组合在句法还是要重复一遍,否则上面的7字组就不能做统一的分析和处置。这算是支持句法处置的一个可以接受的 argument,但是,词法结构规则在句法重复,听上去不经济,实践中个人认为并不是问题。多层系统的框架下,重复的不止这一项,否则也解不了乔老爷的递归魔咒。

刚开始入行的时候,老想着 generalizations(语言系学生的通病,被教授洗脑了,一直以 generalization 为语言学家天职),总是避免规则的冗余和重复。后来有几次看到了机器学习出来的符号规则,重复冗余简单到无语,反而受了启发。如今对重复冗余的耐受强多了:只要简单,何妨啰嗦,完全抛弃了铁路警察各管一段的理念。现在是词法做了句法做,句法做了到语义也不妨再做,螺旋式上升,相互照应,只要为了一个共同的目标就好。

 

【相关】

Ph.D. Thesis: THE MORPHO-SYNTACTIC INTERFACE IN A CHINESE PHRASE STRUCTURE GRAMMAR

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白78:毛主席保证】

李:
“毛主席保证。”
这句口头禅是到北京后学会的。

白:
至少40年前就有这话

李:
我范进中举进了京城,可不就是三四十年前嘛。

以前在外省的时候,我们偶然也说:

“(我)向毛主席保证”

“我”有时候省略,但从来不省略“向”。进了京城,乍一听诧异,再一听别扭,久而久之 反而觉得别致有味道:京片子“裸奔”(参见【汉语就是一种“裸奔” 的语言】),还是比咱乡下人放得开。连对神一样的毛主席, 也照样裸奔。不明不白,把毛陷于非施事非对象的模糊尴尬地位。

毛主席保证,上面这个对毛主席裸奔的故事,句句是真。但为什么不索性省略说:

“毛主席保证,上面这个毛主席裸奔的故事,句句是真。”

因为即便裸奔 也还是要达到交流的目的。所有的内衣都脱掉是不行的。如果省掉了介词 “对”,毛主席就是裸奔的人(【施事】)了。造谣污蔑伟大领袖搁文革那会儿,是要杀头的。

毛主席没保证,我们可以说毛主席保证。毛主席没裸奔,我们不能说毛主席裸奔。说到底就是习惯表达法的绑架原理,这就是约定俗成的真意。名无固宜,俗成了,任何记忆住的符号串就可以表达任何意义,不顾文法,不要逻辑,不讲道理。

为什么NLP闹了这么多年,各派各路不可开交,但有一点是大家心知肚明的共识,就是 词典主义 (lexicalist approach) ,不管以一袋子词统计模式的形式,还是以词专家 (expert lexicon)的符号形式。总之,词典主义高于(抽象)文法,词典王国就是那花和尚,完全可以无法无天。

白:
其实不是没结构、不讲结构,而是固定用法捆绑了一个微结构。微结构不需要讲逻辑,是因为它的逻辑不需要分析,只需要呈现。而且不光在词汇和构词法的独立王国里活动,其能量经常外溢。

李:
外溢的例子,离合词算一个:绑架的词义,外溢到句法了:

“洗tm什么破澡?不洗!连个喷头都没有。要洗 就洗星级饭店的澡,这不带星的澡,真心没法洗。”

 

【相关】

科学网—【泥沙龙笔记:汉语就是一种“裸奔” 的语言】

【语义计算:李白对话录系列】

《朝华午拾》总目录

《朝华午拾:外婆的回忆》

我的外婆去世已经34年了,可她老人家的慈祥音容仍时常浮现在眼前。

作为医生的父母工作太忙,所以第一个孩子一出生外婆就来帮忙,从此看顾我们三个孩子15年,直到她去世。据说我哥哥小时候不老实,外婆只好摇着摇篮,哼着催眠曲,不敢稍有懈怠,有时候一个瞌睡过去,摇篮牵绳的手一停,他便大哭大闹。外婆说,这孩子带得太辛苦,到两年后我出生的时候,她还后怕。没想到,我小时候乖极了,从不哭闹。就是可怜兮兮的,老害病,每病必吐,常伴有高烧。还有夜盲症,最要命的是脱肛的毛病,每次入厕十分痛苦,一片狼藉,外婆要小心翼翼把脱肛顶回去。外婆一辈子生养过10个儿女,夭折过半,看我这样子,老担心我活不长。还好,因为是医生家庭,有病能及时处理,加上外婆的悉心照看,我慢慢度过了病孱的童年。有外婆照顾的孩子是幸福的,外婆总是把家整理得井井有条,热饭热菜,我们的童年无忧无虑,父母也因此可以没日没夜全力扑在工作上。

外婆是旧式妇女,小脚,没念过书,少言寡语,性情温和,从来没见过她发脾气。外婆的生活十几年如一日,足不出户,刻苦本分,与世无争,街坊邻居无不夸赞。每天一大早,天还没亮,外婆就起床,开始梳洗,她总是把自己收拾得干干净净,开始一天的劳作。看孩子,做饭菜,一刻不停。稍有空闲,她就坐在门前纳鞋底。她把碎布条用浆糊黏上晒干,一针一线纳成结结实实的鞋底,我们全家大小的布鞋都是她老人家做的。一直到她去世,留下的一大箱鞋底,我们还穿了好几年,后来才开始买塑料底的成品鞋穿。

父母每个月给外婆三块钱,作为我们孩子的零用钱。外婆手很紧,因为她要保证这零用钱维持三个孩子到月底。记得每天可以从外婆那里讨来两三分钱,我常常到街头买来一个热腾腾的小红薯头,回家跟小妹分享。这个故事我跟女儿讲,她很爱听,不时拿出来说笑一番:when you were my age, sweet patato was only two cents a piece and you always asked Granny, that is my Great Granny, for two cents to buy one and share with my antie GuGu, but never with my uncle DaBai.

记得文革初期大串联的时候,爸爸妈妈也随大流去上海杭州串联了一个多星期,由于交通堵塞不能按时回家。外婆带我们三个孩子在家,每天听高音喇叭传出各种消息,给人兵荒马乱的感觉。当年通讯不便,行踪无从打听,一家大小望眼欲穿久等父母不回。外婆急了,开始垂泪,我们孩子看见外婆哭了,也都哭了,一家老小怕失去依靠而哭成一团,连邻居也陪着掉泪。

文革第二年,外婆由于地主成分,被医院造反派勒令每天挂“反革命地主婆子”的牌子站街示众。可怜外婆小脚,哆哆嗦嗦,却要受此羞辱。这对我们孩子刺激很大,我们无论如何也无法把慈祥的外婆跟可恶的地主婆联系起来。还好,父母感觉形势不对,很快决定送外婆回乡下老家躲避,特地请我们家的至交三代老贫农的徐叔叔一路护送。徐叔叔回来说,外婆无法理解发生的一切,又舍不得三个孙儿,委屈伤心,走一路哭一路。乘汽车,过轮渡,转火车,再乘小轮穿过巢湖,最后要步行10里才到老家。最后那步行,走了一整天,人几乎瘫软。

幸亏送外婆回了老家,后来的情势越来越遭,武斗开始了。先是两派小将(“批联部”和“扫黑线”)拿钢钎匕首在街头械斗。有一场械斗就在我家门前,还记得我们又害怕又好奇,几个孩子爬到院子里一家的二楼上,透过临街的窗户观战。我胆子小,只瞄了一眼,看见双方手拿钢钎对峙的样子,然后听到口号声和厮杀声。这还是武斗初期,后来双方割据,拿起了真枪真炮,常常夜里听到枪响。我们全家也被秘密转移到批联部的司令部去了,我父母因此成了批派战时医院的核心医生(见(见《风雨春秋专栏》​;《老爸-风雨几春秋》)。

革命大联合的时候,武斗停止,妈妈把外婆接回来了,我们恢复了跟外婆朝夕相处的日子。外婆没来的时候,我们放学回家,家里总是锁着门,我们脖子上挂着钥匙,常常要到手术室去找父母,等父母手术完回家。外婆来了,家才象个家,生活安定而有秩序。


1969(?)全家包括外婆和老姨,以及邻居至友何妈妈小慧姐在家门前合影

我13岁那年,外婆患口腔癌,右腮长出鹅蛋大一个瘤子。记得瘤子刚起的时候,我们经常用小手抚摸,希望它慢慢消失。可是,那瘤子还是越长越大,外婆自己也说:这是个毒瘤子,怕好不了了。外婆临终前,舅舅和表哥都从老家赶来,最后几天主要是舅舅在床前伺候。我听外婆喃喃说,儿女都在身边,该走了。

外婆去世那年说是71岁,可实际年龄应该是69。我记得外婆生前跟我说过,她虚报了两岁,用的是外公的年龄,为的是做个纪念。外公在我出生的1960年,在老家饿死,跟我爷爷和姑姑一样成为大跃进的殉葬品。外婆虽然从来没有提过外公的故事,可以看出她一直默默在心中纪念着他。

记于2007年九月二十二日中秋节前夕

原载 科学网—《朝华午拾:外婆的回忆》

【李白77:基本短语是浅层和深层parsing的重要接口】

白:
句法的作用,第一是把远距离相关的成分拉到一个滑动窗口里来,第二才是在同一个滑动窗口里有多选的话,考虑语序因素来进一步缩小范围。

李:
说得好。第一个作用一多半是由 phrase chunking 完成的,这被认为是 shallow parsing,相当靠谱的一种操作。

白:
问题出在,如果在phrase chunking过程中出现多种可能性,混乱到chunk的边界都有分歧,这时候带着不确定性跑会很累。又回到休眠反悔的话题。边界不一致倒也罢了,中心词都不一致,更不好对付。

李:
问题不严重。关键是 chunking 基本上针对 basic XP (baseNP etc),只要具有前后条件查询的机制,搞定 boundary 一般没有问题。对于所谓 right-branching 递归,譬如 PP 的后修饰,等,shallow parsing 一般把这个问题推后,不去牵扯。

白:
形容词副词介词限定词这些都不担心,担心的是从句。从句递归以后,边界和中心词混乱的概率明显增加。

李:
shallow parsing 绝对不要管从句,连稍微复杂一点的多层 phrase 都被排除在外。这样一来,虽然理论上,窗口聚焦的任务不可能完成,但实践中,其实问题也不大,因为特别复杂和嵌套的句子,并不是语言事实的大多数,这是其一。其二,窗口的大小除了 chunking 把前后的修饰成分吃掉以外,系统还可以选择性跳过挡道的东西。事实上,deep parsing 其所以可以在 shallow parsing 的基础上进行,正是这个理由,不过做的时候小心一点罢了。这样来看,chunking 的核心就是搞定 boundary 和 确定 head。这两个都不难。一旦搞定这两点,结构的基础就打牢了。至于结构歧义,它被自然地推后了。

白:
另外就是NN结构,经常是伪歧义,所以N+N这种,最好是白名单管理,条件不满足是断开的,有罪推定。而A+N,就应该是无罪推定。条件不满足就应结合。

李:
N+N 统计上看,就是合成词为主。A+N 就是合成词以后的短语层内部修饰,大体如此。

歧义分两种。短语内部的结构歧义可以休眠唤醒,不影响分析向深度进行。因为短语对于句法已经包裹得严严实实,里面藏一些搞不清的关系,属于人民内部矛盾。

白:
嗯,比如“两个英雄的母亲”你管他几个母亲几个英雄呢,反正对外的全权代表就是“母亲”。剩下的慢慢来。

李:
清官难断家务事,句子层的语法关系,一般没必要进入短语内部去参合(当然可以找到例证,短语内外的关系是有相关性的,别说短语,甚至句法的东西也有需要进入词法内部去协调的,但是统计上可以忽略这种 interaction)。

白:
远距离相关,要拉近的就是“母亲”,“英雄”无所谓。

梁:
人民内部矛盾,家里家外有别。

李:
第二个结构歧义是basic短语之间的,这个问题比较大。典型的譬如 pp-attachment,汉语中的“的”所涵盖的 scope 问题。deep parsing 的主要难点就是与这些短语之间的歧义战斗。但是可以设想一个简单的 deep parser 绕过这些问题,遵循休眠政策,就是一切关联一律就近原则。这样 parse 出来的句法树,不能直接对应逻辑语义和理解,但是作为一个结构基础,还是能起很大作用。

白:
这个是权宜之计,只不过有休眠兜底,不怕。

李:
原因是,理论上,这样一颗全树贯穿了所有节点,从任一个节点到任意的另一个句素节点,都有路径可达,不过是直接还是间接而已,道路是畅通的。譬如 PP-attachment,如果从VG未达想要check的PP,不过就是通过NP间接达到PP,一样可以找到你想要找到的某种PP。如果语用或产品是建立在这样 pseudo-deep-parsing 的基础上,完全可以考虑把 domain 的知识,ontology,heuristics 等等带进来,去求解想要的信息目标,这比关键词不知道要强多少倍。

白:
可以“句法制导”地去做。

李:
而且,到了这个地步,也可以根据情形,重新做局部 re-parsing,这个 re-parser 可以设计成特地为了休眠唤醒而制作的。

白:
休眠的数据结构设计好了,re-parsing可以很有章法。

李:
它有两个以前没有的有利条件:(1)量上,聚焦了。面对的不是大海,而是其中一个子集。面对的甚至不是全句,而是句子的某个部分。(2)语义限制条件可以放开手用,除了 domain 知识可以引入外,其他语义条件也可以用,因为这里求的是精准,而recall已经有娄底的了。

白:
最近也可以换成其他条件,比如统计上最般配之类。

李:
对,这个很有意思,不过实现起来有一定难度。理论上没有问题。最般配是有大数据基础的。怎么用好,看功力了(更多的是工程的功力)。

剑桥有一个老学者,以前很熟,他做过类似 Preference Semantics 的 Subact 语义条件的统计工作。有非常有意义的结果,可惜那个方向的结果,距离工程上应用还有一些实现上的挑战。但是,这些都是具体的细节问题,宏观上,这一路一定会大幅度提高 deep parsing 和 理解的能力。没有疑问。

传统 parser 的一个致命的问题是内外不分,CFG 的 chart parser 是从词到短语到从句到所有的句法结构,一锅端。这个大大地限制了其 parsing 的深度、广度、鲁棒和效率。

白:
基本三条路:全息,带着所有选择跑;回溯,带着一个选择,备着所有其他选择;休眠,带着一个选择或一组一致对外的选择在主战场上分析,其他选择也不闲着,在另一个战场上以一定概率梦游。我看好休眠。

李:
phrase 这一刀很关键。实际上,phrase 是一个极其重要的层面。phrase 可以看成是有三妻五妾的大红灯笼的乔家大院。甭管内部争风吃醋你死我活。大院只有一个院子主人对外,就是老爷。其他的妻妾佣人宠物财物统统不作数。国家大事只在老爷之间进行。小家内部的矛盾可以无视,只在需要的时候用到。

白:
个别老爷之间有些扯不清楚,先用某种规则糊弄鬼子。

李:
休眠和梦游(唤醒)一般不在一个时间区间,所以一般没有瓶瓶罐罐的牵累。

白:
不清不楚的只能通过梦游获得扶正的机会。大院的边界是武断的,而这武断如果有大数据支持,就更胆儿肥了些。

李:
base-phrase 的边界不是挑战,不用大数据。倒是院子之间的关系, PP-attachement,等,大数据可以派上用场。

白:
我说的就是后一种。

李:
那个我验证过,绝对可以用上,也非常有效。就是在线实现非我所能。本质是 offline knowledge,real time use, 还不能 pre-computing,需要工程好手,也许有戏。

首发科学网 《新智元笔记:基本短语是浅层和深层parsing的重要接口
 

 

【相关】

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

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

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白76:跨层次结构歧义的识别表达痛点】

李:
一个困扰我的问题是跨层次结构歧义的表达:“他要整个高大上的节目献给全国人民”:

“整个”分析成定语。但口语中,它还有动词谓语的可能:“整个”=“整出(创制)一个”。上面示意了一下,为表达识别出来的歧义,这里需要打破 base XP 的框框。第二条依存关系路径是:“要”是谓语“整个”的儿子(情态),“节目”也是“整个”的儿子,是其宾语(O)。值得注意的是,这个歧义表达要求短语内部的定语跳出来做句子的谓语。

白:
其实,有了从句,树已经成了DAG。既做得初一,索性做十五,大面积地画DAG好了。

李:
如上图所示,加上这两条路径,基本就算在同一颗树里面表达了两个 parses 的路径。昨天一直在想这事,感觉与白老师初一十五一样,可以做。不就是需要一个表达手段么?也不影响 formalism 本体。

白:
还是有点两张皮,不是个一贯的东东。

李:
层次纠缠的结构歧义的表达,如果不生成多颗全树,而是表达在一颗树里面,的确不是一个一贯的东西,是两张皮。但是好处也是明显的,经济实惠,共享了句中大部分与歧义无关的依存关系。句法识别这样的结构歧义原则上不难。有“整个”这个词去drive的话,总是可以识别的。

白: O前是表示生产、制作、呈现意义的动词,O后是双宾动词的情况,可以激活“整个”的分解语义。

李:
先不说排歧,因为排歧很多时候人也有难处。咱们先讨论清楚结构歧义的表达。识别完了,怎么表达?需要一点斟酌。因为只有表达合适了,后去才可以用(无论是后去的排歧,或者不排歧提供给人去互动或干预)。关键是,这个表达要好用。后去觉得不好用,那就白表达了。因为大多数其他的依存关系是可以共用的,所以结构歧义,是可以在同一颗依存树里面表达的。

结构歧义在不牵涉 base XP 层次纠缠的案例中,我们已经常用。PP-attachment 就可以把PP既连接到前面的NP也连接到前面的VG谓语。因为所谓的base NP, 这个base是把后面的PP定语排除在边界之外。这样一来,表达起来完全没有层次(xbar)的纠缠问题。还有我以前显示的一个NP既接成VG的S,也连接为O,这些都好办。汉语的兼语也可以表达为前面VG的宾语(O)和后面VG的主语(S)。

在多年的实践中,发现在依存表达中,加入 base XP 的短语结构,会带来很多很多便利。结果就人为地在本来应该没有非终结节点的纯粹的以词为基础的依存树里面,强加了这个 XP 的表达。这样一来,就出现了结构歧义的层次纠缠问题。如果当时决定从base XP更进一步,允许XP的短语结构有嵌套,那么PP-attachement中的PP就可能成为一个扩展的NP里面的成分。这时候,PP再拿出来做谓语的状语,就同样面临层次纠缠问题。这表明,这一切都是人为的。是我们为了方便做了权衡的一种表达方法。关于这种baseXP 短语结构与依存关系的 hybrid 的好处,新来的朋友参见:《新智元笔记:基本短语是浅层和深层parsing的重要接口》。在多数时候,它的确是方便的,短语这一刀给我们带来了极大的便利,但在层次纠缠的结构歧义表达时候也给我们带来一些不便。不便之处,花点功夫可以克服。人为的东西都是可以人为克服的。

对于结构歧义在同一颗依存关系树上的表达,后续的应用,需要专门为这种表达写一个歧义检索程序,用起来就没有问题了。这个检索算法,我昨天想了一下,也不难。你从任一个节点出发,一路遍历它的子子孙孙。如果其结果是树上的所有节点都访问到了,那么这个节点就是天王老爷。如果有多个天王老爷,就说明有结构歧义。就这么简单。因为依存关系的结构原则是,有且仅有一个天王老爷。多了,就是歧义。在我们的“整个”的那句案例中,从“要”出发可以遍历。从“整个”出发,也可以遍历。其他的所有节点都不具有这个遍历终结节点的可能。白老师,这样有问题么?

这个方案纯粹是一个所谓 side effect 的工程,不牵扯 formalism 本体。只要想做,找一个不笨的工程师就可以做:歧义结构的依存关系表达,以及歧义结构的依存关系检索。至于检索后的应用,那是下一个系统(IE或其他语用模块)的问题,不是句法的问题了。句法合适地识别了歧义,又提供了检索接口,可以说是仁至义尽了。

这一讲的题目可以叫做NLP中“跨层次结构歧义的识别表达痛点”。

其实,也不算太痛。就是messy一点,做总是可以做的。Note:这里讨论的问题与传统 parser 生成了许多个伪 parses,鱼目混珠、沙多珠少的情形不一样,这里说的是具有相当确定性的结构歧义。不是伪 parses 成堆的传统 parser 里的那些 false alarms。这些歧义的识别大多是细颗粒度或词驱动的句法都可以预示和搞定的任务。如果上述方案实施了,就引导句法开发者多在识别上下功夫,而不要浪费资源做那些搞不定的排歧任务。前者是 tractable 的任务。

前几天提到的“一张嘴”的词启动歧义识别也是如此:

后一个 parsing 由于词驱动的 hidden ambiguity 没有表达,现在是错的。 但是如果照上面的方案解决了歧义识别表达的问题,就可以把另一个可能挖出来。

刘:
我是一只特立独行的猪,这个结果会是咋样呢?

李:

“结果”取了副词的用法,也说得过去,但错过了其名词的用法,虽然总体语义无大碍。

这个也有一个错,“树”应该做定语的,可是分析成“看”的宾语了,大局没错。

这些漏掉的歧义结构,从道理上都可以识别,如果歧义表达和检索按照今天说的方案那样到位的话。不过做起来还是有些繁难,以后再说吧。要点就是,对于一个已经基本对于 false parses 免疫了的细颗粒 parser 而言,与其追求不大切合实际的结构排歧,不如把下一步的重点放在歧义识别、表达和检索上。

首发科学网 《新智元笔记:跨层次结构歧义的识别表达痛点

【相关】

Chomsky’s Negative Impact

【语义计算:李白对话录系列】

《朝华午拾》总目录

 

【李白洪毛75:乔姆斯基批判】

【原立委按:微信泥沙龙,谈笑鸿儒,高朋满座,信马由缰,言无所忌,摘之与同仁分享。】

李:
今儿个咱要吐槽乔老爷,不吐不快。

开题:乔姆斯基,对领域的误导,或负面影响,与他对语言学的革命性贡献,一样大。

他的hierarchy,是天才绝顶的理论,是不可泄露的天机,从而奠定了形式语言的基础,用来创造、解释,或编译计算机语言,是完美的指导。可是,完美往上走一步,就成谬误。乔姆斯基拿这套理论,硬往自然语言套,导致整个领域,在所谓自然语言是free,还是sensitive,还是 mildly sensitive等不靠谱的争论中,陷入泥潭。太多的人被引入歧途,理所当然地认定,因为自然语言复杂,因此需要 powerful的文法。这个 “powerful”,是世界上用的最误导的词。

工程师发现,有限状态好用,但经不起理论家的批判:你那玩意儿太低级,不够 powerful,只能拿来凑合事儿。实际上,做过大工程的人都明白,对象的复杂,并不是使用复杂机制的理由,有本事使用简单机制对付复杂的对象,才是高手。

乔姆斯基最大的误导就是,用所谓自然语言的center递归性,一杆子打死有限状态,他所举的center递归的英语实例,牵强和罕见到了几乎可笑的地步,绝非自然语言的本性。结果一代人还是信服他了,彻底地被洗脑,理所当然以为必须超越有限状态才可以做自然语言深度分析。

为了所谓语言的递归性,人脑,或电脑,必须有个堆栈的结构才好,这离语言事实太远,也违背了人脑短期记忆的限制。世界上哪里有人说话,只管开门而不关门,只加左括号不加右括号,一直悬着吊着的?最多三重门吧,一般人就受不了了。就算你是超人,你受得了,你的受众也受不了,无法 parse 啊。说话不是为了交流,难道是故意难为人,为了人不懂你而说话?不 make sense 嘛。

既然如此,为什么要把不超过三层的center循环,硬要归结成似乎是无限层的递归?

毛:
递归成了他的宗教。

李:
不错。乔老爷的递归误导语言学,坑了NLP太久。我对他的语言学不感冒,对他对NLP的误导,更感觉痛心。一个如此聪明强大的人,他一旦误导就可以耽误一代人。被耽误的这一代是我的前辈一代(上个世纪70年代80年代),他们在自然语言理解上的工作几乎一律为玩具系统,在实际应用上无所作为,从而直接导致了下一代人的反叛。老一代被打得稀里哗啦,逐渐退出主流舞台。

在过去30年中,统计NLP的所有成就,都是对乔姆斯基的实际批判,因为几乎所有这些模型,都是建立在ngram的有限状态模式的基础之上。

洪:
从乔姆斯基的所作所为,就能分出构造机器智能和解构人类智能难度上的差异。他五十年代略施小计就把形式语言夯成了计算机的Cornerstone,可是穷毕生精力,总是在重构其语言学理论。

毛:
如果没有乔老的那些理论,人们能做出计算机语言编译吗?)

洪:
语法mapping到语义,总是要做的,不必须用形式语言,就像现在做nlp的人也不必须懂语言学。还是 David Marr,David Rumelhart 等立意高远,总想找到人机等不同智能实现上的共通计算机制。

刘:
Marr 也是人神级别的

毛:
跟上面问题类似的是:如果没有图灵和冯诺依曼的理论,人们会造出计算机么?

洪:
Babbage的分析机可行,Ada的程序/算法也早可行。其实,问题不在于出冯诺依曼还是马诺依曼,问题在于,不管他们的理论表面上如何不同,可能都受同样的约束,能力上可都能都等价。而Chomsky 研究的是这些约束能力。

毛:
那图灵不是更加么?

洪:
Turing 从机器一侧,Chomsky从人一侧。)

李:
洪爷说的是事实,过去三十年不懂语言学做NLP的占压倒多数。但那不是健康状态。不过,语言学里面也很混杂,进来的人很容易迷糊。但是,语言学里面确实有一些指导性的东西,了解与不了解大不一样。比如索绪尔,就值得琢磨。索绪尔说的大多是原则性的,有哲学的意味,是传统的非科学性的语言学,特别具有宏观指导意义,可以提醒自己不至于陷入细节的纠缠,而忘记了方向。他谈的是共性与个性的关系,语言和言语,规则与习惯,共时与现时,都很洞察、到位。

白:
我觉得线速、柔性很关键,多层次递归和远距离相关必须搞定。方法不限,八仙过海。

李:
那些已经搞定了,伪歧义也不是问题,都搞定了。有一种叫做cascaded FSA的方法,与软件工程的做法极其类似,就能搞定这些。前提是指挥者架构者不能失去全局,要胸怀索绪尔,而不是乔姆斯基。架构和interfaces设计好,下面就是模块的开发,匠人的干活,可以做到很深,接近逻辑表达,比典型的chomsky CFG文法深透。传统规则系统受乔姆斯基CFG影响太大,很不好用,而且也无线性算法,所陷入的困境与当年神经网络以及一切单层的统计系统类似。正如多层的深度学习被认为是AI的突破一样,有限状态一多层,一 cascade,以前天大的困难,递归啊远距离啊伪歧义啊,就消解于无形。

白:
数学上的函数复合。

李:
就这么一个简单的道理,结果至今批判规则系统的人,还在打稻草人,以为规则系统都是CFG那么愚蠢和单层。

乔姆斯基对nlp的误导,还在于它的短语结构的表达法。那个phrase structure破树,叠床架屋,为了追求所谓语言共性,太多的assumptions,既不经济也不好用,却长期成为 community standards,误导了不知多少人。起码误导了 PennTree,通过它误导了整个领域。,

白:
某种意义上,nlp是应用驱动的。与应用匹配,Ngram也不算误导。与应用不匹配,HPSG也算误导。抽象的误导不误导,让语言学家掐去吧。一个topic问题,扯了这么多年。)

李:
语言学家打烂仗的事儿多了,说起来这与乔老爷也有很大关系。有个 self,相关的所谓 Binding Theory也是论文无数,大多垃圾,这与老乔的负面影响直接相关。为追求 universal grammar,和脱离语义的generalizations,走火入魔,大多是无谓的口水战争,既不能推进科学,也不能推进应用,唯一的好处是帮助了很多语言学博士的选题,培养出一茬接一茬的语言学博士。可是,毕业了还是找不到工作。老乔由于其超凡的智力和名气,帮助提升了语言学的地位,但他没有能力影响市场,结果是全世界语言学家过剩,懂得茴字五种写法的落魄腐儒,如过江之鲫,谁能给他们就业机会?

这里面的要害在,所有的语言分析,不可能为分析而分析,都是为了求解语义的某种需要,可老乔强调的语法纯粹性,要脱离语义才好研究终极的机制,这个argument有历史的革命意义,有某种学术价值,但非常容易形而上学和片面化,结果是语言学家脱离了目的,脱离了需要,在争论一种分析,或一个模型与另一种的优劣。其实这些相争的方案,只要系统内部相谐,都大同小异,根本就没什么本质区别,而且没有客观的可量度的评判标准,那还不打成一锅粥。

刘:
摆脱语义,直接进入语用?

李:
哪里,乔老爷是要直接进入共产主义,要世界大同。他对语义不感兴趣,更甭提语用。语义在他属于逻辑,不属于严格意义的语言学。句法语义是分割开来的两个范畴,句法必须自制。

白:
句法自制是错误的。

李:
对传统语言学完全不分家的那种分析,老乔有革命意义,也确实推进了结构研究,但凡事都是过犹不及。句法自制推向极端,就是本末倒置,失去方向。

我做博士的时候,在一个小组会上,举一些汉语的例子,作为证据反对一刀切的句法自制,说老乔有偏差,看到的语言事实不够,结果被我导师劈头盖脸批了一通,言下之意,不知天高地厚。我当然口服心不服。问题是,我一辈子只思考一个问题,只要醒着,头脑里除了语言,就是文法,除了词汇,就是结构,突然有一天觉得自己通达了,看穿了语言学上帝,乔姆斯基。原来,智商高,不见得离真理近,智者乔老爷,也不例外。有人说老乔外语不大行,看到的现象大多局限于英语,偏见难免。的确,懂汉语的人很难完全信服什么句法自制:句法形式的约束和语义的约束很难截然分开,否则连“我鸡吃了”和“鸡我吃了”都搞不定。

说起外语,到了我们的年代,俄语退居其后了,所以我本科的二外选的是法语,到研究生才选了俄语做三外,不过全还给老师了。虽然语言是还给老师,体悟到的语言学却长存,所以也不冤。到 30 年后的今天主持 multilingual program,带着参考书,我还一样可以指导法语和俄语的 NLP 研发,语言的不同,换汤不换药也。

洪:
老乔不是上帝,他只是让咱看到来自造物主的理性之光。

李:
形式语言理论,非人力可为,绝对属于天机,单凭这,乔就是人神。吐槽乔老爷,一次抱怨完,明儿依旧是偶像。

不管我怎么批判乔姆斯基,我还是服他到不行:他老人家的威望可以把 Universal Grammar 这种乍听很荒唐的观念,转化成一个让人仰视的语言哲学理念。UG 的真理之光由此不被遮蔽。当然最厉害的还是他的 hierarchy 形式语言理论,那几乎不可能是人的理论,那是上帝之光,尽管乔老爷在描述的时候,不免机械主义,hence 造成了极大的误导。

话说回来,没有自然语言的数学化研究和启示,他老人家也提不出形式语言理论来。至少从形式上,他能把人类语言和电脑语言统一起来,达到一种人力难以企及的高度。如果没有乔姆斯基,电脑理呆们打死也不会对词法分析,句法分析,语义求解,parsing 等感兴趣,并如数家珍地谈论这些语言学的概念。这是其一。

其二,正因为乔老爷自己也知道他的形式语言理论的抽象过头了,难以回到自然语言的地面,才有他穷其一生在自然语言的语言学方面的继续革命,革自己的命,花样翻新,试图找到一个终极的普遍文法的自然语言解构。这次他就没有那么幸运了,虽然在学界依然所向披靡,无人能敌,但却与电脑科学渐行渐远,被连接语言学和电脑应用的计算语言学领域所抛弃。也许不该说抛弃,但是自然语言领域大多把他当菩萨供起来,敬神鬼而远之,没多少人愿意跟他走。

首发科学网 【泥沙龙笔记:乔姆斯基批判

【相关】

Chomsky’s Negative Impact

【语义计算:李白对话录系列】

《朝华午拾》总目录

 

【李白雷宋74:乔老爷的递归陷阱】

李:
咱们可以聊聊为什么叫 center 递归,很多人不做区分。自然语言中,right branching 递归很常见,也常可以超过三层。说的人,听的人,都不感觉是负担。道理就在,虽然“左括号”在不确定的位置,但他们都归于统一的右边界。这样一来就不需要栈(该死的栈!)结构的机制来对付它,有限状态就可以了。乔姆斯基没法拿这个常见的所谓递归来批判有限状态,因此他不得不举 center 递归作为杀手锏。可问题是,自然语言几乎没有什么center 递归。

雷:
The man who the woman who had lost all the keys was calling all day finally came

白:
关于印发关于学习落实关于进一步深化改革的决定的若干意见的通知…… center recursion的中文例子

李:
这些是人话吗?亏老乔是语言学祖师爷!乔老爷反复给我们洗脑:这不仅是人话,而且是人话的本质。

这就是牵强附会,登峰造极地牵强附会。

雷:
right branching 递归是线性的,而center embedding不是线性的

李:
这里面就形成了这么个trap,信服他的人,一个是源于他的权威性, 另一方面是把常见的右递归当成了支持乔老爷的证据。乔形式上没有误导,因为他是严谨的、聪明的,但实际上达到了误导的效果。这就是“递归教”的 fallacy.

雷:
这个是right branching sentence:
The dog slept on the doorstep of the house in which it lived.

李:
右递归太常见了,听上去也不牵强。典型的句式是 vp 的嵌套:
to ask sb to beg sb to order sb to …

雷:
我来理解一下你的意思:center embedding recursive sentences 不存在,或不出三层,所以是finate state的?

李:
不是不存在,是如此罕见与牵强,而且也从来不超过三层,除非你是恶作剧,因此它绝非语言本性。

雷:
不足为道,本来就是线性的。CFG的parsing在理论上是cubic,就是因为这个center embedding

白:
这么多计算手段怎么会被center recursion憋死,自动机加几个计数器就可以线性了,只要计数器不爆表。

李:
拿恶作剧和语言游戏作为语言能力的证据,是乔老爷的最大忽悠。

雷:
我觉得这是数学家和哲学家的通例:形式上的完美。而我们做NLU的,从来就不把这个当真,是不是?

李:
既然最多不过三层, 那么多层有限状态即可轻松应对,三层就是 3x,当然还是线性

雷:
语言学系的人不到计算机系串门

李:
世界上有人把简单的问题复杂化,递归便是一例。

雷:
呵呵,因为我们不是数学家出身?我同意你的说法:就只有几层,有方法可以对付,不必搬出递归来。

李:
他那些理论真地是折磨人,云山雾罩的。有时候感觉,全世界语言学家被他玩得够苦。我还算幸运,我们系比较开通,学句法的时候躲开了乔姆斯基,拿hpsg来充数。hpsg 至少比 gb 接地气,尽管它像个要争宠的小妾,每一个分析都要以乔老爷的主流作为假想对象,反复辩白,妾身清白。

雷:
加州那边不受什么影响吧,走的是另一个路子,如, cognitive grammar, Fillmore

李:
Fillmore 了不起,但过分细琐. Framenet 很好的概念但不实用,以前写【语义三巨人】专门论过。因为它处于语义和语用之间,不尴不尬。

雷:
我专门研究过framenet,觉得还是不够细,同你的琐碎不是一回事。是每个动词的用法还不够全,还有就是Verbnet。感觉是虎头蛇尾,后面都是学生做的,真正要用起来还不够全面。

李:
我看法正相反。我也仔细研究过它。以后找机会展开与你辩论。

白:
伟哥看过来,你的中递归

QJ:
咋了,堆栈溢出了?

雷:
呵呵,一山一寺酒一壶,三层。

李:
还真有这么狗血的不是人话的东西存在。服了我党苏州委员会。

另,再看里面的括号的中递归形式:《 ..<...<...《...》...>...>...》,凭什么这样用括号呢?双单单双......。如果双单都用,应该是交错而行,否则索性一双到底或者一单到底。

wiki 上给的英文中递归(center recursion)的狗血例子是:

A man that a woman loves
A man that a woman that a child knows loves
A man that a woman that a child that a bird saw knows loves
A man that a woman that a child that a bird that I heard saw knows loves

An interesting theoretical point is that sentences with multiple center embedding are grammatical, but unacceptable. Such examples are behind Noam Chomsky's comment that, “Languages are not 'designed for parsability' … we may say that languages, as such, are not usable.” (Chomsky, 1991)

from https://en.wikipedia.org/wiki/Center_embedding

乔老爷的 grammaticality 论,unacceptable 还 grammatical,如此偏执,也只有乔老爷这样的人神才敢了。还有这个 languages are not designed for parsability 的论点,直接与语言的交际通讯本质相抵触。

The linguist Fred Karlsson provided empirical evidence in 2007 that the maximal degree of multiple center-embedding of clauses is exactly 3 in written language. He provided thirteen genuine examples of this type from various Indo-European languages (Danish, English, German, Latin, Swedish). No real examples of degree 4 have been recorded. In spoken language, multiple center-embeddings even of degree 2 are so rare as to be practically non-existing (Karlsson 2007).

也就是说,这种东西统计上是不存在的。是臆想出来的语言学问题,然后把整个 parsing community 给绕进去。雷司令为此搭进去好几年时光,试图去求解它,终于发现只要有中递归就不存在线性算法。

白:
去掉中递归,计算复杂性从接近立方级一下子变成了线性。吃水不忘挖井人啊……

云:
不过计算机语言里这种递归比比皆是啊,尤其是 recursive decedent parser。

白:
人的短时记忆不允许。7加减2,常委数量,也就是三到四对括号,再多了就晕菜。这个可以佐证伟哥的统计结论。

雷:
不怕一万,就怕万一,冷不丁的来

白:
嗯,那就反刍呗。in memory不要搞

李:
还有一个狗血的语言学问题,也是乔老爷造的孽:所谓 binding theory。本来是语言中很小的一个现象,结果被无限夸大,引发了无数论文和论战。由 Binding theory 的三条原则而来的有那么点实践意义的规则,我15年前指导一个实习生,用了不到两个小时就实现并调试完成,后来一直没遇到什么有统计意义的挑战。

可见,一个简单的工程问题,可以怎样地被理论家无限复杂化,烦琐哲学害死人。伟大的理论家害死一代学人。

白:
学人仍然是学人,谁也没被害死,只是又想当学人又想搞工程的被害死而已。这是两种不同的打开方式,老乔根本就当另一种打开方式不存在。

宋:
自然语言规则必须受到人类认知能力的约束,否则就称不上自然语言了。

白:
认知能力有个体差异,也有亚文化差异。

宋:
7加减2应该就是人类共同的认知约束。

白:
内存不够就拿笔作记号呗。

李:
有意思的是,谁创造的标点符号,三层括号:

{ ... [ ...(...)...] ...}

怎么就明白大中小三层就足够了?

白:
摆明了就常委的菜下饭。
多一层也不该憋死人,难受一点而已。艺术一点,难受的程度可以小一点。

李:
已经有人做过大数据调查,多一层也不行,没有超过三层的。

白:
我还是坚持分析要更鲁棒,生成坚决不说。

宋:
自然语言一般来说应该是能听懂的话。如果线形的语音流无法使一般人听明白,非得要落到文字上,左右来回扫描,甚至要用笔做记号,就不自然了。

白:
公文不一定。公文是官场亚文化催生出来的东东。

宋:
非自然语言的确切信息的表达,表格是一例,图形也是一例,再复杂就要用数学公式,必须有足够的数学修养才能看明白。

白:
人能意识到的“回文”,可绝不止7加减2。“上海自来水来自海上”轻轻松松就打到上限。

李:
9-gram,还在 7+2 的极限内。来个 19-gram 的回文,就真服了。人脑就是块豆腐,这方面说过大天去,也无补。人成为万物之灵,绝对不是因为有个记忆能力,或以记忆机制做底的语言递归能力。

 

首发科学网 【泥沙龙笔记:再聊乔老爷的递归陷阱】 & 《泥沙龙笔记:狗血的语言学》 

 

【相关】

乔姆斯基批判

Chomsky's Negative Impact

《立委随笔:自然语言是递归的么?》

语义三巨人

【语义计算:李白对话录系列】

《朝华午拾》总目录

 

【李白73:汉语parsing的合成词痛点】

李:
半夜醒来,一看有好例子,白老师给的三个作业,精神头就来了。这些结果是在没有利用量词搭配的情况下的parsing,不久会加上搭配的。

最后这句笑话闹大了。
有意思的是,加了一个新词 “停落” 没做其他任何改变,就成这样了:

白:
这个很powerful

李:
量词搭配没利用,但 “颗”和“树”还是连上了,“候鸟”和“停落”的主谓也连上了。定语从句也对了,但逻辑关系却错了:“大树”不应该是“经常停落”的逻辑宾语。

finally:
那个图是程序自动生成的,还是用手现画的啊?

白:
显然自动的

李:
开玩笑,这是NLP群,要是手画那还了得。
Wait, 再一想 其实也不错: 候鸟停落大树。 “停落”的确是及物的,“大树”是表示地点的逻辑宾语。那就全对了?白老师。 这就是我说的 parser 开发,越到后来越多让创造者惊喜的地方。用句白老师的话说,“我窃喜”。

白:
O的标签是句法的,映射到语义,有若干种逻辑角色,取决于动词的实例。比如“贴”、“盖”、“钉”,都有条件携带一个表示处所的坑,叫啥随便。

李:
那是,O 具体要映射到哪一个更细更合理的逻辑语义,决定于什么动词。只要 O 对了,这个映射在后一步极为简单。就是一个简单的映射词表或词驱动规则:停落:O(物体) --》地点。事实上,抽取(IE)的完成就是类似上面的映射。所以我说,parsing 靠谱了,IE 就是个玩儿。

白:
所以基本满分了

李:
暴露了一个问题:OOV(生词问题):“停落”不在词典的时候,表现不好。汉语构词法太灵活。本来某个合成词的规则应该把 停+落 合成的,可是这是一个痛点,火候不好掌握。

这一讲可以叫汉语parsing的“合成词痛点”。

这方面我们在系统也做了一些工作,但很不全,而且动力不足: OOV 是长尾,silent majority,花了功夫,可测试集里面见效不会大。如果统计把汉字词素的语义距离都弄出来了(这对统计不难),然后凡是落单的bigram汉字都合成为一个双音节合成词(汉语文法界有很多讨论现代汉语双音化构词趋势的文章)。这个法子可以对付一多半“合成词痛点”,估计。

白:
你看看“证券资金交收处理办法”能有几个收进合成词。

李:
还是OOV问题:“交收”不认识

白: 这个不懂业务是很难做对的。“交收”是一个业务术语,既包括交券也包括交钱,就是说“证券资金”是联合结构。类似这种,在我们的业务文件中不知道有多少,交给句法做没道理,不交给句法,句法在这里的接口又是什么?

李:
加了合成词“交收”以后的parse如下:

记得中学时代入迷冰心的文字。她最善于“生造”合成词。虽然生造,汉字被她用得行云流水一般。不克服合成词痛点,是没法 parse 冰心的。就是语义距离计算为主,“交”与“收”应该在距离阈值之内。

白: 生造的接续感觉,用机器学习似乎可行。规则看样子搞不定。

我:
oov合成词痛点 更多表现在领域化过程中 普通词汇以及普通合成词油水不大。生词习得(lexicon acquisition) 是领域化基石和重要一环。

首发科学网 《新智元笔记:汉语parsing的合成词痛点》

【相关】

【语义计算:李白对话录系列】

《朝华午拾》总目录

《甜甜花絮:我觉得爱因斯坦比牛顿伟大》

【立委按】

一语成谶,10年前就为牛顿爱因斯坦这哥俩抓狂,如今索性全收养了。先是收了哲学家样子的牛顿,还是怕他寂寞,不久又收养了斯坦。哥俩倒算是能和平相处,但个性禀赋迥异。牛顿比较粘人 你把手伸过去 他就拿脸来蹭 明明自己有床 偏要睡在你床上 。斯坦则更加独立 他不回避人的亲热 但也可以长时间自己跟自己玩儿 。斯坦沉默是金。但不说则已 一说天惊 喵声尖利刺耳。好在人家每日在高维空间思维 难得回到牛顿世界来喵。总之 牛顿更接地气 斯坦则有些莫测高深。最近斯坦开始了一个疑似诡异的行为 常常把袋装食品叼走 藏到自己的床后。甜甜为此很生气 说窃书不为偷不适用于米国 偷了就是偷了。我说 拿去人家也打不开 物质不灭 最终既物归原主 end result counts 自然不能算偷。算什么咱不知道 反正不是偷。

《甜甜花絮:我觉得爱因斯坦比牛顿伟大》

《甜甜花絮:我觉得爱因斯坦比牛顿伟大》 (4131 bytes)
Posted by: 立委
Date: January 07, 2007 11:21AM

 

立委按:甜甜在老友客栈向叔叔阿姨请教了一个问题:爱因斯坦比牛顿谁更伟大?饱学五车的长辈对这个问题给了详细的解析,甜甜看得一头雾水。说了半天,到底谁伟大呀?我告诉甜甜,你应该谢谢叔叔们的解答,并写一下你的体会。孩子也有意思,面对没有简单结论的论述,她来个删繁就简,总结如下: 

甜甜:我觉得爱因斯坦比牛顿伟大 
因为爱因斯坦发明一个很难的theory。牛顿发明的theory不难也不是全对。Besides,爱因斯坦更好玩。 

谢谢Uncle Wu and Uncle Happy. 

甜甜:I want to ask you people of Old Buddies (17132) 
Posted by: liwei999 
Date: August 05, 2006 02:06AM 

one of you people tell me who is better EINSTEIN OR NEWTON, this question has been haunting my every waking moment for ages!!!!! It's driving me nuts!!!!!!!! 

甜甜, that's a great question! (17137) 
Posted by: 吴礼 
Date: August 05, 2006 05:20AM 

Both Newton and Einstein are great scientists. Note that I said scientists, not physicists. This is because their work impacts not only physics, which is where they do their researches, but the whole science. From a layman’s point of view, Einstein is cooler, because his relativity theories really stretches our power of imagination, and challenges a lot of common wisdom that we take for granted. But remember he is several hundred years later than Newton. I would imagine that in Newton’s years, it would also be fascinating to think that the same force that makes an apple fall would hold our solar system together, and in fact keep our whole universe turning like clockwork! 

Philosophically, Newton is considered as the father of modern science. He showed people that the whole universe is predictable from a simple set of equations, and all we need from the God is the first push. After that, we don’t need any external management to keep everything working. This predictability and the belief that nature’s rules can be understood are pillars of modern science. In fact, people took it to the extreme and try to model human body as a machine, a much elaborated one. 

Einstein also changed our view of the world. He showed that time and space are not separated. Instead, they are like two sides of a cube. If you turn the cube, time and space mix and change with each other. This is very hard to understand, but it solves some major difficulties that people had with physics at that time. Einstein’s success also shows that great theories like Newton’s laws are not absolutely correct. They are only approximations under certain conditions. This encouraged people to keep searching for new laws of the nature. 

Newton once said that he could make great discoveries because he was standing on the shoulders of giants. This meant that he was building on the work of people before him. This is true for all the scientists, including Einstein, as well. So, although Einstein’s theory is far more advanced than Newton’s, and far closer to the truth, he was building on top of many other great works, including Newton’s. Now you can see that it is hard to say who is greater. But if I have to pick, I’d say Newton. If God took away Einstein, science will suffer a lot. But people would more or less still think the same way. If God took away Newton, we would probably live in a very different world. 

It’s a long answer, and it is probably not easy to understand by a young girl. But I know you are a very smart girl and probably this is helpful. If you are really interested about Newton and Einstein, I recommend the book “A Brief History of Time” by Stephen Hawking. You can skip the parts about physics that you don’t understand. But the way he talks about Newton and Einstein is very interesting, and I think you can understand it. 

Have a great weekend! 

In the history of science, Newton happened to be more (17155) 
Posted by: habpi 
Date: August 05, 2006 10:19AM 

important. As a human being, Einstein was more interesting. After all, one is a citizen before a scientist. Professional achievements are a result of many social and historical factors on top of personal efforts. But one can always have his/her way to make the world a better place. That is how, I think, one is truly measured.

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

 

11月25号在深圳12月8号在北京,我分别有个NLP的特邀报告

本月底(11月25号)在深圳给个中文NLP的学术主题演讲

 

 

报告题目:中文自动句法解析的迷思和痛点报告人:   李维(京东硅谷研究院)

报告摘要:深度中文信息处理的核心是自动句法语义解析(deep parsing)。长期以来,由于中文文法缺乏显性形式手段,没有形态,功能小词常常省略,中文深度自动解析显得举步维艰,很容易陷入中文分词和短语抱团的浅层漩涡难以自拔。迄今为止的中文NLP应用大多局限于浅层分析或者端对端的系统,并没有做到语言的深度结构分析和语义理解,而后者才是自然语言万变不离其中的奥秘所在,也是中文NLP快速领域化的一条根本出路。本次演讲从通向中文深度解析之路的迷思入手,梳理中文自动处理的痛点并提出和展示可行的对策。主题涉及:中文分词(含切词、合词)与解析的关系,词类识别(POS)与句法角色的关系,离合词(如“洗澡”)带来的词典与句法的接口问题,针对结构伪歧义的细线条词典化道路,以及针对错误放大的休眠唤醒机制(负负得正)。

个人介绍:李维博士,现任京东硅谷研究院主任研究员,领导Y事业部硅谷NLP团队,研发自然语言深度解析平台及其NLP应用,目前聚焦于中英文大数据情报和舆情挖掘,以及智慧供应链应用。李维NLP工作的应用方向包括大数据舆情挖掘、客户情报、信息抽取、知识图谱、问答系统、智能助理、语义搜索、机器翻译等等。 加入京东前,李维在硅谷社交舆情公司Netbase任首席科学家,Cymfony任研发副总。Cymforny期间荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个美国国防部的信息抽取创新研究项目(PI for 17 SBIRs)。Netbase期间,设计并指挥团队研发了精准高效的20种自然语言的理解和应用系统(英、汉、日、法、德、俄、西班牙、葡萄牙、意大利、土耳其、阿拉伯、菲律宾、韩、越等),产品服务财富500强。特别是汉语和英语,具有世界一流的分析精度,并且做到鲁棒、线速,scale up to 社会媒体全网大数据。李维是Simon Fraser University计算语言学博士,中国社会科学院研究生院机器翻译硕士,在国际学术刊物和大会上发表论文约30篇。2015年,李维被评为SFU 杰出校友(建校历史上50名之一)。

from

http://conference.cipsc.org.cn/annual2017/

下月初(12月8号)在北京的架构师峰会上也要给个talk

专题演讲嘉宾:李维(博士)

京东硅谷研究院 主任研究员

李维博士,现任京东硅谷研究院主任研究员,领导Y事业部硅谷NLP团队,研发自然语言深度分析平台及其NLP应用,目前聚焦于大数据情报和舆情挖掘,以及智慧供应链应用。NLP深度分析平台具有广阔的应用前景,方向还包括客户情报、信息抽取、知识图谱、问答系统、智能搜索、智能客服、自动文摘等。

加入京东前,李维在硅谷社交舆情公司Netbase任首席科学家,Cymfony任研发副总。Cymforny期间荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个美国国防部的信息抽取创新研究项目(PI for 17 SBIRs)。Netbase期间,指挥团队研发了精准高效的20种自然语言的理解和应用系统(英、汉、日、法、德、俄、西班牙、葡萄牙、意大利、土耳其、阿拉伯、菲律宾、韩、越等),产品服务财富500强。特别是汉语和英语,具有世界一流的分析精度,并且做到鲁棒、线速,scale up to 大数据,系统质量有第三方评测认定大幅度领先竞争对手(”best of class” by Forrester,Pivot Labs Analytics)。他领导研发或参与的各类NLP应用产品获多项工业界奖项,早期包括INFORMATICS’92 (新加坡) 银奖,近十年包括企业社煤平台行业领先者(A LEADER IN THE FORRESTER WAVE),消费者商品技术(CGT)首选奖等共计17 项工业奖项,多次被主流媒体报道,包括《华尔街日报》《纽约时报》《华盛顿邮报》《财富》MSN,CBS,NBC等等。

李维是Simon Fraser University计算语言学博士,中国社会科学院研究生院机器翻译硕士,发表论文二十余篇,美国专利三项,并多次受特邀就NLP自动分析和大数据挖掘做主题演讲,近年的演讲活动包括哈佛大学医学院,台湾中研院,中国科学院和中文信息学会。2015年,李维被评为SFU 杰出校友(建校历史上50名最杰出校友之一)。

演讲:自动深度语法分析是自然语言应用的核武器

文本自然语言处理(NLP)是人工智能的重要方向,是继图像和语音处理技术(感知技术)突破之后的一个令人期待的关涉认知技术的核心环节。

大数据文本给自然语言处理提供了广阔的场地。本次演讲通过深入介绍自然语言自动分析的历史和现状,勾画出自然语言技术的应用前景。重点在展示和论证深度自然语言自动分析对于自然语言技术应用的革命性作用,这些应用包括智能搜索,情感分析,数据挖掘,问答系统和智能助理等。迄今为止的自然语言应用大多局限于浅层分析或者端对端的系统,并没有做到语言的结构分析和语义理解,而后者才是自然语言表达信息的奥秘所在。自然语言深度分析的技术正在成熟,已经到了显示威力的前夕。

演讲过程中将结合知识图谱和大数据舆情挖掘,来展示深度语法分析(deep parsing)的原理和威力。

演讲提纲:

  1. 人工智能的历史和现状简介:从感知到认知
  2. 自然语言技术的历史和现状:端对端的突破,大数据和深度学习的革命,知识瓶颈的困境,深度分析的对策
  3. 深度分析是什么?非结构的结构化
  4. 什么样的深度法分析是自然语言技术应用的核武器
  5. 应用举例:知识图谱
  6. 应用举例:舆情挖掘
  7. 应用举例:智能搜索和问答系统
  8. 结语

听众受益:

  • 对于人工智能与自然语言的从业人员,以及对自然语言技术感兴趣的人士(学者、学生、投资人、企业家、IT人士)开阔眼界,了解动态以及促进技术的产品化有益。

from http://bj2017.archsummit.com/presentation/123

专访李维:NLP助力电商智能化的台前幕后 - InfoQ

随着深度学习在图像识别、语音识别及其他感知智能领域大放异彩,人们对深度学习在自然语言处理(NLP) 的价值也寄予了厚望。再加上 AlphaGo 的成功,人工智能的自然语言研究和应用变得炙手可热。NLP 作为人工智能领域的认知智能,成为目前大家关注的焦点。

李维博士是 Simon Fraser University 计算语言学博士,中国社会科学院研究生院机器翻译硕士,现任京东硅谷研究院主任研究员,领导 Y 事业部硅谷 NLP 团队,研发自然语言深度解析(deep parsing)平台及其 NLP 应用,目前聚焦于大数据情报和舆情挖掘,以及电商智慧供应链的应用。加入京东前,李维在硅谷社交舆情公司 Netbase 任首席科学家,Cymfony 任研发副总。在 NLP数据挖掘领域有丰富的经验。

我们很荣幸能邀请李维博士到 12 月 8-9 日在北京国际会议中心举办的 ArchSummit 全球架构师峰会上就NLP做主题演讲。在此之前,我们对李维博士进行专访,一起聊聊他在 NLP 上的研究和应用成果。

NLP入门

自然语言很复杂,自然语言处理(NLP)没有捷径。所谓NLP 技能速成训练,除非指的是浅尝辄止,或所面对的是浅层的粗线条任务,否则基本上是自欺欺人。我有一个五万小时成精的定律,是这样说的:

“NLP 这玩意儿要做好(精准达到接近人的分析能力,鲁棒达到可以对付社会媒体这样的 monster,高效达到线性实现,real time 应用),确实不是一蹴而就能成的。这里有个 N 万小时定律。大体是:

  • NLP 入门需要一万小时(大约五年工龄);
  • 找到感觉需要两万小时;
  • 栽几个有意义的跟头需要三万小时;
  • 得心应手需要四万小时;
  • 等你做到五万小时(入行 25 年)还没被淘汰的话,就可以成精了。”

摘自我的博客《聊聊 NLP 工业研发的掌故》:http://t.cn/RW5nxq4

对于急功近利的人,这仿佛天方夜谭,但我想说的是,这是一条非常漫长的道路,然而并非深不见底。作为“励志”故事,《梦想成真》描述了我的真实经历和心路历程。我曾自嘲说:“不知道多少次电脑输入 NLP,出来的都是‘你老婆’。难怪 NLP 跟了我一辈子,or 我跟了 NLP 一辈子。不离不弃。” 其他关于我自己与 NLP 的故事,我有个专门系列,可以在【立委 NLP 频道】查看《关于我与 NLP》。那里还有 NLP 历史上的一些有趣掌故,有兴趣的同学也可以浏览。

立委 NLP 频道

梦想成真》:http://t.cn/RW5n5bl
立委 NLP 频道》:https://liweinlp.com/
关于我与 NLP》:http://t.cn/R5E62tn
关于 NLP 掌故》:http://t.cn/R5E6USF

NLP 要做深做透,要接近或达到类似人的深度解析和理解是一个艰难但并非不可能的历程,但我并不否定速成培训的功效和可能。毕竟并不是每一位想做点 NLP 的 AI 后学或同好,都有那个时间条件和需要去成为 NLP 的资深专家,很多时候就是要解决一个具体的浅层任务,譬如粗线条的分类(classification)和聚类(clustering)。

这时候,通过开源资源和标准测试集自我培训的方法至少可以训练一个人使用开源工具的能力,如果赶上面对的任务相对简单,而且不乏大量带标数据(labeled data),也可能会很快做出可用的结果。典型的例子有对于影评做舆情分类,这种限定在狭窄领域的任务,利用开源工具也可以做得很好。

事实上,18 年前我的两位实习生,现在也都是业界非常有成就的人物了,他们的暑期实习项目就做到了非常漂亮的影评舆情分类结果,当时用的就是基本的贝叶斯机器学习算法。对于后学,除了拿开源练手外,也不妨浏览一下我开设的 《NLP 网上大学》,或可开阔一点眼界,看到一些潮流以外的 NLP 风景。

NLP 网上大学》:http://t.cn/R4ys9Jp

NLP 架构

这次大会是全球架构师峰会,咱们可以多从 NLP 架构角度说说。

对于自然语言处理及其应用,系统架构是核心问题,我在《立委科普:NLP 联络图》里面给了四个 NLP 系统的体系结构的框架图,从核心引擎直到应用。

立委科普:NLP 联络图 》:http://t.cn/zjPxKKp

最底层最核心的是 deep parsing,就是对自然语言的自底而上层层推进的自动解析器,这个工作最繁难,但是它是 NLP 系统的基础赋能技术。解析的关键是把 非结构的语言结构化。面对千变万化的语言表达,只有结构化了,句型(patterns)才容易抓住,信息才好抽取,语义才好求解。这个道理早在乔姆斯基 1957 年语言学革命提出表层结构到深层结构转换的时候,就开始成为(计算)语言学的共识了。

接下来的一层是抽取层(extraction),这一层已经从原先的开放领域的 parser 进入面向领域应用和产品需求的任务了。值得强调的是,抽取层是面向领域语义聚焦的,而前面的解析层则是领域独立的。因此,一个好的架构是把解析做得很深入很逻辑,以便减轻抽取的负担, 为领域转移创造条件。

有两大类抽取,一类是传统的信息抽取(IE),抽取的是事实或客观情报:实体、实体之间的关系、事件等,可以回答 who did what when and where (谁在何时何地做了什么)之类的问题。这个客观情报的抽取就是如今火得不能再火的知识图谱(knowledge graph)的技术基础,IE 完了以后再加上下一层挖掘里面的整合(业内叫 IF: Information Fusion),就可以构建知识图谱了。

另一类抽取是关于主观情报,舆情挖掘就是基于这一种抽取。细线条的舆情抽取不仅仅是褒贬分类,竖大拇指还是中指,还要挖掘舆情背后的理由来为决策提供依据。这是 NLP 中最难的任务之一,比客观情报的抽取要难得多。抽取出来的信息通常是存到某种数据库去。这就为下面的挖掘层提供了碎片情报。

很多人混淆了抽取(information extraction) 和下一层的挖掘(text mining),但实际上这是两个层面的任务。抽取面对的是一颗颗语言的树,从一个个句子里面去找所要的情报。而挖掘面对的是一个 corpus,或数据源的整体,是从语言大数据的森林里面挖掘提炼有统计价值的情报。

挖掘最早针对的是交易记录这样的结构数据,容易挖掘出那些隐含的关联(如,买尿片的人常常也买啤酒,原来是新为人父的人的惯常行为,这类情报挖掘出来可以帮助优化商品摆放和销售)。如今,自然语言也结构化为抽取的碎片情报在数据库了,当然也就可以做隐含关联的挖掘来提升情报的价值,这也是我们京东 NLP 在电商领域着力要做的任务之一。

第四张架构图是 NLP 应用(Apps)层。在这一层,解析、抽取、挖掘出来的种种情报可以支持不同 NLP 产品和服务。从问答系统到知识图谱(包括对于电商领域具有核心价值的产品图谱和用户画像及其之间的关联),从自动民调到客户情报,从智能助理到自动文摘等,这些都是 NLP 可以发力的地方。

摘自《立委科普:自然语言系统架构简说》:http://t.cn/RW53AH0

NLP 团队

具体到目前的工作,我领导的京东硅谷 NLP 团队还是有很多与众不同的特色。

我们的主核是把语言结构化然后支持应用,而不是主流 NLP 的绕过显性结构解析来做的端到端深度学习。为此我们结合了人工智能领域的两大流派,以创新的多层符号逻辑(包括利用本体知识和常识的 ontology)和语言学模块作为精准分析的基础,以统计学习作为 backoff,使得两种方法互补,取长补短。

这样设计的好处不仅照顾了 NLP 的精准(precision)和召回(recall)两方面的需求,而且使得系统调控变得比较透明,容易 debug。相较端对端系统,结构化的最大优势是不依赖海量的带标数据,因为深度解析的 NLP 应用是在知识和结构理解的基础上进行的知识工程项目,而不是从表层的标注好的冗余案例中学出来的模型。

这对于京东的一些场景有特别的意义。京东不乏业务场景和 各种NLP 应用的领域需求,这些场景和领域往往没有现成的带标数据,为这些多方面的场景组织人力进行深度学习所需要的海量标注,常常不是一件现实的事情。我们的目的就是打造具有核武器威力的 NLP 深度解析平台,克服这个带标数据的知识瓶颈,为 NLP 多方面的电商场景的应用落地开辟道路,尤其是京东智慧供应链对市场需求客户情报的洞察挖掘以及产品舆情的意图挖掘,构建对于电商智能化至关重要的商品图谱(product knowledge graph)和用户画像(user profile)的知识引擎。

这条道路初期比较艰辛,需要深厚的计算语言学的功力和大数据驱动的研发,但 NLP 深度核心引擎打造出来以后就是另一番天地,这是一个赋能的核心技术(enabling technology)。你想想,千变万化的语言表达一旦有规模的结构化以后,那会是一种什么情形:各种 NLP 任务在结构的显微镜下变得有迹可循,模式清晰并逻辑化,无论是情报挖掘还是其他应用都可以做到以不变应万变,以有限的句型把握无穷的语言现象。这就是我说的 “深度解析是 NLP 应用的核武器” 的本意。我在演讲中会通过多方面的 NLP 应用场景来展示和论证这一主题。

深度解析

所谓深度解析(deep parsing),就是把非结构的文本语句(unstructured text)自动解析成为深层的结构化数据(学界也称为 logical form),就是在自然语言与数据库之间建立自然语言理解(natural language understanding)的桥梁。

主流的文本情报挖掘(text mining)是绕过结构和理解的,依靠的是端对端的自动抽取挖掘的机器学习和深度神经。在具有海量带标大数据的情况下,由于数据的丰富和冗余,端对端的有监督学习系统也可以达成很好的挖掘效果。然而,一旦领域挖掘任务变了,必须重新标注和重新学习,这里面临一个巨大的知识瓶颈,就是说,领域带标数据往往严重不足,为每一个领域的每一个挖掘任务组织人力标注一个大数据训练集来克服稀疏数据的困难往往是不现实的。这是当前 AI 和 NLP 主流面临的一个巨大挑战。

我们的对策就是融合深度解析(deep parsing)和深度学习(deep learning),结合人工智能的理性主义和经验主义方法论,各取所长,利用深度解析来保证数据挖掘的精准度(precision),利用深度学习来提高数据挖掘召回率(recall)。

以社会媒体舆情挖掘为例,面对以短消息作为压倒多数的开放领域(open domain)社媒大数据,缺乏结构分析的主流舆情分类方法面临一个精准度瓶颈(业界公认 65% 是难以逾越的天花板),而利用深度解析的结构化舆情挖掘,我们可以达到 85% 以上的精准度,整整 20 个百分点的差距,这样的精度才真正能为舆情挖掘基础上的决策和智能化应用提供可靠的保障。

在智慧供应链的选品环节,从全网数据挖掘出可靠的用户需求及其对于产品的舆情反馈(点赞抱怨及其背后的理由)是非常重要的决策情报。这是我们目前的深度分析平台落地的主要目标之一。

NLP 作用

语言的奥秘在于,语句的呈现是线性的,我们人类说话或写文章,都是一个词接着一个词表达出一个一个的语句;但语言学的研究揭示,语句背后是有语法结构的。我们之所以能够理解语句的意思,是因为我们的大脑语言处理中枢能够把线性语句下意识解构(decode)成二维的结构:语法学家常常用上下颠倒的树形图来表达解构的结果,这个过程就是深度解析(deep parsing)。

深度解析被公认为是自然语言处理和理解的核心任务,但长期以来大多是科学家实验室的玩具系统(toy systems),其速度(speed)、精准度(precision)、覆盖面(recall)和鲁棒性(robustness)都不足以在真实语料的大数据场景应用。而这一切已经不再是梦想,高精准度和高召回率(作为指标,精准召回的综合指标 F-score 要达到 90% 以上,接近语言学专家的分析水平)、符合线速要求的鲁棒的深度自动解析已经得到验证和实现,这是大数据时代的 NLP 技术福音。

再强调一遍,语言为什么要结构化?盖因语言是无限的,但结构是有限的,只有结构化,有限的模式才能捕捉变化多端的语言。话句话说,结构化是语言理解应用之本,现代的 deep parser 就是结构化的核武器。

总体而言,我们面对的是不断变化的 NLP 任务,变化中的不同业务场景和情报需求。靠谱的深度解析结果反映在语法语义的结构图上,它离领域的信息抽取和情报挖掘只有一步之遥,离情感分析或舆情挖掘可以说是两步之遥(深度舆情的确需要一些苦功夫,舆情语言的复杂多变和模糊不确定,使得舆情挖掘比起传统的以事实作为抽取对象的情报挖掘要困难)。

结构化信息抽取的作用是巨大的,有多少产品的想法,就可以定义多少种不同的抽取任务。但万变不离其宗,只要抽取面对的是自然语言,它就必然总体上服从这个语言的文法,因此深度解析成为核心引擎的系统就顺风顺水。知识瓶颈因此被很大程度地克服了,不再需要那么多的带标数据。有了 parser,只要一些示意性的带标数据就够了,开发者可以根据示意举一反三。大多数信息抽取的开发任务,在有靠谱 parser 的支持下,可以在 2-4 周内开发完成,满足应用的基本需要,后面就是维护和根据反馈的 bugs 报告,做增量修补而已。

所以说 deep parser 打开了通向应用的大门和无限可能性。对于京东的智慧供应链和电商平台的业务场景,我们的愿景是让深度解析落地开花在多个 NLP 方向上,包括提升自动客服的语言理解水平,构建商品的知识图谱和用户画像,这当然也包括客户需求和商品舆情的挖掘和应用。

中文与 NLP

比起英语和其他欧洲语言,中文的语法具有相当程度的灵活性,成为自动分析的难题。与业界同仁的交流中,我们把中文叫做“裸奔”的语言,就是说中文的表达缺乏显性的形式标志,因为中文没有形态(词尾),常常省略功能词(譬如介词),而且词序其实也相当灵活。

这些语言学的特点,加上不同地区的人的不同语言习惯,再加上社会媒体中反映出来的大量别字以及语言不规范,使得很多人对中文自动分析有很深的怀疑。这是好事儿,正因为它看上去如此复杂多变,才更需要对语言学的深刻认识和对语言工程的架构和方法有独特的创新。中文自动处理和理解提高了技术竞争的门槛。

这对我们而言,就意味着要突破乔姆斯基理论为基础的传统流行的上下文自由文法(CFG)的单层 chart-parsing,代之以自底而上的多层管式语言处理系统,从而穿越乔姆斯基层级体系(Chomsky hierarchy)的围墙,在机制上有所创新(formalism innovation)。这一切需要深厚的计算语言学的素养和积累,才有希望。这方面的理论和实践,可参见白硕老师的《白硕 – 穿越乔家大院寻找“毛毛虫”》以及我的《乔姆斯基批判》和《语言创造简史》。

白硕 – 穿越乔家大院寻找“毛毛虫”》:http://t.cn/RW5BfvW
乔姆斯基批判》:http://t.cn/R2HCmtg
语言创造简史》:http://t.cn/RAVTyiu

举例就举老友转来挑战我的所谓“2016 年最佳语文组词能力”,他给我发微信说:“钱是没有问题”,就这六个字的组词成句,可以变成不同意思的句子!哈哈,伟大的语文能力!parsing 请:

钱是没有问题;问题是没有钱;有钱是没问题;没有钱是问题;问题是钱没有;钱没有是问题;钱有没有问题;是有钱没问题;是没钱有问题;是钱没有问题;有问题是没钱;没问题是有钱;没钱是有问题。

老友说的是中文词的不同的组合产生不同的意义,给人感觉是如此微妙,机器如何识别?其实仔细研究可以发现,这样的语言事实(现象)并非想象的那样玄妙不可捉摸。先看一下机器全自动分析出的样子吧!

这里面的 know-how 的细节就不赘述了,总之结果虽然仍有少数不尽如意尚有改进空间的结构分析,但几乎每个 parse 都可以站得住,说得出道理。作为设计者,我自己都有点吓倒了。(摘自《一日一 parsing:”钱是没有问题”》,更多参见【立委科普:自动分析《伟大的中文》】,关于中文自动分析的很多有意思的案例和深入的讨论,也可参看白硕老师与我就中文NLP的华山论剑似的《李白对话录系列》)。

一日一 parsing:”钱是没有问题”》:http://t.cn/RW5rADs
立委科普:自动分析《伟大的中文》http://t.cn/RW5rJhE
李白对话录》:http://t.cn/RW5rNLM

NLP 场景与未来

有问是技术驱动业务,还是业务来驱动技术?我们坚持业务驱动,毕竟 NLP 是一个应用学科,再深的分析研究最终还是要落实到业务场景,解决业务痛点才能显示其价值。

在这个基础上,我们尝试从业务场景的点开始,逐渐借助深度解析的 NLP 平台技术,扩展到多项业务场景,发挥结构化技术的跨领域核武器的作用,帮助克服领域数据的不足,以期快速领域化。

我这个小组的成员在业界有多年的 NLP 和机器学习专业经验,但成立迄今才刚半年,一切还是刚刚开始。随着深度解析平台的建立和打磨,在京东电商的各个场景只要找准 NLP 的切入点和大数据的场景,就会有实际的效益,对这一点我们充满信心。

大数据时代的信息过载,使得人类个体消化和利用信息的能力受到严重限制,只有借助电脑的自动分析和挖掘,情报才能从噪音的海洋中被有效挖掘和利用。

那么 10 年后 NLP 会怎样呢?

回顾 NLP 的历史,语言技术真正落地开花结果还局限于少数几个方向,如机器翻译、语音系统和文本分类。今后的 10 年才真正是 NLP 的黄金时代,全面开花结果可以期待,尤其在情报挖掘、知识图谱、人机交互和智能搜索方面。NLP 是人工智能从感知全面进入认知的桥梁。

我这么说不是廉价迎合多少已经带有泡沫的 AI 现状,而是作为第一线 AI 从业人员的真实的有感而发。为什么这么说?我的根据主要有四点:

  • 深度解析技术业已成熟,接近或达到人的水平;
  • 深度解析与深度学习的融合和合力可以取长补短;
  • 大数据可以弥补 NLP 技术的不够完善之处。
  • 信息过载的大数据时代,不缺乏NLP的用武之地。

我的观点是,NLP 面对大数据时代,想不乐观都不成。深度解析是 NLP 应用的核武器。

from
专访李维:NLP助力电商智能化的台前幕后 - InfoQ

《立委随笔:做一条程序狗,外加哲学猫》

最近脑海里老浮现卓别林的摩登时代的镜头。软件工程的摩登时代就是大数据迭代。我就迷信这个迭代。

自从工程架构师把 pipeline 转起来以后 我就可劲儿往里面填数据(raw data),填鸭似的 反正是 raw 的,领域数据不嫌多。 结果就造成摩登时代的再现。Server 不用吃喝 连油都不用加,24 小时在那儿转呀,人停机不停。人就被赶着去看结果 做 regressions 测试呀。人的本性,眼里揉不得沙子。只要醒着,看到毛病就冲动,忍不住会动系统,就好像是本能迭代。气还没喘匀 新一波结果又出来了。好奇心杀不死科学家 ,但能杀伤码农呀,赶紧去看结果。real world 大数据嘛 啥都有 结果肯定是喜忧参半。看到高兴处 可以得意片刻,更新 baseline,让进步消失在数据海洋中。不高兴呢,就本能要改进系统,于是陷入人机交互的迭代“死循环”。

人被数据赶着走 等于是被 bug reports 赶着走,只不过缩短了 reporting 的过程 把客户的可能抱怨化为开发者自我的反省。只要数据真实对路(来自应用领域),量足够大不怕 over-fitting,bugs 至少是扎眼的 bugs 就会消灭在萌芽中,消灭在摩登时代的开发工程流程中。在如此流动型连续迭代中提升品质,多么爽,时时刻刻都有成就感。

只不过累得成了狗。程序猿成了程序狗。


但累,并且快乐着。

聪明的 AI 科学家希望这个迭代过程是全自动的。这边只要不断喂粗饲料 (raw big data),那边就无数次迭代出来一个智能理解系统,多么美丽的神话。据说机器认识猫 就是这么出来的,的确非常激动人心。希望某一天机器理解语言也能这么给整出来,比儿童学语言,效率高亿万倍。在那一天到来之前 我就做条狗 跟摩登时代拼了。

胡乱感慨一句。

昨天跟老搭档聊天谈做研究的人与做产品的人的不同。他非常感慨 特别是年轻人 说这些年轻人大多名校毕业 特别聪明 做 AI 大数据 算法玩的很溜。可就是不懂工程迭代的必要性 也没那个耐心。老以为 AI 产品可以一蹴而就。


大哲牛顿(Nutan)啊 在深思。

猫和狗很有比照 懒猫勤犬。但一个埋头拉车;一个老在深思,做哲学家,路都不屑看,可脑袋并没闲着。

哲学,尤其是对体系架构以及机制(formalism)的设计哲学(design philosophy),其实是极端重要的,否则程序狗再勤奋,也成不了大事。哲学猫架构好了话,程序狗多多益善。否则就可能叠床架屋,知识越多越不堪重负,最终导致系统报废,这是有前车之鉴的。

记得某年某月有个面试官问过我,假如经费没有限制,你希望做什么?这种所谓考验想象力和创造力的题目听上去很弱智:你说老实话吧,显得没高度,说大话吧,譬如学着谷歌说要解决人类长生不老的终极问题,或者学着扎根伯格的口气说要彻底根除人类疾病,或学 Elon Musk 说要帮助地球人移民外太空的话,又有些痴人说梦,因为这个世界只有不到10个超牛才有说梦而不被视为白痴的资格和本钱。其实心里的答案也是有的,就是:假如经费没有限制,我就做个50% AI 哲学猫和50%的 NLP 驯兽师,然后雇佣并培训 1001 条程序狗,买断天下的领域大数据,每天就指挥程序狗做各个领域的语言理解的迭代,扫平语言障碍,建成世界大同的巴比伦通天塔。

 

【相关】

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

【李白之39:探究自然语言的毛毛虫机制】

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

【语义计算:李白对话录系列】

《朝华午拾》总目录

 

【李白宋毛72:NLP的测不准与追求完美】

李:
这两天琢磨中文词的扩展中的交叉现象,很有意思:

1. 选择疑问句谓词(P)模式 【P 不 P】: 学不学; 能不能;好不好
2. 动补(V-Buyu)词的可能态模式 【V 得 B】:学得会;可能态否定式【V 不 B】:学不会

12交叉: 学不学得会 ?
回答是:学得会 / 学不会 (或者:能学会 / 不能学会)

上述两个扩展模式也可以倒过来交叉,于是我们有 21 交叉:

学好
--> 学得好; 学不好
--> 学得好不好?

回答是:
学得好,学得不好,而不是 学得好, 学不好

后一种交叉,实际上用的 更多的不是“得”而是“的”:

学的好不好?

谓语重心落在“好”上,而不是“学”上。这与前一种交叉不同。很有意思的现象。

白:
得字后面的补语,有定性定量之分。“接不接得住”可以,“接得住不住”不行;“打不打得倒”可以,“打得倒不倒”不行。所以“住”、“倒”是专司“定性”的,是一个二值的状态,没有程度之分。另一方面,“扎不扎得紧/扎得紧不紧”“拴不栓得牢/拴得牢不牢”都能说,但补语“紧、牢”对应的是一个连续度量,但又有一个预期的极化状态阈值。所以,面临可能补语与程度补语的句式竞争时,可能补语占优势。第三种情况是“长不长得高/长得高不高”,补语“高”并不见得一定是预期的极化状态,“高不高”只是一种关于程度的中性的疑问,这时,程度补语就反过来压制了可能补语。第一种,纯定性,只能是可能补语;第二种,强定性弱定量,可以是程度补语但是与可能补语紧耦合;第三种,弱定性强定量,程度补语与可能补语松耦合。

长不长得高,和长得高不高,完全两回事。

李:
长没长高
== 长高了没长高
== 长高了没有

但是: * 长没长得高

白:
长高,相对于自己;长得高,相对于平均水准。程度补语。

可能补语的“长得高”,对成年人是梦想,对小孩是废话,除非侏儒症。所以可能补语义微弱。否定形式“长不高”则信息量大。对小孩,形同诅咒。或者,是成人身份的一种变相认同。

“没”是现时的未然,程度补语无论肯定否定,都是现实的已然,语义上也不相谐。可能补语与“没”结合,参照时点一定移到了过去,如:“谈没谈得拢”。现时已经出结果了,只有过去某时点上这还属“潜在”。

所以,“学得好不好”本来是关于程度补语的疑问,到了“学没学得好”,就变成了关于可能补语的疑问了。

李:
分析得好 细致入理。

谈没谈得拢 只有天知道
谈不谈得拢 就看你本事了。

上次白老师说分词 (大意):分词不仅是切 还要粘。至理名言。
句子就跟西瓜似的 可以拿着刀?来切;但字就跟珍珠似的 也可以拿串子来粘它、串它(concatenation)。结果都是 词,我们建筑语言大厦的砖瓦。这砖瓦必须有来路出身 有档案背景,因此目标也算是明确,即,所谓词应该是“词典的词”。词典就是档案 背景全部可在其中绑架,才能支持语言理解。

最有意思的是离合词,因为离合词不仅要串,而且还要跳着串。“谈不谈得拢”, 这个 5-gram,需要分词分出 “谈拢” 来 才算分词到家。

谈不谈得拢 == 谈得拢谈不拢 == 能谈拢不能谈拢 == 能谈拢 还是 不能谈拢

说到底 都是围绕着动补词 “谈拢”。 其他的小词(function words)或重叠(reduplication)手段,不过是给这个核心谓词语义添加语法意义而已: 诸如 疑问(选择问句)、时体、情态。

宋:
年满18岁,具有本地户籍,在本地居住满十年者

汉语的现象说明,词不一定是单向连续的短字符串,不一定边界清楚。非词语素和词的界限并不是绝对的。

李:
这个quasi-后缀“者”, 以前论过,它要求的是 VP,而不是 V。严格说不是 VP,而是 谓语 Pred。如果主语 NP 后面接谓语 VP 的话,那么总可以把主语去掉,加上这个“后缀”,来构成一个带有定语从句的 NP:VP者 == VP的人,这个 “的” 带的是定语从句 VP 。

当然实际语料的分布中,会发现 80%(?) 以上的“者”之前的 VP 其实就是一个 V ,所以把它当成英语的 -er (-or)一样看成是词的后缀,可能会带来一些便利,但必须留个 VP 的后门,来对付 定语从句的 VP 很长很复杂的状况。

宋:
手工业者

李:
“手工业者” 算是 另一个用法 看扩展性决定是细线条的规则 还是直接枚举入词典。

白:
者---N/S
关键是辖域、分配律。

李:
“者” 翻译成英语应该是 whoever+VP,不是简单成为 V-er 就可以顾全的。Whoever 是主语的形式,放在谓语前,与中文的结构关系类同,“者” 不过是放在谓语后而已:

年满18岁,具有本地户籍,在本地居住满十年者有资格报名。
--》
Whoever VP(年满18岁,具有本地户籍,在本地居住满十年) is qualified to sign on

白:
“子女不服管教者,配偶不在本地者”

不是主语,是领项,反填至N/N的残坑。

李:
fun,then,those who/whose

汉语的大主语(或 Topic 或“领项”)是一个中文里蛮独特的句法语用混杂的现象,对应英语的结构,错综复杂一些。

白:
其实从填坑角度看就是一个纯句法现象:一坨,有个坑,萝卜可填。至于这个坑怎么来的,最初长在谁身上,不重要。其实就是一个纯结构现象,无关语用。只要摆对解读结构的正确姿势,它就自然浮现。

李:
“子女不服管教”,这话听上去感觉不完整 虽然主谓齐全 因为有个坑没填萝卜:“【谁(的)】 子女不服管教?”

“心脏病不好治。”这话听上去感觉是完整的,虽然也可以问,【谁的】心脏病不好治?

白:
有隐含的logical quantifier

李:
“心脏病” 有坑没坑?还是说 这坑有强弱之别?
“子女”对 【human】 的坑,强过 “心脏病” 对 【human】 的坑,后者信息量也更大,更需要满足。

宋:
老王的子女不服管教。老王的子女不服管教者被老王打了一顿。

李:
这里,“老王的子女”是全集,“【其中】不服管教者”应该是个子集。

“子女都是不服管教的。” 这话就显得完整了: 因为全称小词“都”虽然 mod 的是 VP,但却作用于 NP“子女”,使得其坑显得没有必要填了,因为隐含的坑就是 “【所有人的】子女”,与 “心脏病” 同:“心脏病”的坑隐含的默认萝卜也是“所有人”。

老年人的心脏病不好治。
心脏病其实不难治,但老年人的心脏病除外。

上句的第一个分句,默认萝卜是 for all human;第二个分句 做了显式的限定,修改了默认值。

回到原问题:到底坑有没有必要区分强弱?

作为对照:及物动词肯定是有强弱的。有的必须要宾语(“善于”,“赢得”),有的最好有宾语(“喜欢”,“看见”),有的可有可无(“呼吸”,“诊断”),没有的话,大众心理就补足了一个默认值,从本体(ontology)来的默认: “呼吸【空气】”,“诊断【疾病】”。

白:
“心脏病不好治。心脏病不会治。心脏病不去治。” 谓语不同,对“心脏病”的坑有影响。第三个例子,最不完整。

李:
心脏病不去治,【你】不想活了? == 【你】心脏病不去治,不想活了?
心脏病不去治,【你】治啥?== 【你】心脏病不去治,治啥?

第一个【你】应该是病人,第二个【你】可以是医生。第一个【你】直接填“心脏病”的坑。第二个【你】作为医生,与“心脏病”的坑没一毛钱关系。

白:
是。对举可以削弱“萝卜的坑”。本来有一毛钱的入账,又有了两毛钱的债务。结果欠了一毛钱。成了别人家的坑

李:
最近想,退一步才好进两步,可谓真理。一辈子能够退一步的时机不多,总是忙忙碌碌,随波逐流,人在江湖,身不由己。如果因缘巧合遇到了退一步的机会,那么一定要惜缘。追求完美,不留遗憾,其实是常态生活的奢侈,但也可以是退一步的境界和机会。

为什么退一步反而可以追求完美不留遗憾呢?因为在高歌猛进的人生中,没有时间喘息和反思,难有机会从根子上改造,肩负的是历史的负担。只有在退一步的时机,才有可能重起炉灶,把历史负担当成经验教训的积淀。虽然慢了一拍,但磨刀不误砍柴工,最终可以更加完满。历史上,苹果公司的操作系统就在乔布斯的指挥下重起炉灶大放异彩。可怜的微软就总没有这样的机会,补丁摞补丁过了一辈子。

胡乱感叹一哈。

量子力学有个测不准哲学,其实对于语言学很适用。语言作为交流的工具,宏观上的可理解性是没有问题的。但是,测不准原理表明:从本质上来讲语言学不能做出超越统计学范围的预测。语言理解系统无论怎样逼近,永远也不可能在微观上 capture everything。那天白老师给了一个很妙的例句,是:“马可波罗的海上旅行”,让通常认为非常坚固的 4-gram 词 “波罗的海” 被另一个 4-gram “马可波罗” 遮盖了。可以设想一个分词系统的第一版本是 assume 4-gram 词以上就是正确的(实践中,匹配上 tri-gram词就相当靠谱了,这可算是一个分词的经验公式 heuristic),可以 identify 词及其概念。但对于上例,这个系统从最左向右匹配,赶巧就对了;若从右向左走,就错了。

毛:
有道理。这个例子确实巧妙。

李:
咱们进一步扩大疆界来逼近真实,就算搞定了 6-gram “马可波罗/的/海" (Note: 前一篇李白对话【李白71:“上交所有不义之财!”】中说过,其实搞定 5-gram 就可以认为是搞定了汉语分词,因为 5-gram 几乎是 local context 的极限了),咱们这就突破这个极限看看......。我要说的是,我们总可以找到一个context,使得以前的任何分词(及其分析)无效。

“我的朋友生了个双胞胎,绰号很奇葩,先生出来的叫千里马,后出来的叫波罗的海。我告诉他绰号也是有讲究的,有的可有的断断不可。千里马可波罗的海不可!(Note: 千里马/可/波罗的海/不可)。”

“朋友问为什么,我说因为有个测不准原理。千里马本体毕竟是动物,与人不远,可用。波罗的海本体自然物体,无法联想到人,故不可用。”

“马可波罗”乍看何其强大,甚至大过“波罗的海”(毕竟里面藏了一个万能小词“的”,是它的硬伤),也逃不过测不准的限制。最后大胆假设一下,立委牌中文深度分析器(deep parser)神奇地利用 long distance 句法或 休眠唤醒机制 帮助突破 local context,搞定了“千里马/可/波罗的海/不可” 的分析理解,so what?总还是会有“测不准”在,譬如:

“我舰/日航千里/马可波罗/的/海/不可/阻挡。(或曰:固有波罗的海,哪里有什么马可波罗的海?曰:先生一叶障目,知其一不知其二。马可波罗的海,乃印度洋别称也。)”

牵强?然而场景合理,语句合法,概率不是0。

想一想测不准,咱们搞AI,搞NLP的,怪丧气的:系统完美,只在梦中。但反过来想,其实是对完美主义者的有益警示:追求系统的完美和静态高指标从来不(应该)是核心目标,领域化能力和动态指标才是系统打遍天下的硬通货。不要想完美的事儿,只是要问:给你领域大数据,你多快可以让系统进入角色,让它上线转起来服务业务,然后对于 bug reports 的反应和修复速度有多快,系统在使用中日臻完善,虽然永远不会完备。

所谓追求完美不留遗憾,正解应该是对于架构和formalism的近乎受虐的追求,为的是到用的时候,到领域化的时候,到修复 bugs 的时候,可以庖丁解牛游刃有余。

毛:
你这个事情的性质不属于测不准,而属于词法/句法的不完备。测不准是对每个粒子而言的,每个粒子的位置和速度都有测不准的问题。而你讲的这个情况,是说不管什么样的词法/句法都有对付不了的特例,这就是不完备的问题。

李:
资源的不完备(不可能完备),在我就是系统的测不准,貌似也就是原观测对象的不确定性。

白:
@毛 是进出不同层次没有违和感导致的。一个字当作一个字,和一个字当作语言中的词的部件,是处在不同层次的。人偏偏要搅和在一起玩。这样会闹出悖论的,不过,NLPer似乎并不关心。

【相关】

【李白71:“上交所有不义之财!”】

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

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白71:“上交所有不义之财!”】

聊一聊中文切词的 heuristics

李:
NLP 论文中常出现的一个术语 heuristics 怎么翻译好呢?想了 30 年了,用到的时候还是夹杂这个英文词,因为想不到一个合适的译法。最近想,大概是翻译成 “倾向性” 比较好。说的是某种统计上的趋向,而不是规律。

白:
启发式

李:
30年前,我有个同门学长乔毅常常鼓捣一些专业翻译,有一天他来跟我商量,问:“这篇说的是 heuristic 方法的 NLP,查了一下词典,是启发式,可这启发式翻译出来,等于没翻译,没人懂怎么启发的。到底 heuristics 是个什么方法?”

魯:
有些时候是ad hoc的意思

白:
翻俗了就是“偏方”。有例外的标配。

李:
当时我们琢磨半天,觉得所谓启发式,就是某种条件 (constraints),有时候甚至叫原则(note:原则都是有例外的),不是通常的 rule,因为 rule 隐含的意思是铁律,而这个“启发式”说的就是一种有漏洞的条件,经验总结出来的某个东西,模模糊糊是有统计支持的。明知有漏洞,但还挺实用。就这么个东西,困扰了我机器翻译专家30年。不是不明白,是明白了也还是不知道该怎么翻译。岂止一名之立旬月踟蹰,这是一辈踟蹰一名不立。

以上算是开场白。今天就来说说切词中总结出来的一些 heuristics。咱们倒过来说这事儿。把 input 想象成一个 ngram。首先说一条总的:切词中最大的 heuristic 是最大匹配原则,这是天则。

咱们来具体看看 ngram 的情形:

(1) 如果 input 是一个汉字 (unigram),当然就是一个词:因为无词可切。这是废话,但也不失为一个 heuristic,因为切词算法的最后一招就是 把字(语言学上术语是“词素”)当成词,可以保障100%召回率(recall)。因为汉字是非常有限的集合(【康熙字典】多少字来着?),可以枚举。所以废话(或常识)背后也有深刻的道理的。显然这个 heuristic 是有漏洞的,但是我们总可以用它来兜底。漏洞譬如那些所谓 bound morphemes:蝴,尴,它们理论上是不能成词的,如果万一被切词程序输出为词了,很可能是一个 bug(譬如原文在 “尴尬” 之间夹杂了空格或其他符号造成这种结果,或者原文说的就是这个汉字,不是指这个概念词素,那算是 legit 的 meta-word)。无论如何,切词模块在工程上和算法上几乎没有人不用这个 heuristic。

(2) 如果 input 是两个字(bigram) AB,而 AB 在词典里面,heuristic 告诉我们 AB 就是应该切出来的词。这个heuristic 是直接从最大匹配原则来的,几乎每个系统都这么办,尽管它当然有漏洞。漏洞就是所谓 hidden ambiguity, 理论上的 exhaustive tokenizations 中不能排除的 A/B 这种切词法。以前我们举过关于 hidden ambiguity “难过” 的 minimmal pair 的例子(见【立委科普:歧义parsing的休眠唤醒机制再探】):

这/个/孩子/很/难过
这/条/河/很/难/过。

其实,利用汉字作为 meta-words 的语用情形的话,一切的 ngram 都可以有一个违反最大匹配原则揭示 hidden ambiguity 的通例模式,是:

【ngram 】是n个汉字。

尴/是/一/个/汉字/。
尴/尬/是/两/个/汉字/。(尴/是/其一/,/尬/是/其二/。)
不/尴/尬/是/三/个/汉字/。
尴/不/尴/尬/是/四/个/汉字/。
尴/尬/不/尴/尬/是/五/个/汉字/。
.........

虽然 100 个系统有 99 个半都明知这个 heuristic 有理论上的漏洞,而且也有实践中的反例,但是都心知肚明地 follow 这个最大趋势。因为好汉不吃眼前亏啊。在切词这种早期阶段,不 follow 这条带来的麻烦太大。识时务者为俊杰,英雄狗熊在这一点其实所见皆同,说明世界上傻子并没有那么多,除了“傻得像博士”。譬如我博士论文中就倡导过用 exhaustive tokenizations 的结果来 feed a Chinese HPSG chart parser, 有意违反这一原则,把 hidden ambiguity 从一开始就暴露出来,来证明句法或更大的 上下文 对于完美切词的重要作用。理论上没有问题,实践中也弄出了个可以应付博士学位的玩具系统(【钩沉:博士阶段的汉语HPSG研究】),但到了工业应用,立马就精明起来,随大流,从了 最大匹配的 heuristic。

白:
“马可波罗的海外奇遇”

李:
哈, “马可波罗”, “波罗的海”,4-grams 哎,人名和地名打起来了,也是奇例 。

回头说 hidden ambiguity,N多年后,我们还是高明了一些,退了一步,说,好好好,好汉不吃眼前亏,咱们还是 follow 这个最大匹配原则,但可以留个后门啊。后门就取名为休眠唤醒,《李白对话录》中多篇有论,有方法,有例示(【结构歧义的休眠唤醒演义】 )。这算是在理论和实践中找到了一个比较合适的折中,不至于面对 hidden ambiguity 的“切词命门”完全不作为。

白:
谁说切词的结果一定是流,不能是图?谁说即便是流,切的时候啥样,用的时候也必须啥样?谁说即便是流、即便用的时候跟切的时候也一样,但在更大上下文范围内发现用错了的时候必须不能反悔?

李:
白老师说的几点都对。但很长时间很多人并没有认识这么清。

接着练,(3)  如果input是三个字(trigram) ABC,heuristic 是怎么体现的呢?首先根据最大匹配heuristic,排除了 A/B/C,先踢出局。剩下有 AB 与 BC 的较量,如果二者都在词典的话。这时候,heuristic 说,汉语的二字词并不是都有相同的紧密度,即便用最粗线条的二分法,也可以给一些二字词比其他二字词更大的权重来解决这场三角关系(triangle)的危机。忘了说了,如果 ABC 在词典的话,AB 和 BC 都出局了,毫无疑问,因为最大匹配永远是切词阶段最大的原则。例外怎么办?后期休眠唤醒。

(4) 如果是四个字的 input(4-gram)ABCD,hueristic 又是怎样实施的呢?(别急,这么论事貌似进入了死循环,但其实胜利曙光已经在望,bear with me a bit)。根据最大匹配这个最高原则,ABCD 如果在词典(譬如成语),句号。ABCD 中任何一个连续的 bigram 如果在词典成词的话,A/B/C/D 也出局了,根据的还是最大匹配的 heuristic(或其变种,最少词数原则)。那么还剩下什么?如果是 ABC 和 CD 在词典,两家打架, heuristic 说,两家人家打架,人多者胜, ABC 胜过 CD(就是说,可以假定权重 heuristic 让位给词长 heuristic)。同理, AB 败于 BCD,其他的情形都是显而易见的,AB/CD instead of A/B/CD, AB/C/D and A/B/C/D,不赘述。

白:
如果ML,满大街都是heuristic。

李:
所以说 heuristic 应该翻译为 (有统计基础的)趋向性。学习也好,根据 heuristics 硬编码实现也好,总之是要 follow,不要与潮流作对,除了傻博士。

(5) 如果 input 是 5个字(5-gram)ABCDE,ABC and CDE can fight: if ABC is considered to carry more weight, then ABC wins.  后面的话不用说了。到了 5-gram,可以收网了。

其实迄今绝大多数切词算法,大多依据的是 local evidence,5-gram 几乎是 local 的最大跨度了。因此搞定了 5-gram 以内的 heuristics 的相互作用的原理,也就搞定了切词,虽然理论上所有的 heuristics 都是筛子一样,漏洞百出。这一点儿不影响我们前行和做 real life 系统。

金:
@wei 老师,想请教一下您对于深度学习做分词的观点:训练语料为手工分词文本,将文字按单字逐个输入,输出是结合输入语境对文字进行分词的结果。

李:
据说深度学习分词,精准度有突破。有突破我也不会用。除非有谁教会我如何简单地 debug,如何快速领域化。何况早就过了这一村了,工具架构算法齐全,不再需要与它纠缠了。

金:
如何领域化?在特定领域操作?

白:
让领域的人再标注领域的文本,不就领域化了

李:
不愿标注呢?或 cannot afford 标注呢?错了怎么 debug?再加大标注量,重新来过?重新训练可以保证对症下药解决我面对的 bug reports 吗?

金:
嗯,看过之前您的文章,关于统计和规则之间的渊源。如果就用深度学习一个模型,是这样。最大匹配的话,错误如何修正呢?

白:
都已经是锦上添花了,再错能错哪儿去

李:
明明就是个词典打架的事儿,非要标注文本。词典是有限的,而文本是无限的。

白:
领域会突破词典。

李:
那是领域词典的习得问题(lexicon/term acuqisition),是个更实惠的活计。相比之下,领域标注分词不是个划算的事儿。

白:
未登录词也得分。领域会引进新的heuristic,使得通用成问题的地方不是问题。做减法。

李:
手工标注海量数据是一种不讲效率的办法,人类举一反三,标注反着来,是举三返一,不对,其实是举30也很难返一,隔靴搔痒。幸亏它有几个优点。一个是提高就业率,简单劳动,而且白领,有利于维稳和安定团结。另一个是为不愿意进入领域的人做自封的领域专家铺路。管它什么领域,管它什么任务,只要你给我标注,我就用三板斧进入领域。

白:
不利于语言学家的就业率,也是罪过

金:
二位老师的观点有深度,

李:
不仅是语言、语言学和语言学家,所有领域专家都有遭遇。不求甚解于是风行。天上掉下一块鸟屎,都会砸到一个速成的领域专家头上,譬如不懂语言学的计算语言学专家。

白:
背后的逻辑是不与虎谋皮。没那么简单这事儿。

金:
数据标注得有领域专家来做标准呢。

李:
要是可以选择的话,不自由毋宁死。可惜领域专家没有这个气节。乐不颠颠地为精算师去制定标准,然后让他们成为高高在上的超领域专家。

白:
“孙国峰硕士毕业于著名的清华五道口,后师从社科院金融研究所李扬成为金融学博士。他硕士毕业后便参与了中国外汇交易中心及公开市场的建设,并从此肩负起货币政策的实施、制定、监管之责,与中国金融市场及市场中的一代一代的交易们一起成长。”

看看这段话,“硕士”极容易被当成“孙国峰”的称呼性同位语。

金:
这个就是环境的作用了,不是我们能左右的。

吕:
孙国峰,硕士毕业于著名的清华五道口 ....

金:
我想到一个和目前情况类似的人,最早著书的人,是不是大部分是领域专家,因为国家,因为文化,因为其他原因投身著书行业,把知识标准化,流传下去?

白:
@金 这样的是例外吧。

金:
我只是想到这个情况,而且更极端的是这群人因为生存因素,去著书,还有可能从谷底爬上巅峰(可能故事听多了)

白:
@金 楼歪了,言归正传吧

所有的交叉歧义、组合歧义,其实在词典定好以后就是铁案了,一定能仅从词典就机械地自动遍历枚举所有情况,这是学术界早有的定论。

问题之一在概率分布。领域无关相当于先验分布,领域相关相当于后验分布。后验分布如果明显不同于先验分布,领域知识就有优势,否则就没优势。

阮:
比如说医疗领域,会有一些特殊的词,也会有特殊实体,句法的话,应该也是符合自然语言句法的,但分布应该不太一样。 我需要重新完全标注语料呢,还是标注一部分?标数据这事,谁来做,也确实很头疼。语言学家觉得和他们没关系,也看不太懂。而医学更加不知道标语料为何物。

白:
问题之二在未登录词。你说再多词典没定义都是扯,只要影响应用,没人会听你的。所以做好构词法,应付未登录词是刚需。神经是不分登录词未登录词的,就是说如果ABC、ABD都没见过,语料里标注了ABC,神经是有可能学会ABD的。并不是说要分词只有词典化一条路。而构词法是里,分词是表。学会构词法可能首先是通过分词体现出来的。神经不是“仅”学分词,而是“同时”在学构词法。比如“中证协”标注了,“中保协”没标注。神经可以学会“中保协”正确分词,但并不说明“中保协”一定在词典里。

李:
学构词法有个悖论。学会不在词典的词可能对于粗线条的任务有好处,但对于分析和理解自然语言没有什么好处,你必须同时学会这些不在词典的词的可计算的信息部件才算数,譬如句法 features,概念语义及其在本体链条上的位置,等。对于自然语言 parsing 和 understanding,切词的目的就是要获取关于该词的词典信息,作为进一步分析的基础。现在分了词了,却没有对应的词典词条,那不是白分?这就是我说的悖论。

今天遇到一个好玩的:上交所有 ...,分词为 上交所/有。

白:
交叉歧义。长词优先。

李:
我实习生说 错了,她坚持改过来:上交/所有
原来她心里想的是:上交 所有 不义之财。我说难道你不知道,上交所 有 个 大名鼎鼎 的 白老师?

白:
严正声明:上交所没有不义之财。

李:
此地无银啊?
“上交所”在90后的头脑里是个未登录词,未登录的或可免责。如一不留神道破天机,纯属意外。明儿让她进来给白老师赔罪。

吕:
哈哈哈

金:
有趣

巴:
学生菜鸟一枚,特来给白老师赔罪。
请各位老师多多指教啦~

白:
@巴拉巴拉 应该找上交所的CFO,我前CTO不管这段。

巴:
哈哈哈哈,总之是妄言了,先赔罪总是对的。

白:
@巴拉巴拉 这群有意思,可以偷到很多艺

讨论NLP居然如此欢乐,也是醉了

唐:
Heuristic=educated guess, or sub-optimum solution, 这个在算法界没有歧异呀!
ngram取5就能处理大多数问题。 我们在网络安全上学习domain name也是这么用的。

李:
唐老师给个权威标准译法吧。
启发式 不中。

洪:
“上交所有不义财!“
如何正确词划开?
分词若有人使坏,
上交所的脸吓白。

李:
今年是金融反腐年,据说金融腐败和金融政变是关系到党国生死存亡的。

唐:
个人认为: heuristic 翻译成“次优解“更好。

李:
问题是 很多时候 必须遵循。次优的言下之意是不要遵循,应该追求更优的。除了傻博士 大家都明白,次优往往就是最优。

唐:
次优的意思是,大多数要用因为找不到最优。

李:
在给定时间空间 次优就是最优。

唐:
5-ngram对中、英文分词有效,对其他主要语种是否也有效?

李:
很多浅层的任务,如分词和POS,都是主要靠 local evidence,5-gram 基本上就是 local 的一个比较恰当的定义上限。

唐:
你今天的博文解答了我的一个问题: 为什么dns domain name分析只要5-ngram就行了!真是他山之玉可以攻石

 

 

【相关】

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

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白70:计算语言学界最“浪漫”的事儿】

白:

根据什么知道“他人”不是三个动词共享的逻辑宾语?----相谐性!

李:
【human】vs【physical-object】?丢失【physical-object】vs 丢失【human】?
丢失“孩子”呢?假如是直接量相谐的统计对比,“丢失-设备”与“丢失-他人”,前者完胜。
如果是上升到类别上去做对比,丢失-【physical】与丢失【human】就有可能会势均力敌,假如 “丢失-孩子” 的说法在语料里面特别高频的话。

直接量对比最好,可是总有数据稀疏不足为据的担心。类别对比克服了稀疏数据,也可能走偏。“申领”类似,似乎也可能申领【human】? “ 损坏”好像比较单纯,很难“损坏人类”(人类够皮实的?)。到了“转借”问题复杂了,是个双宾词,大数据里面,跟 【human】与跟【physical】的都很多。当然,现场已经让【human】(“他人”)占了坑,只剩下【physical】的可能,如果要把这一套符号逻辑加入大数据相谐的统计里面去,貌似也不是很好整,虽然琢磨起来总是头头是道的。

白:
三个动词共享的话,备选坑的subcat取最小公共上位。
损坏的坑不是human,甚至不是animate,看来只能是physical
大家都从它。

李:
最小公共上位,实现起来又多了一层,而且预设了 并列结构的正确识别。看看这个问题的完满解决牵涉了多少不同层面的预设:

(1)预设并列结构识别
(2)预设最小公共上位
(3)预设排除已经占据的坑的类别

这里面的每个预设,说起来都很合理,但揉进一个算法里面就感觉有相当挑战。这只是就这一个案例的应对思路所做的抽象。遇到其他案例,也会出现其他听上去合理的应对。然后把这些合理应对整合起来成为一套相谐性checking的算法,感觉上不是一点点的挑战。

白:
显然这时候就看出来中间件分离的好处。相谐性检查也好,求最小公共上位也好,都是matcher向中间件请求,中间件回应matcher的关系,中间件并不介入matcher自身的逻辑,不介入待分析文本的结构性判断。

梁:
两个词的相谐性,可以计算出来么?或统计出来吗?

白:

李:
处得久了 粘在一起 chemistry 就确定了。大数据可以。就是如何实施的 know how 了。

白:
“避免了一个十亿人口数量级的核大国彻底倒向美国和日本成为死敌”
和谁成为死敌?谁和谁成为死敌?

1、十亿人口的核大国和日本
2、美国和日本
3、十亿人口的核大国和缺省主语
4、十亿人口的核大国和美国

李:
我昨天下午也搞定了一个痛点: 就是 “学习材料” 类。完满解决这个问题 其实有几个坎儿。凑合事儿也可以,但总觉得对于这么普遍的现象,还是形成一个一致的比较完美的解决才好,类比以前对于离合词“洗澡”的解决方案那样。

说个有趣的汉语缩略现象:

南美北美 --> 南北美
上位下位 --》 上下位
进口出口 --》进出口
AxBx --> ABx

some more examples: 红白喜事,冷热风,高低端,东南向,南北向,软硬件,中青年,中老年,黑白道,大小布什 ......

这些个玩意儿说是一个开放集(合成词)吧,也没有那么地开放;说封闭吧,词典也很难全部枚举。它对切词和parsing都构成一些挑战。这是词素省略构成合成词的汉语语言现象,还原以后是 conjoin 的关系 (Ax conj Bx),至于 ABx --> AxBx 的逻辑语义,还真说不定,因词而异,可以是:(1) and:南北美 --> 南美 and 北美;大小布什 -->大布什 and 小布什;(2)or:冷热风 --> 冷风 or 热风;正负能量 --> 正能量 or 负能量;(3)range:中青年 --> from 中年 to 青年,中老年 --> from 中年 to 老年;(4)and/or: 进出口 --> 进口 and/or 出口;(5)一锅粥(and/or/ranging): 高低端 --> 高端 and/or 低端 or from 高端 to 低端。

白:
小微银行;三五度

李:
逻辑语义解析先放一边(很可能说话的人自己就一笔糊涂账,不要勉强听话人或机器去解析 and、or 还是 ranging),就说切词和parsing的挑战怎么应对就好。冷热风 在传统切词中是个拉锯战:【冷热】风 vs 冷【热风】;“南北美”:【南北】美 vs 南【北美】。

看官说了,还是 南【北美】 似乎对路。可那个撂单的“南”怎么整呢?

白:
词不都是切出来的,也可以是捏出来的

李:
【国骂】,切词切词,只让我切,不让我补,这不是憋死我吗?不具体说雕虫小技了,要达到的目标是:Input:南北美;output:【南美 conj 北美】。

问,难道切词或 parser 还能补语言材料?当然能。不能的话,bank 怎么成的 bank1 (as in bank of a river)和 bank2(as in a com李rcial bank)?举个更明显所谓 coreference 的例子:John Smith gave a talk yesterday. Prof Smith (== John Smith), or John (== John Smith)as most people call him, is an old linguist with new tricks.

白:
高低杠、南北朝、推拉门、父母官……

李:
This last example below demonstrates the need for recovering the missing language material:

A: Recently the interest rate remains low.
B: How low is the rate (== interest rate)?  // 不补的话,就不是利率了,而是速率。

所以 parsing 中适当补充语言材料,重构人类偷懒省去的成分,也是题中应有之义,虽然迄今绝大多数系统都不做,也不会做,或没有机制或相应的数据结构做。

白:
不该补的也要那个。反方向的还不普遍?比如“海内外”

李:
听上去好像我的系统做了似的。必须说句老实话,目前还没做。虽然没做,这些个东西老在心里绕。绕老绕去问题清晰了,candidate 策略s 也有了,就是等一个时间点,去 implement。做实用系统有一个毛病,千头万绪,大多是跟林彪似的,急用先做。不急用的,甭管心里绕了多少回,往往是一等再等,几十年等一回,那一回有时候似乎永远不来似的,有时都就等到白头了。其中一个办法描述如下:假如 “南北韩” 不在词典里,但“南韩”和“北韩”都在,“南北”也许在,也许不在,不管他。切词的结果不外是:南/北韩 or 南北/韩。“揉”词的算法可以放在切词之后。最简单的算法就是再查两次词典,如成功,就把切词结果加以改造,爱怎么揉怎么揉。

(1) Input: A/Bx
Is Ax in lexicon? If yes, then
output: Ax conj Bx

(2) Input: AB/x
Are Ax and Bx both in the lexicon? If yes, then
output: Ax conj Bx

(3) Input: 海内/外:
Is 海外 in the lexicon? If yes, then
output: 海内 conj 海外

张:
李白对话将载入计算语言学历史

李:
前些时候,还真有个出版商寻求合作,要出版个啥 NLP 系列。旁门左道,从来没想要出书的,甚至写了也不管有没有读者。总之没拿读者当上帝。自媒体时代,写已经不仅仅为了读,写主要是为了写,日记疑似。与其读者做上帝,不如自己做上帝。反正也不指读者养活自己,完全是共产主义义务劳动,而且是高级劳动。此所谓,说给世界听,可并不在乎世界听不听。后来想起《对话录》,我说,也许你应该去找白老师。如果白老师愿意,倒是可以选辑修订成册。里面不乏精品,譬如最近的这篇:【李白69:“蛋要是能炒饭,要厨师干啥用?”】。

张:
计算语言学界最浪漫的事就是不忙的时候(坐在摇椅上)看李白悠悠地“怼”,慢慢地“坑”

白:
如果前缀两个字,就比较容易接受:大江南北、长城内外

李:
“大江南北、长城内外” 不同,“大江南” 、“大江北” 不在词典,而是句法组合。“大江-南” 是句法,“大江-南北” 也是句法,没有必然的必要性去补足构词材料。

白:
但是相比共享后缀,语义并无结构上的特别之处。所以补足只是针对同类现象的部分解决方案。按构词规则捏出一个有微结构的合成词才是根本。

“欧洲一体化已死,何须中国分裂?”  有个“它”或者“之”,关系会更明确。

李:
那就有点不伦不类了。“欧洲一体化已死 何须中国分裂之”,听上去成诗句了,好比
“花开花落两由之”。

白:
多好。如果像我引用的那样,就比较麻烦,总得有些关于统一和分裂相对关系的铺垫才能正确理解“中国”在其中的使动角色。

李:
想起个故事 在我知道胡适之是胡适之前,我写了句 “胡适之名句”,那还是高中的时候。高中同班一个公认的秀才,老夫子,读书巨多,平时颇孤傲,会背诵古文观止。 他马上对我刮目相看,他没料到我居然知道胡适乃是胡适之。别小看一个之,知道不知道它当年被认为是有学问与孤陋寡闻的重要区别。天地良心 我的确不知道胡适还有个之。后来知道了,不禁哑笑,哈,被学问了。秀才最后成了一辈子最铁的朋友,现在也在米国,做大学教授 系主任多年。

白:
英语“xxx specific”怎么翻译才地道?直译为“yyy特定的”读起来很不爽。比如“language specific”我宁愿麻烦点翻译成“针对特定语言的”。见到“语言特定的”这样的翻译,总感觉不舒服。但是,汉语处理已经必须处理这种因为直译导致的语言现象了。因为我们左右不了人家的翻译质量。

昨天徒步时看到的“旅游厕所”让我对降格又深入了一步。简单地看,这是动词“旅游”降格做定语修饰“厕所”。但是,1、“厕所”无法反填“旅游”的坑,这和“打火机”不同。2、“厕所”并不是与“旅游”的坑完全隔绝,它是给旅游者上的厕所。构词的微结构里面虽然没有直接出现“上”,但是这个“上”却是连接“旅游”和“厕所”的枢轴。跟前些天讨论的“孟姜女哭倒长城”里面那个没出现的“修”,有的一比。述语动词“哭”和结果补语“倒”没有相谐的共享坑,但是深层次通过“修”和“丈夫”的坑,延展开来实现了共享。

王:
我感觉是“旅游(用)厕所“,这样绑定是否可行。“上“有点窄,但“用”面大,覆盖广,只要没有反例就好。类似英语动词+ing。traveling toilet。学英语时,v+ing,分词和动名词,用来旅游的厕所 or 旅行着的厕所(移动厕所)。不知对构造新词是否有帮助。

白:
直觉“旅游”和“厕所”也是通过“上”实现了回填。等下我画个图验证一下。“用”也还是意犹未尽,不是严格用填坑关系串起来的,是一个虚动词,“上”是一个实例。

梁:
我有点忘了,“孟姜女哭倒长城”是孟姜女晕倒了,还是长城倒下了?好像两种理解都可以。

白:
长城倒了。
旅游[的](上、用……)[的]厕所

双线是“旅游”成为“厕所”定语的路径。简化一下:

把phi_1、phi_2缩并到“旅游”,形成虚拟节点“旅游'[S/N]”的话,上图就进一步简化为:

回填结构昭然若揭。phi_1是“旅游者”,phi_2是“上、用……”。

王:
第一个图好理解,简化后自己有点跟不上了,呵呵!当然白老师心中是门清的,只要可操作就是好的。

李:
为了一个定语 弄出两个无中生有的节点 才把这根线搭上,够绕的。某人 v 了厕所
此人 旅游,因此 旅游厕所就是为某些旅游的人所v的厕所。萝卜坑貌似搭上了,不过绕了这么一大圈搭上了又有啥好处呢?

白:
1,如果对不能反填置之不理,这一步大可不必。2,深层语义结构本来如此,顺藤摸瓜找到相谐的反填路径,看起来是句法任务,实际已经是语义任务。所以parser只做到降格就可以收工了。

李:
对于 “v (的)n”,知道 v 是 n 的修饰语 是根本,v 的坑 对于语言理解不重要,或无关系,因为语言中的谓词,填不上坑或不值得填坑的,是常态 是多数。需要填坑的(处于clause里面的)谓语动词是少数,多数是非谓语动词。即便谓语动词 一来也常省略萝卜
二来可填的坑 句法痕迹也比较明显直白,不会那么绕,少数远距离例外。

白:
对句法不重要,对语言理解不能说不重要。无中生有只是假装,其实联想到的实例都是有的。旅游厕所真的就是那个意思啊…… 难不成碰到了那个意思还要过河拆桥,告诉别人不存在这个桥。

王:
我觉得白老师对新词的剖解挺好,词生有根,把根找到是件有意义事情。当然在有些处理新词场合,可能不需要处于隐形的中介出场。一旦需要时,能有套路可找到,那么这价值就体现了。这也是机器搜刮了词典中的多种关联后得到吧。不排除有些情况可能找不到,也有可能找出了多个。这可能更大视野来考虑相协。

白:
刚才用“坑论”试了一票英语例句,巨爽。

李:
Man 填了万能词 is 又填 fat 中间还来个 +N  看上去有点复杂 (N+ 是定语,+N 应该是后补同位语)。/N 在身边没找到萝卜 就进休息室了 +N 守株待兔 等待左边来客,这一套蛮绕。

白:
@wei 别看man填了那么多坑,除了一个花了额度,其他都是免费的,而且都说得清来由。这个免费额度的机制,看来真的是universal 。

“自从有了智能移动电话,我的智能、移动和电话都在减少......” 这段子,又涉及微结构了。

宋:
“制裁没起作用,朝鲜又爆炸了氢弹。”其中,“制裁”的受事是“朝鲜”。机器没有相关的背景知识,能发现这种论元关系吗?

李:
“制裁没起作用 美国只有先发制人一途了。”

白:
“制裁没起作用,中国躺枪。”

李:
对于 hidden 论元 既然说者都不愿显性表达出来,为什么要挖出来?在哪些应用场景 需要挖出 hidden roles 哪些场景不需要?机器翻译基本不需要,信息抽取和大数据挖掘的应用也基本不需要,explicit 论元都成山成海冗余无度呢。自动文摘的场景不需要。阅读理解的场景似乎是需要的,但这也看哪一种level 的阅读理解,四级阅读与六级阅读 要求不同。总之 感觉多数场景不需要。实用主义来看 做了也白做 何况做也难做好。

白:
这根本不是个别词的问题,而是场景的问题。在先行的大场景中各自什么角色,决定了填“制裁”坑的萝卜是谁。向后找萝卜,方向反了。

“耳朵聋了,莫扎特的音乐照样演奏。”
“耳朵聋了,贝多芬的音乐照样演奏。”

吕:
这个需要接入外界知识了

白:
第二句有歧义,第一句没有。原因,就是大家知道莫扎特和贝多芬谁耳朵聋了。可以把“贝多芬耳朵聋了”看成一个先行场景,“联立地”决定后续空白坑的填充。重要的事情说三遍,只要语言不要常识不要常识不要常识。Simultaneous anaphor

 

【相关】

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白69:“蛋要是能炒饭,要厨师干啥用?”】

李:
“炒饭” 默认是合成名词,但也可能是动宾结构的 VP,与 “烤红薯”、“学习材料”,甚至“已成事实” 类似,汉语中极为普遍的现象。今天想,从“炒饭”到“蛋炒饭”、“酱油炒饭”,后者的名词性增强,动词性的可能减弱, 但其实也不是不可能翻案:

A: 我很笨,我不会炒饭,我炒饭不好吃。
B: 你蛋炒饭呀,酱油炒饭呀。你如果蛋炒饭,就不会不好吃了。

“蛋炒饭” 里面的微结构是 clause 不是 VP,“蛋” 是【instrument】or【material(ingredient)】做主语。这不影响它可以从词法(morphology)上带有clause微结构的合成词转化成句法(syntax)中的VP,理所当然地再要一个主语:

“蛋能炒饭,肉也能炒饭,菜也能炒饭,没有不能炒饭的。”

白:
S降格为N+,需要统计支持,需要字数等条件。

“蛋要是能炒饭,要厨师干啥用?”

S自带的S+,先跟S搞定,回头S再降格。微结构分原始结构和定型结构。原始结构没有降格处理,定型结构加上了降格处理。即使降格,仍然存在填坑关系,但是呈环状,降格--修饰--填坑关系呈环状。颠覆,不仅仅是打开微结构,而且要“去降格化”,全面复辟到原始结构。

李:
白老师高大上的思路,隐隐约约似乎看到了端倪,但不敢说真 follow 了。主要是白氏术语多,但没有术语工具书或密电码,譬如: S, S+, 降格,原始结构,定型结构,填坑关系,呈环状,去降格化 ......

“蛋要是不能炒饭,啥子能呢?”
“蛋不仅能炒饭,蛋黄还能做月饼,蛋清还能美颜,连蛋壳都能做工艺品。”

蛋能着呢,一身是宝。相比之下,厨师最多就是做个饭,厨师不会美颜,也做不了工艺品。蛋与厨师,谁高谁下,不是一目了然吗?这是大学生辩论乙方的辩路。白老师代表甲方,立论是:“蛋要是能炒饭,要厨师干啥用?”

白:
按构词规则捏出一个有微结构的合成词才是根本。

李:
秀一下 捏出啥样子较好。

白:
上午徒步……方便时画几个图上来。

白天徒步时,多处看到“旅游厕所”的牌子。“旅游厕所”的微结构是啥?与“蛋炒饭”不同,“旅游厕所”并不存在翻盘的可能。

旅游只有一个标配坑,而且subcat是human类型。厕所无法填入。

李:
蛋炒饭的图示,pos 是 N,词法内部微结构就是个【主谓宾】。白老师图示的微结构没看出做主语的痕迹,不知道为什么。是因为主语要查chemistry,蛋不是 human 不够格吗?那个 with 降格 没看懂。

白:
说的对,蛋不是核心成分,是外围成分。用一个虚拟介词拉到动词势力范围来,不够格作主语。

李:
去降格化 回到了这个合成名词的动词 subcat 的潜在能力,it is a candidate 2-arg verb:/2N, 这就为翻盘成为 VP 谓语造就了可能。 翻盘还留有一个 human 主语的坑给句法。

白:
但 蛋还是不够萝卜资格。谁炒?所以那个段子,蛋要是能炒饭,要厨师干啥,之所以好笑,就在于,把蛋和厨师相提并论,

李:
“蛋” 在 “蛋炒饭” 里不够格,在 “蛋能炒饭” 里够吗?

白 :
也不能,是穿透的,能用蛋炒饭 的意思。
不够格的和够格的相提并论,核心成分让步,只能是修辞,不能是其他非核心成分。

李:
这是句法主语与逻辑语义错位造成的幽默。的的确确是句法主语 ,符合主语的一切分布,甚至可以放在(状语)从句的分布模式里:如果 S Pred,S 如果 Pred:

“如果蛋能炒饭”
“蛋如果能炒饭”

【工具】和【材料】 做句法主语在汉语是天经地义,仅次于【施事】做主语,比【受事】做主语还常见。其实英语亦然。

白:
问题是我这没有形式主语标签,句法主语标签毫无意义。我不想沾它,而且不沾也不影响。

李:
句法主语的独立性 总之是有依据的。什么叫 “核心成分让步,只能是修辞,不能是其他非核心成分”?

白:
就是那个角色不是human了,至少也是拟人化的。这才可以当作修辞用法。

李:
哦 那是修辞 ,修辞很常见的。

白:
蛋不是修辞用法,不在此列。

李:
“蛋” 从主语坑让一步,自己降格为PP,作状语?

“蛋炒饭” 里面, 既然在 v 前有 n,鲁棒的系统默认不降格的,因为选无可选 滥竽充数了。人的语言理解过程感觉也是这样的。

白:
鲁棒的系统应该在语义层面无计可施时,把它加回核心角色,不降格,修辞用法。句法层面作状语,并没走远。

李:
不降格, 到不得已时再让位(主语的交椅),而不是先降格 留个坑,等还不见影子的萝卜。

白:
怕甚?无非是句法功劳少点,语义功劳多点而已。

李:
不太合节省原则。句法存在的认知基础,就是给语义省力。

白:
又没到位,没看出省力了

李:
默认涵盖了多数情形 不费力 不用常识。不得已再用。遇到 n v n 就默认svo,当然省力了。

“鸡蛋拌番茄”,“鸡蛋” 也是降格?

白:
当然。翻译成英文,不也得降格么

李:
鸡蛋用番茄,鸭蛋用土豆 ...
(as for eggs please use tomato ...)
谁用?也是降格。

白:
谁会用谁用。反正鸡蛋鸭蛋不会,除非修辞。但修辞也不是as for的意思。

李:
哈 鸡蛋“能”用 鸡蛋不“会”用。就如乔老爷批判人工智能说 “潜艇不会游泳”。

图中 N+ 怎么回事?S+ 是N因为不够格而降格为状语,哦 N+ 是做了定语,动词委屈降格做了定语。父子翻转。

白:
N+是动词不经由定语从句,直接做了定语。

李:
经不经 【定从】 关系不大,为什么又“去降格化”?
其实微结构所谓降格都是做给人看的,讲究一个事出有因,但既然在词典里面 其实不必讲这个合成词内部的故事。就是绑架 洗脑即可。关键在微结构的V的潜在翻盘性。

白:
去降格是源头,降格是过程,N是结果。要想翻盘,就要回到源头,而不是回到过程

李:
那你那图示次序反了,源头弄在中间了。降格那一节 不提也罢。降不降 都是 N 了, 词典规定的默认。汉语词法句法道理相通,但词典词法不必讲理。 句法不讲理就不行。

白:
我没有次序含义,就是一个个罗列出来。
词法捏出未登录的合成词,还是有法可依的。

李:
对 对于open词法 需要捏,open morphology 必须有法 讲理。

降格者何时升格?修辞何时实现?修辞实现用标记吗?
green ideas 能 sleep 吗?“小红帽发了一顿牢骚” 怎么弄?还有很多很多灰色地带,资格不好认定的地带。要 【human】 的,【org】 不行吗,【animal】 不行吗?

白:
顺杆儿爬,顺杆儿滑。

李:
不过那个降格而捏的图示 真 implement 还有一些沟沟坎坎。 不过是给了个捏的道理罢了。道路依然不明。

白:
句法上承认不相谐的依存关系,语义上就只有修辞一条退路。但句法上到底承认不承认,有很多策略选择。

李:
但的确有灰色地带 介于修辞和正解之间的。坑与萝卜的 chemistry 是一个 spectrum,不是一个死条件,跟找对象一个德行。凑合事儿的也有过了一辈子的 还不少。

白:
这里问题不是给什么句法标签,而是最终是否碰的上。碰的上就不怕。

李:
碰不上就升格凑合?然后做个标注 这是凑合的修辞萝卜?

白:
不管在二楼碰上还是在三楼碰上都没关系。“蛋炒饭”的例子,“蛋”升格不就成了修辞萝卜了么?这是需要外力的,比如与厨师相提并论。没有外力,升格的可能性微乎其微。当然,形式的不算。既然升格,就是冲着逻辑的核心角色来的。“蛋”的工具主语的解释和修辞解释的不同就说明了问题。

李:
工具解释是临时职称,修辞解释是代理主任。临时是没办法 先凑合。乔老爷的名句 都不应该升格。因为没有纯句法以外的外力。“绿色思想今夜无眠”。“绿色思想”只能看成是“今夜无眠”的某种状语?

白:
还有另一种可能性,就是“绿色思想”看成专名。比如酒吧的招牌。酒吧再无眠,就是修辞了。同样拟人,以酒吧拟人就比以抽象事物拟人更靠谱点。

李:
是啊 这是spectrum, 讲的是本体资格距离。 其实还是三角恋力量对比的策略最实用,二元匹配不好对付灰色 三角就容易了。脚踩两只船 不得长久。最后当事人必须选择 是“他” 还是 “他”?凭着感觉就行了 选择通常不难。没有比较的选择就太难了。

王:
蛋炒饭,蛋能炒饭,真是够研究的。看了李白老师关于“蛋炒饭”这菜名讨论,感觉有些菜名无不用其奇,不考虑NLPer的辛苦,NLP很多性能不高,就坏在这“菜”上了,只要能解决就好,本来NLP大山就多,可这零碎的泥坑也不少。

白:
“蛋炒饭”其实是两个问题。一个是通用能产的构词法问题,一个是特定语境下的反悔问题。通用能产的构词法,就算没有,也可以通过“词典硬性定义+原始微结构”给反悔留出线索。通用能产的构词法怎么才能有?各种在句法层面使用的不太多的“降格”手段,在构词法层面可以有。这是关于“蛋炒饭”讨论的核心。

【相关】

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白之68:NLP扯着扯着还是扯到萝卜填坑】

李:
发现 “引进” 与 “引入” 可能方向不同 虽然应该是同义词。读【李白之29】(“依存关系图引入短语结构的百利一弊” ),突然觉得不对劲 这不是我的原意。原来想说的是,“依存关系图引进短语结构的百利一弊”,或者,“短语结构引入依存关系图的百利一弊”。a 引进 b,语义主体是 a 而 b 是逻辑修饰成分;b 引入 a,a is semantic head while b is modifying element。不知道这个语感对不对 是不是语言共同体的 还是语言学家的走火入魔?

另 并列排比的力量很大 汉语为最 英语也有:

“One in the morning and one afternoon”

力量大到了可以生生把 one afternoon 拆散,棒打鸳鸯 可 NLP 界对这种现象研究和应对却远远不够。排比句式的自动处理及其与parsing 的无缝连接 可以做一些博士课题 排比是并列的延伸,而并列现象早就公认为是nlp的拦路虎之一。

白:
何以见得?程序员会首先说,编译通不过

李:
万一编译器鲁棒通过了呢。

两个什么?论最近原则 是两个西红柿。但还有一个更大的力量,就是前面说过的排比的力量:一个x ……两个【 】。

白:
通过的那种编译不叫鲁棒叫自作多情。如果论排比,那“一个啥啥”前面也得加“如果啥啥”。

李:
排比的力量真地很大 感觉强过距离 虽然这几句不 make sense.

白:
“孩子”是称呼对方还是指称对方子女,这是个问题:

白:
“拍的一手好照”……第一次见到这个说法。

李:
洗的一把好澡
吃的一桌好饭
拍的一屁股好马
吃的哪门子醋
吃的一坛好醋 双关 嘲讽

白:
你那些统计频率够高,这个不行

李:
露一手
拍一手好照片
踢一脚好球
踢的一脚好球
想一脑门心思?

“脑门” 与 “心思” 搭配,“一手” 却与 “照片” 并不怎么搭,“一手” 与 “拍” 似乎搭。

白:

如果“所”负载“他所说”,那么“他所说的”就是“所”填“的”坑。交叉了不说,感觉有点怪。
“所”是个纯粹的逻辑宾语提取算子,“的”则广谱一些,既能提取逻辑宾语,也能提取逻辑主语,而且接名词能构成定语,不接名词自己就升格而名词化。

李:
小词负载结构 也负载语义吗?我想请问的是 白老师系统如何区别 “所” 提取宾语的标配,与 “的” 既可提取宾语 也可以提取主语?这个区别如何在语义上实现?体现
在 pattern rules 里面的话,这个区分很容易实现。

白:
词负载语义结构,使用的是subcat类型演算。也就是说,“所”和“的”的提取对象,在cat层面不做区分,在subcat层面做区分。“的”提取“剩下的那个不饱和坑”所携带的subcat,“所”提取“代表逻辑宾语的那个不饱和坑”所携带的subcat。如果两个以上坑不饱和,如“卖的”,则取两个坑的subcat的最小公共上位(上确界):sup(human,human,object)=object。等待一旦其他成分做出更加specific的限定,比如“买的不如卖的精”或者“卖的都是假货”,再图改变。

李:
那是 unification 的本来意义:unspecified until more specific

两个小词提取(代表)的不同,在 subcat 演算上实现。这个 subcat
是谁的 subcat,又是怎么做 subcat 演算的?对于实词,cat 决定句法(萝卜与坑 以及 mods),subcat 决定语义(semantic lebaling 解析逻辑语义),我们可以想见。
对于小词呢?

白:
小词要具体分析

李:
从哪里看出来 “所” 指的是宾语。

我的所爱在高山。
我所爱的在高山
我所爱在高山
我所爱的人在高山。
我所爱的东西在高山。
我爱的在高山。
爱我的在高山
*所爱我在高山

白:
上面讲的“所”和“的”,我们用的词是“提取”,意思就是说它的subcat是copy来的,在copy之前,它是一个指针变量。说清楚了,谁填你的坑,你提取谁的哪个坑所要求的subcat

李:
“爱我” 只剩下一个萝卜 所以 “爱我的” 就是那个萝卜(代表)。为什么 “所爱我” 不成立?“所我爱” 其实也不成立,只有 “我所爱” 才成立,这个体现在哪里?

白:
我不管什么不成立啊,又不做生成只做理解。做生成也不这么做

李:
哈 这总是少了一个 leverage。赶巧了 词序不对的序列 不会出现 因此把词序 leverage 从 parsing 中扔开 貌似多数时候可行。但总是会遇到某种时候,词序的条件恰好就起到了帮助 parsing 的作用。

白:
subcat完全相同才会考虑次序,这时逻辑宾语右侧填坑优先。但是“所”提取逻辑宾语是硬性的,比只是“优先”来得更加强大。所以有了“所”,就轮不上这些右侧优先了。

李:
这种优先度的调整 听上去是宏观算法的考量,而句型subcat里面所规定的词序(如果词典规定的话)则是微观的。后者比前者更加精准。

白:
前者更加robust。我之所以放弃pattern,就是因为它管了不该管的事儿。

李:
动词句型的subcat,管得恰到好处呀,句型里面说在左边,那就一定在左边。

白:
好好说话是生成该管的事儿。而在各种糟糕语序下尽可能猜测对方意思是分析的事儿。

李:
句型里面的词序规定,与对小词的规定,以及对实词的规定(强搭配规定实词本身,弱搭配规定实词的本体)。所有这些规定都是一以贯之的。不管是分析还是生成,一个句型长什么样子 是植根在句型 subcat 的词典里面的。这是词典内语言知识。至于这个知识用于分析,可以适当放宽而鲁棒,或者用于生成,适当收紧而顺溜,那是知识的实用层面的考量,而不是知识本性发生了变化。

譬如 “邮寄” 带三个坑,其句型就是:

1. [human] 邮寄 [human] [object]
2. [human] 把 [object] 邮寄 (给) [human]

白:
理想的词负载结构,是可以100%把句型语序再现出来的。使用刚性方式(override)还是柔性方式(优先级),只不过是实施当中的工程选择,与理论无关。如果我愿意,也可以都采用刚性方式。但是我不愿意。比如及物动词六种组合语序,双宾动词24种组合语序,其中有多少种是合法的,我不需要关心。也不会用罗列的方式去挑出合法的组合。

李:
不同策略的选择 如果信息无损 当然无所谓。说的就是,在采用优先级柔性方式对付词序的时候,至少在词典化的句型信息方面,条件是受损的,词序这个显性形式没有得到充分利用。弥补它的手段包括中间件的查询。但是中间件的查询,其本性是隐性形式的使用,而词序是显性形式。

白:
没看出来受损。

李:
受损在:本来是由谓词本身来决定萝卜的词序,作为条件之一来填坑,现在却交给了谓词以外的东西。交给了算法中的优先级 and/or 中间件的查询。这个损失蛮显然的,对于所有把谓词本身与其句型的词序规定分开的算法。

白:
搞混了吧,这是谓词自带的,不是交给了算法。

李:
谓词自带词序??

白:
第一个坑、第二个坑谓词自己是有指针的,自带优先序。

李:
NP1 eat NP2:NP1 NP2的词序是词典决定还是......?至少 S/2N 貌似没反映词序。这个2N 里面没看出词序信息。

白:
说的就是第一个坑优先左侧结合,第二个以后的坑优先右侧结合。句法不管而已,subcat管。但是句法和subcat是时时刻刻互通的啊。不相谐时看后续选择。

李:
第一个坑优先左侧结合,这个东西,是对于所有 2-arg 的谓词有效,还是可以对于不同谓词有不同?如果是前者,就不能说是词典信息决定词序。

for another example:

1. translation of NP1 by NP2
2. translation by NP2 of NP1

这类词序原则上都是谓词 translation 在词典就决定好的,到了具体句子坐实其中之一而已。

白:
比如“饭我吃了”,1、吃是S/2N。2、“我”最先从左侧遇到“吃”。3、“我”与其中一个坑相谐。4、锁定human,留下food。

“我饭吃了”:1、同上。2、“饭”最先从左侧遇到“吃”。3、查相谐性,发现是第二个坑subcat相谐。4、锁定food,留下human。

至于查相谐是否必须从左到右遍历,这纯粹是一个算法问题。数据库还允许做索引呢,我为什么一定要遍历?“饭”都有了,跟“吃”的第二个坑匹配为什么必须先查第一个坑。

李:
句型规定词序的做法有下列特点:
1 在词序占压倒优势的句型里面,根本不用查语义和谐。就是词序绑架。
2. 在词序不能决定语义的时候,可以明确提出是哪两对发生冲突:然后让语义在这两对中去比较力量来求解(消歧)。白老师的上述做法貌似在情形1的时候,不必要地查询了中间件,多做了功来锁定。

白:
总而言之,在部分分析树上匹配目标句型,是我N年前使用的方法,现在已经放弃了。放弃的道理是在分析环节追求更好的鲁棒性。在生成环节,有另外的做法。

李:
在情形2的时候,不知道是不是也是查询中间件的力量对比(牵涉两个可能的二元关系),还是只查询一个关系?

白:
没有。一步到位。 说的就是没有使用遍历的方法。只有一个匹配结果就是第二个坑,第一个不用出现都。

李:
遍历也不是“遍”历,n个元素并没有理论上的所有词序排列,而是句型决定了哪些词序排列是可能的,哪些排列根本就不可能。而这些决定都是那个词的知识。

白:
白名单制。
有点对不上频道,我说的遍历是查询时对坑的遍历,不是对可能语序的遍历。我的结论就是,不需要遍历。

李:
这二者在句型实现或坐实中是相交的。譬如两个坑加一个谓词,句型的所有排列是:

1. 谓词【1】【2】
2. 谓词【2】【1】
3. 【1】谓词【2】
4. 【1】【2】谓词
5. 【2】谓词【1】
6. 【2】【1】谓词

当然对于一个特定的谓词,其句型就是这里面的一个子集。

白:
3!

李:
对。如果牵涉小词,上述句型还要扩展。

白:
我现在是一个句型都不写。

李:
然后加上省略,也要扩展:

7. 谓词【1】
8. 谓词【2】
9. 【1】谓词
10. 【2】谓词

白:
嗯,你这充分说明了我不写句型的优越性。

李:
看上去很多,但第一很清晰,第二具体到谓词,只是一个子集,有些排列被句型一开始就抹去,第三,每一个这种句型排列都可以确定性地决定,是歧义还是不歧义,从而决定是不是要求助或留给后面的语义模块。所谓文法,主体也就是这些句型。没了句型,文法也就差不多消失了。

白:
专制的文法消失了,民主的文法还在。中心化的文法消失了,去中心化的文法还在。拉郎配的文法消失了,自由恋爱的文法还在。

李:
很多年前我们的英文文法大体稳定在 600 条规则左右,其中大约有 400 条就是这些句型排列。400 条还在可以掌控的尺度之内。为什么 400 条就可以包揽呢?这是因为上帝造语言有个仁慈的设计:args 不过三。以前说过这个。args要是过了三,排列就至少是5!,必然引起句型爆炸。自然语言的谓词绝大多是是 2 args or 1 arg,只有少量的 3 args or 0 arg。决定了机器人通天塔并非不可能建造。如果当年设计语言的上帝忘了人脑的有限,弄出不少 4-args or 5-args,就傻眼了。一个事件往往关涉很多成分。但人在描述这个事件的时候,总是碎片化描述,每个句子遵循 args不过三去描述,然后利用冗余和合一,最后在篇章中才拼凑出完整的语义图谱出来。这就是自然语言简约有效、与人类脑容量相匹配的奥秘之一。

白:
这就是老话说的,一碗豆腐豆腐一碗,本来不需要区分的,语序一成刚需,得,不区分也得区分了。

一碗豆腐和豆腐一碗,语义上没差别,差别在语用上。数量词后置,是“报账”场景专用,可以让人联想到饭馆里跑堂的。如果将来都用移动终端触摸点菜,“二者的语用差别”就会成为历史。跟自称“奴婢、在下”一样,只能在文艺作品里看到听到了。用于分析的句法,不适合画“毛毛虫”的边界,画出毛毛虫的“包络”就很好了。

 

【相关】

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

【李白董之51:说不完的subcat和逻辑语义】

【Parsing 的命根子是subcat,逻辑的和语言的】

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白67:带结构变量的词驱动模式注定是有限的】

白:
(1)小林差点哭了。(2)小林差点没哭。(3)谁说小林哭了?(4)谁说小林没哭?(5)没有人说小林哭。(6)没有人说小林没哭。

小林哭了?没哭?小学一年级暑假作业

李:
从词驱动模式而言 这些都是小菜 谈不上挑战。其实小学生语文出此题 背后也是因为这些模式很简单 小学生下意识记住了模式:

差点 没 v == 差点 v 了
谁 说 S v 了 == 谁 说 S 没 v
谁 说 == 没有人说
没有人说 s v == s (应该)没 v

差点 v 了 == 》 【Did not v but almost did】没有人说 s v(negative)== 大家都说 s v 了

没有人说 s v(negative)== 大家都说 s v 了
==》s (应该是)v 了 【舆论推测】

That's all. These types of oral Chinese patterns look tricky but they are short and finite. Very easy to memorize and highly tractable.   However, they are a challenge to key word systems.   Not very sure if they are a challenge to an end to end deep learning system ......

类似的现象还有:究竟好还是不好?

谁说iPod好。               【不好】
谁说iPod不好?           【好】
谁不说iPod好。           【好】
谁不说iPod不好?       【不好】
没有谁说iPod好。       【不好】
没有谁说iPod不好。   【好】
没有谁不说iPod好。   【好】
梁:

@wei 我也挺喜欢这种短语pattern, 中间夹着 Vp 或 a 之类。

李:
词驱动patterns是在“成语”的延长线上,加一些小结构的变量而已。这类现象适合词驱动的专家词典。小菜。而经典的关键词系统 一看就傻了,stop words 一去除,就是一包烂词 一锅糊粥,a bag of shitty words for BOW systems,但估计拦不倒神经系统?

Identifying and parsing these patterns are a piece of cake. The corresponding semantic representation is a little tricky, but as we all know, the semantic representation is output and is only a system internal toy for NLPers.  As long as we identify the pattern, however, we choose to represent it depends on the design of semantic compositionality and on the system internal coordination of such representation design and its semantic grounding to NLP applications.  The input matching pattern is key.  The output representation is whatever is good for the purpose.

有谁可以确定性地回答这个问题?对于这类简单的 patterns(虽然涉及到一点语言结构 但没有long distance挑战),现如今的深度神经是不是通过隐藏层、word embedding 等,可以轻易捕捉呢?能够捕捉,对于一个强大的神经 是预期中的。倘若很难捕捉 那就很尴尬了。

白:
用没有variable的词典定义绑架,剩下用什么方法都没有太多悬念。真正成问题的,一是“已定义”相对于“未定义”的高原效应问题,一是从“无变元”到“有变元”带来的泛化问题。

李:
什么叫 “没有 variable 的词典定义绑架”?那不就是成语或合成词或ngram黑箱子吗?
高原效应是什么效应?

白:
plateau:已定义效果特好,未定义效果骤降。词典定义,不必然连续。可以不连续

李:
无变元 到 有变元 是儿童学习语言的过程,道理上也是机器通过线性数据训练平面结构的过程,不管这种结构是symbolically显性表达还是某种方式隐藏地表达。

可以不连续的词典定义 白老师举例说明一下?已定义 我的理解是大脑或系统已经形成模式了,未定义 是尚未形成模式 还没学会。如果是带变量的词驱动模式 注定是有限的。小小的人类大脑都可以学会,就断断不构成数据科学家及其电脑的挑战。做一条 少一条,“而山不加增 何苦而不平”?何况数据驱动的学习或制作,总是从常见模式开始,罕见的长尾最后对付。

总而言之 言而总之,不是挑战,更像是玩儿。谈笑间灰飞烟灭的语言学游戏罢。所有这一切的信心来源于两点:一是人脑容量小得可笑,二是结构让无限变成有限。从结构看语言 NLP想不乐观都找不到理由。

很多所谓的 #自然语言太难了#,都经不起琢磨。多数所谓 NLP 难点,仔细一瞧,或者是 piece of cake, 或者是 人类自己根本就没有标准或答案的。后者是强“机”所难。

白:
静态和动态看到不同问题。捆绑定义,最没技术含量,最有所谓惊艳表现。根本就是给外行说的。问题都在捆绑定义之外。

李:
就这类问题来说,本身就很简单,老妪能解,要什么含量呢?要的就是work :if the work works then it is all fine.  我们以前常举的例子是:

The iPhone has never been good.
The iPhone has never been this good.

白:
动态看,从未定义到已定义的过程,从无变元到有变元的过程如何自动化,如何偷懒,才是真正有意义的。这里谁都能work的事儿,不说也罢。

李:
对于有限的对象 这个自动化过程没有多少实践意义。

白:
实践意义要实践的人最终判定。给实践添砖加瓦的人还是虚心点好。

李:
如果证明了所列举的现象是无限的,才有自动化的说法。至少我们现在谈论的现象 它不是无限的,而是相当有限的模式。不过是说个大白话而已,这里没有虚心的理由。当然肯定还有其他现象 性质不同,到时候碰壁了再虚心不迟。

抽象地说,一切学习,归根结底是泛化的自动化问题,因此研究这个问题才是高大上 才有真正的突破。但具体到现象 就不总是这种高级泛化的问题。也有低级泛化,譬如带变量的模式。技术含量属于不高不低,这个变量牵涉到词典与句法的接口,不是随便一个NLP新手就可以搞定的。因此有技术门槛,但的确也不是火箭技术,所以也可以说没太多的技术含量。

白:
就像某翻译系统,play piano 能翻译成弹钢琴,play mandolin 就不会翻成弹曼陀林。这里弹拨、键盘、吹管、拉弦乐器的标记体系是自动化的关键,一个一个组合去捆绑是傻瓜做法。乐器虽不是无限的,但多到一定程度就值得自动化。柳琴、琵琶、月琴、中阮、大阮、古筝、古琴,冬不拉、热瓦普、琉特、齐特、吉他、竖琴 ......

李:
subcat总是要做的。从 piano 泛化到包括长尾的曼陀林,的确是一个有意义的课题。word embedding 也好, HowNet 加 大数据 也好,都是要捕捉或搞定 nodes 的边界条件。自然语言说穿了不外是图谱中的 arcs 和 node。两路泛化 现在看来,arcs 的泛化更容易搞定,nodes 泥淖一点。当然二者还有一些互补和 overlapping,戏不够 词来凑。

白:
隐形标记体系,针对封闭的词典。不寄希望于个体词汇的低概率统计分布兑现。这就是我说的subcat embedding,

李:
subcat 为基础的泛化,当然是更高级的泛化。它与 word 为基础的泛化 构成一个 hierarchy,就好比词驱动结构与抽象文法结构构成 hierarchy 类似。前者是做工 nodes,后者是做工 arcs。这样来看自然语言可能就比较清晰了。当然 深究下去 这两个泛化还有很多交错和结合的变种。但万变不离其宗 词汇与结构总是语言的基石。subcat 泛化 比较tricky。也许 HowNet 结合大数据也是一途:拿 hownet 做 subcat 的种子。

 

【相关】

科研笔记:究竟好还是不好

【语义计算:李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白66:“青春期父母指南”的语义计算】

李:
朋友圈看到一本书书名是:【青春期父母指南】(副标题:如何和谜一般的青春期孩子相处呢?)定语青春期不是指向父母的,而是指向父母的儿女。

有意思的是,定语“青春期”不是指向“父母”的,而是指向父母的孩子。书名的结构是 NP:N1+N2+N3:N1 is neither semantic Mod of N2 nor of N3, but of something only implied yet not mentioned in text.  Grammatically we might still label N1 as Mod of N2, not of N3, N2 is grammatical Mod of N3, and semantic Obj of N3.

当然也不能完全排除这个指南是给处于青春期的父母(teenager moms or dads)

白:
青春期有坑,父母有坑,指南有坑。没有“的”的填坑关系和修饰关系互斥。父母填青春期的坑,是一解。青春期自己升格(处于青春期的某某human子类型),再填父母的坑,是另一解。

李:
后一条路不好掌控。凭什么升格,什么时候不升格?

白:
后面没有相谐的被修饰语,又有人需要这个被修饰语。升格也是有准入条件和优先顺序的。“是什么”是语言学,“选什么”是NLP。讨论语言学和讨论NLP,不是一股劲儿。当父母填青春期的坑的时候,父母自身的坑也只能借助升格来处理。不在这里升格,就在那里升格。要么父母处于青春期,谁的父母没交代;要么父母的孩子处于青春期,孩子是谁没交代。那个没交代的对象就是升格升出来的。

李:
没交代是常态。记得当年学句法课,教授花了很长时间讲解 complement 与 adjunct 的区别,说前者是需要交代结构(及其语义)才算完整,后者是可有可无(可多可少)的附加语。但其实在语言中,需要交代的常常不交代 不出现;可有可无的 往往具有语义的重要性。这道线很难划。语言不是按照逻辑设计的。

白:
语言也不是按照树设计的。多爹、非树是常态。

李:
几乎所有的及物动词都能省略宾语。省了以后,那个没出现的宾语,或者需要根据常识去理解,或者是根据上下文去理解,或者你知我知地通过心灵感应去理解,或者误解。也或者根本就不去(充分)理解:糊涂说 糊涂听 也一样交流。人类交流中 unspecified 的信息太普遍了 大家熟视无睹了。貌似交流也没受到阻碍。

白:
允许名词有坑,这都不是事儿。像上面例子,好像就逼着听话人选择哪个是没交代的。而不能是两个都没交代。

李:
青春期的坑是【human】,父母是【human】,这就算对上了。交代了。至于【父母】的坑,标题上下文里没见着,只好拉倒,stay unspecified。没有升格的理由。

白:
你这是从左到右思想作怪。那我问:“多动症父母指南”呢?

李:
从右到左试试?

“父母”的坑是【human】,左边的“青春期”不是【human】,但是青春期的坑里有一个尚未出现的【human】。如果要让正解出现,不仅需要从右向左,而且还要从别人的坑里面挖出一个根本没见影子的萝卜来。就算挖出来了,填进去的是谁还是一笔糊涂账,最多只能以常识默认推测之。

白:
把“青春期”处理成N+,不存在挖别人坑里萝卜的问题,但前面一些不严谨的表述需要修改。

对前面一些表述的修改:1、“青春期”是修饰语,无坑。2、“父母”取N输出,不在乎/N坑是否饱和,不是“升格”,而是正常的萝卜输出。图上两个方案,(2)的饱和度更高

 

【相关】

【语义计算:李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【研发随感:情感分析的沟沟坎坎(catches)】

A sentiment analysis catch:冤枉:1 [human]-A 冤枉 [human]-B 2. [human] 冤枉

冤枉:1 [human]-A 冤枉 [human]-B 2. [human] 冤枉

in (1), human-A is adversary and human-B is victim; in (2), human is a victim
in sentiment analysis, if the adversary is the topic, it is always a negative mention.  The catch is about the victim: if the topic is an event, or unknown, then sentences mentioning victims or actions or states involving victims are negative in tone; but if the topic is the victim, it is difficult to classify.  By human nature, when unfortunate events happen to victims, the natural sentiment is sympathy.
Sympathy is not negative at least; and it cannot be classified as positive either. It does not seem to be neutral. So it is tricky in the two-way or three-way sentiment classification.And in

And in text, we have tons and tons of expressions involving victims or victim-events, making sentiment classification difficult to conform to a traditional standard. For another example, John was ill.

For another example, "John was ill".  Most people would classify John as being mentioned negatively here, which sounds right, after all, unhealthiness is not a desirable state.  But on second thought, we would find it inappropriate to have such a sentiment analysis: John did not want to be ill; it was very unfortunate that he fell ill, and it was not his fault to be ill so how can we conclude him simply to be a negative mention?

情感分析在不幸事件和受害人角色方面,该怎样确定一个合适的标准呢?大拇指或中指显得不够了。请各位语义计算的老师指教。1. 指责的对象(中指);2 赞扬的对象(大拇指);3 (理应)同情的对象算什么呢?当然我们可以考虑增加一个标签。这个标签是 Victim 【受害者】】还是 Sympathy【同情】?前者是描述事实;后者带有情感。但是不是对于每个提及受害者的文句,里面都必然有同情意味呢?如果不是,Sympathy 的标签就有点强加的味道,不符合语言理解和情感分析的本义。

对于好人好事和坏人坏事的情感分析 并不对称。做好事的人是 benefactor 【做好事者】自然是正面的,这件好事惠及的人是 beneficiary 【受益者】,也无疑是正面的
相对应的做坏事的人 自然是负面的。但坏事伤及的对象 如上所述 却不能总是不分青红皂白划归负面。虽然很多情感系统的确这么做 但会出现与事理不合 让人难以接受的场景或啼笑皆非的舆情分析结论。

倒霉的确带有负面语气 但倒霉的人通常是无辜的弱者 应该引起同情 而同情心是人类正面的情感。就这么点事儿 要说也没那么复杂 但在情感系统落地为应用的时候 常常闹出笑话。

索性再分享一些情感分析的坑。这些个沟沟坎坎,搞 thumbs-up-down 分类的人通常无感,也无能区分,却是细线条真实情感分析和应用绕不过去的。表达需求的说法,如何做情感分析呢?“小姑娘需要一台 iPhone7”,正面还是负面?对于品牌 iPhone7,这是一个很正面的事儿。品牌被人需求,这说明它受欢迎。但是对于“小姑娘”,这是负面的情形:她有这个需求表明她的愿望还没有得到满足。如果我们把主语从【human】改成品牌,需求的 statement 常常是:

“iPhone7 需要加长续航时间。”

这是很负面的表述:iPhone7 有很大缺点,续航时间不足。这是两种最常见的需求表述。对于细线条情感分析意义重大,涉及非常有用的市场和客户情报的挖掘。

顺着这个思路往前走一步,可以从直接表达情感的语句,进入表面上的陈述句,但背后却隐藏了正面负面的情报。譬如 购买,驾驶,使用等表述。得,打住,今儿个就分享到这儿。

 

【相关】

舆情挖掘

中文处理

Parsing

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

《朝华午拾》总目录

【李白邢65:“着”字VP的处置】

【立委按】 世界上很多事物都有不同的角度,对于一个现象的处理也有不同的考量。到了NLP,这就成了不同策略的优劣之争。对于老革命,战略和战术辩论的好处是各自说明白背后的理由,多数时候并不指望谁说服谁,更非争个高下。对于看客,行内人自可各自体会,根据自己的理解择优而行。对于行外人,看热闹之余可能得到的一个启示就是,世界往往就是,公说公有理,婆说婆有理。

白:
开着窗户睡觉,开着窗户是状语吗?
“砍了一刀没死”,砍了一刀是状语吗?

邢:
我理解您的分析方法中,是不是没有主语、谓语的概念,而是以动词为核心为其填坑,填坑的萝卜与其在句子中的位置关系不是很大,而与其在语义上的搭配关系更大。

白:
@邢 是的

邢:
还有“掌声欢迎”中的“掌声”是状语修饰欢迎,那“鼓掌欢迎”是否也可以理解为“鼓掌”修饰“欢迎”呢?

白:
“掌声欢迎”是“(用)掌声欢迎”,有一个隐含介词。所以可以把掌声这个N降格为S+,做状语。“鼓掌欢迎”句法上是两个S的合并,至于语义上是什么,留给语义去处理。合并不是修饰,句法上“鼓掌”不是状语。

邢:
如何实现“降格”这个操作呢?是否也需要大语料的统计做支持

白:
不需要

邢:
那如何区分“同学欢迎”和“掌声欢迎”呢?

白:
欢迎的标配坑有human,没有sound。检查subcat相谐性可以区分。

邢:
subcat确实非常重要,谢谢您!

白:
鼓掌欢迎,列队欢迎都是合并。夹道欢迎,其中的“夹道”已经成了专用副词了,不在其列。

邢:
我理解合并是有前提的,首先合并词都是动词,同时合并词共享某个坑

白:

述补、并列、连动、兼语、某些缩合复句,都是合并关系。

邢:
很受教,谢谢您!

白:
名词和名词也可以合并

邢:
是的,至少并列结构的词语都可以合并,无论属于何种词类。

李:
为什么不说省略了“用”呢:
(用)鼓掌欢迎
(用)列队欢迎
动词也好 名词也好 都是用某种方式,核心还是 欢迎。
“鼓掌欢迎” 与 “掌声欢迎” ,看不出实质区别来。 都有大数据相谐的证据。其实已经接近合成词了。

白:
在句法层面定核心,和在语义层面定核心,是两件事情。
开着窗户睡觉,也是有核心的,但是在句法层面就定,太早了

李:
不早,至少对于这句,句法痕迹还是很明显的。

白:
早不早,这是体系问题。

李:
带“着”的动词做伴随情况的状语,修饰紧跟其后的核心动词。这是一个合适的句法和语义一致的路线。

白:
没必要

李:
英语的 ing 作为伴随情况状语也是如此:He came here running,有某种语言共通性

白:
知道他俩有关系,句法上就够了。

李:
“[笑着]走进来”
“[哭著]说”
“[带着哭腔]恳求他”

这个形式痕迹不用白不用,看不出来推后的理由。需要或必须推后给语义的,是句法上缺乏形式痕迹。句法有形式的,自然是早做强过晚做。

白:
不一样,谁带,谁恳求,这里面首先有坑的共享问题。修饰语出现坑的共享,这是给修饰语找麻烦。

李:
修饰语是第一位的,坑是第二位的。修饰语里面的坑不坑 其实无关大局。从理解和语用看,语义重点不再是补全修饰语里面的萝卜(真要补也可以补,但语用和落地需要它的情形不多)。

白:
放下筷子骂娘
拿起筷子吃肉
开着窗户睡觉
穿了衣服出门

这些都是平行的。光处理“着”,只是图一时痛快。

李:
核心突出了,哪怕只是部分现象,总是好的。

白:
不同性质

李:
其他的句子其实核心开始模糊了,但带“着”的句子,核心基本是明确无误的。

白:
共享坑在机制上要更根本,有没有核心,在其次。共同的机制先放在一起处理,到里面再分道扬镳。不存在不处理或者处理错的问题。

李:
直感上,合并这把伞太大了,罩着太多的不同结构。

白:
这才好,说明共享坑足够根本。

李:
在后一个语义模块的解析策略不太明确的时候,很难判断这样处理的 pros and cons。区分或理解这些不同结构对于多数落地,是绕不过去的。而填坑对于落地有时候反而可以绕过去。

白:
语义上具有向心性,和句法上的修饰关系,是两个概念

李:
譬如说 MT,“着”字动词做状语 可以平移到英语,不填坑也可以平移。

白:
MT能绕的不止这些
那都不是事儿

李:
这种语义落地场景就表明 坑里没有萝卜也可以的。可是核心的识别 却是不可或缺的。

白:
不是没有,是两种语言的共享坑机制一致,这不是问题的重点。

李:
一般原则还是,句法管形式,形式不充分的留给语义。为什么介词短语做状语呢?因为有介词这个形式。同理,为什么“着字VP”可以做状语呢?因为有“着”这个形式。
这并不是说,没有介词没有“着”的就不可以做状语。而是说有了这些形式,可以放松对语义相谐的要求,不需要“意合”,也不需要大数据 ,就是根据形态(包括小词)基本就可以确定。

白:
后者可以不叫状语,叫连谓结构

李:
“好”的句法,应该把这些形式用到极限。这就好比有格变的语言,要尽量通过词尾格变确定句法关系。只有在格变有歧义的时候,句法确定歧义的边界,然后才把负担留给语义模块去选择。放着形式不用,先用大数据、常识或其他的模糊条件,是舍近求远。

白:
坑也是形式

李:
对,subcat 属于隐性形式。

白:
了和着在形式上也有诸多平行性。一个地方不平行,完全可以揣在兜里,到属于它的角落,掏出来该干啥干啥。那些有平行性的,大家共用高速公路。另外,进入这个车道的“着”,状语的标签已经是鸡肋,在这个形式下可以直接定位到“背景-前景”语义关系

带上水路上喝,带着水路上喝,带了水路上喝。

真的只有第二个才有形式么?每一个都带有形式,都带有时间标签。一旦确定相应的标签,回头再看“状语”这个大而无当的筐,算个啥?

带上干粮饿了吃,带着干粮饿了吃,带了干粮饿了吃。

“墙上挂着画显得很有雅兴。” “墙上挂着画还是仿制品。” “墙上挂着画居然上下颠倒了。”

这三个例子里,“墙上挂着画”都不能说是状语。“这种场合戴着帽子不够严肃。”当中的“戴着帽子”也不是状语。

李:
这些特地选出来的例句 的确具有强烈的平行性。但这只是语言事实的一部分。当我们说 “着VP”可以做状语 指的是另一批现象。“笑着说” 与 “笑了说” 并不平行,前者是【伴随状语】(adverbial of attendant circumstance),后者是【接续】,在“笑了”与“说”之间其实有个停顿或标点。再看,“带着干粮饿了吃” 与 “带了干粮饿了吃” 的确平行。但 “带着干粮去上访” 与 “带了干粮去上访” 就不必然平行。总之,的确有相当部分的“着VP”是做伴随状语(也可以说是做核心动词的背景 都是一个意思)。而这部分现象是可以在句法阶段搞定的。 处理的重要形式依据是 “着”,但也可能需要再附加一些制约做微调。事实上,我们系统有几条带“着”做状语的规则在句法有时日了,经过长时期的考验,发现很管用, 出状况的时候很少。几乎与 PP 做状语的规则一样好用。

汉语的痛点之一就是 动词成串 难分主次 搞不清核心。这与欧洲语言对比强烈 :欧洲语言有 finite (谓语动词)和非谓动词(不定式、分词之类)的形式区分。谓语中心很容易确定 句子骨架一目了然。既然是汉语的痛点,分而治之就是解决繁难痛点的一个不错的策略:各个击破。 自然语言另一个比较普遍的痛点是并列结构,我们起初总想毕其功于一役,但总搞不定。后来探索出来的有效策略也还是分而治之各个击破。

白:
伴随关系(前景-背景关系)是时间关系的一种。接续关系是另一种。目的关系,可以看成未然的或可触发的接续关系。平行上路,平行落地。人家自己完全井然有序,用不着这个状语标签分了一块去再横插一杠子。充其量只能说,在这一批从时间内在结构角度而言从句法到语义都充满了平行性的关系当中,伴随关系“碰巧”具有了向心性。但是在这么本质的语义关系都揭示出来的情况下,坑哧吭哧跑过来宣布谁谁是状语,不觉得蛇足么。就好像从集体婚礼中拽出一对儿,然后宣布,这俩是山东人,差不多。

笑着说,笑的区间包含说的区间;笑了说,笑的始点位于说的区间左边(笑的终点不确定)。怎么不平行?

语义计算里面,时间结构是重要的一块。有些动作的时间结构不是区间而是点状的,对其不能用“着”,比如“死”“开除”,这也是一种形式上的旁证。点状的时间结构不能包含区间状的时间结构,正如0不能做分母。

 

【相关】

【语义计算:李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白董冯吕64:NLPers 谈 NLP 渊源及其落地】

董:
冯老师,姜博士,李维,白硕,宋柔老师,这个系统正式上线前,想先请各位看看,横挑鼻子竖挑眼。这个系统是去年6月开始开发的。时间短。最近几个月更是忙得厉害

李:
刚发朋友圈了。“中国nlp老前辈董老师的知网支持的平台 值得关注 推荐。世界上自然语言理解的深度 董老师是最深的了。逻辑语义的开创者。三十多年的智慧和知识积累 董振东老师是 让我辈高山仰止的语义巨人(见 科学网《语义三巨人)。【语知科技】多语种NLP平台正式上线。  demo.keenage.com

冯:
董老师,语义理解,还是要依靠规则。深度学习不行!

李:

Manning 教授昨天座谈时说 最近三年是他一辈子做nlp感觉进步最大的三年 他主要指的是深度学习。曼宁是一位一直强调语言结构和理解的老教授 NLP最知名的权威了。他的感受应该是真切的 不过来不及细问他 这种感受多大程度上是基于深度学习在语音处理以及mt方面的突破性进展,文本方面其实目前很难说深度学习引发了革命。不过 word embedding 还有什么 adversary 学习方面 开始在词汇语义级发力 有些结果令人印象深刻。parsing 要等到深度学习能把 parsing 落地为应用 才值得侧目以待 目前不行。曼宁教授还是很学究 甚至有些腼腆的气质 现在火得不得了 也是时势使然。ai 一热 nlp 就热。病急多投医,nlp各路 也跟着提升了在ai中的地位,I guess。

董:
@李,你说的让我脸红了。我在研究上是个工匠,做学问认死理。我研究语义,是叫当年的机器翻译研究逼出来的。什么是理解?什么是常识?什么是知识库?人的知识是如何建构的?我后来的感觉人是用“少”,而非用“多”来计算语义的。你常说起的Cyc,是“多”的典型。语义的关键是“关系”,而分类只是语义关系的一种。近年我们开发了基于知网的翻译,最近一年开发了中文分析,从学术的观点看,是为了考验知网,是为了给自己30年前的设想做个交代。这个交代既是给自己的,也是给别人的。告诉人们哪些努力是值得的,哪些努力是仍然无法圆满成功的。

李:
董老师退而不休 能够完成心愿 给我们留下的这笔知识财富 我们需要时间咀嚼 消化 但我坚信这种影响是深远的。潮起潮落 有些东西是不变的。语义及其语义研究的一些方法 具有相对恒定的价值 好比金子 总会发光 这个没有疑问。ai 中真正懂 nlp 特别是 nlu 的人不多,好多声称nlp的专家 只是做过自然语言的某个端对端的应用 专家做 text NLP与他做Visual 做 audio 做生物DNA 是一样的路数和算法,不过是数据不同而已。没有啥语言学。

白:
佩服董老师的执着和务实。如果说哪里还差点什么,就是对于“多个爹”的刻画机制问题。

董:
白硕说的对。“多个爹”是我们想做的新的探讨。两个问题我们遇到的:一是“是不是个“爹””,如何在文句中正确的确定那个“爹”。

冯:
有的作自然语言理解的人不关心语言学。词向量效果不错,理论机制不清楚。

李:
戏不够 词来凑。语言的分析理解主要有两个支柱,一个是词汇 吕先生称为珍珠;一个是结构 称为串子。传统说法是没有串子 做不了语言理解的项链。

白:
@冯志伟 词向量是保运算的降维,数学上是清楚的,但是跟理解搭不上钩。

李:
所以我们这些擅长 deep parsing 的人就开始看不起只看到珍珠的人,但是 其实二者的 overlapping,从完成nlp任务的角度 作为两种证据源 其实是相当地大。因此善于把 词模型 词向量模型用到极致的人,有时候的确产生了让我们意想不到的结果。

冯:
珍珠和串子是缺一不可的!

白:
如果每颗珍珠都有插销插座,确实可以不用串子。或者说,寓串子于珍珠之中。

李:
我的意思是 我们多少有些老古董了。虽然可以继续执着下去 也的确可看到一些我们擅长的nlu工作 词模型似乎根本就没有可能赶上来。但还是应该保持一种 open 心态。

白:
开开脑洞还是必要的。
词负载结构是好东西。

冯:
我们要关注词向量的成果,更要问一个为什么?

李:
对 应该探究这种表达的背后。

白:
设想回到老乔刚冒泡的年代,那时的语言学家怎么看老乔?

李:
其实我最早读乔姆斯基的转换生成语法的介绍的时候,非常看不起,觉得就是儿戏。那还是在 1982 年备考语言研究所刘老师的机器翻译研究生的时候不得不临时抱佛脚,了解一些计算语言学的基本概念。此前我做过英语教学多年(包括插队做民办教师),从中学做学生的时代就教别人的英语句法分析,主动语态被动语态等转换烂熟于心。觉得老乔演示的那些转换生成案例,太低级 太常识 太机械 乏味,太不具有神秘感。直到后来学形式语言理论 才生出崇拜感。

白:
说实话,如果知识结构跟不上老乔,恐怕根本没有跟老乔PK过招的可能。

李:
人岁数大以后的一个好处是,可以直抒己见,没有啥顾忌。我其实在读博士做汉语形式研究的时候,就对乔老爷的句法独立句法自足论极为不满,就在 seminar 指出乔老爷错了,离开语义,汉语句法形式分析搞不定。被我的导师劈头盖脸一顿轻蔑,大意是:你不知道天高地厚,一边去。被哑口很多年过去,我还是发扬光大了当年的批判。

冯:
我在57年读到乔的三个模型就开始崇拜他了!

李:
是啊,一个理论把自然语言与电脑语言形式上统一起来,使得电脑语言编译越来越像语言学,这种抽象让人震撼。震撼过后的很多年 就是对乔老爷的不断扬弃和批判,批判的主要点还是源于他的抽象:是赞也抽象,批也抽象。的确 他把电脑语言带进了语言学,居功至伟 。同时他也把自然语言带进了坑里面,误导了太多的人 整整一代人。(详见:《立委:乔姆斯基批判》 )。

白:
@wei 你那不算是语言学的批判,只是工程视角的批判。他是语言学家,但从未承诺过NLP什么。NLP掉坑里也是自作多情

李:
我们下意识还是 认定他应该引领nlp 和 cl,结果是他越走越远 越走越邪门,nlp 已然与他无关了。

白:
他不管工程,不管技术,只管数学。

李:
结构分析中的叠床架屋 使得过程中夹杂了太多的 assumptions,看上去高度抽象 追求共性 实际上是越来越像空中楼阁。当然 我肯定戴了有色眼镜,做了一辈子nlp 对纯语言学很难批评得中肯 只是一种感觉而已。老乔的语言学 对于绝大多数NLP践行者包括在下,都是供在菩萨庙里面的 只膜拜 不 follow。

白:
如果从工程角度批判,估计人家看都不看----关我什么事。

李:
老乔的思维高度自然不看 也不用看 这种批判。但是老乔下面的语言学家我认识很多,我就是这堆人里面混出来的,从他们身上我能感觉到他误导的后果。这些人很多时候就是在老乔的框架里面 自己跟自己玩游戏 没有理论创新 只好在语言数据上玩游戏,而且是一点都不感觉高明的游戏。说的是一批 或一大批语言学家。(也有一些绝顶聪明的纯语言学家让我叹服的,为数极少。)

洪:
做计算机编译的,没人认为老乔误导 Knuth和老乔貌是惺惺相惜。

吕:
赞@wei , 很多看法深有同感

李:
编译的理论基础 编译的祖师爷,电脑界理应崇拜 给10个图灵奖也不过分。当然 乔老爷哪里在意什么图灵奖。@吕正东 有机会咱俩坐下来谈。你最近的大作(见 独家|专访深度好奇创始人吕正东:通向理解之路)中我最不满意的就是一句话:说什么 符号逻辑规则路线没有成功的(大意,查原文是:“这三点都导致至今没有成功的规则系统”)。我得让你见识一下符号系统,没有深度学习的任何一家目前可以做到这个NLU的,无论深度 广度 速度 鲁棒 迁移度 可行性 还是其他指标 (It is untrue that Google SyntaxNet is the "world’s most accurate parser)。

吕:
@wei 惭愧,改日一定当面请教。

白:
说这些其实是在以史为镜。今天语言学界看DL、看词向量的心态,跟当初老语言学界看老乔的心态,有没有几分相似?

吕:
我的意思是说规则系统很难做到我所期望的NLU,不是说现在最好的规则系统弱于DL的系统。当然我对规则系统确实了解不够(现在正在补课),不免贻笑方家。

李:
不知道你去期望是什么。如果期望是现实的,很可能已经接近你的期望,如果期望是科幻,不谈。开玩笑了。王婆卖瓜而已。

吕:
我那篇访谈其实更多的是反对generic DL system 搞定一切的天真想法...

董:
@吕正东 你所期望的NLU,能否举个例子。

白:
里面有些模块可以是神经的,这有啥。

李:
所以我说我其实只有一点不满。你的访谈很好,

吕:
当然是现实的... 我们有现实的语义理解的项目

李:
@白硕 前乔姆斯基时代的老语言学界,陷入了田野工作的泥坑,是老乔把他们带出来的,革命了这个领域。纯粹的田野工作的确也是没大意思 比码农好不到哪里去。

吕:
@董振东 董老师,比如从一个偏口语的对事件的描述中得到对该事件的(“法律相关”)事实的表示.... , 当然这个定义是不那么严谨的

白:
其中一些方法,包括《降临》主角跟外星人沟通并试图破译其语言的一些方法,其实和主动机器学习很像了。

李:
一辈子也常陷入事务主义 没完没了地田野作业 自得其乐,但好在自我感觉好像心里还有某种哲学的俯视。有如神授:在田野工作的间歇 在某个高远的所在 有指引着道路。我是 语言工程师 knowledge engineer 的一员 毫无疑问。而且90%的时间都是。但是一辈子感觉这些田野作业的乐趣的本源却不在田野,而是在于架构。所以自我定义为架构师是最感觉自豪和 job satisfaction 的所在,否则与一头驴有啥区别。

白:
就是说,理想的田野工作一定是遵循某种算法的。而且算法不仅包括学习,还包括主动采样。

李:
所以在自我兜售的时候,强调 hands on 的田野作业,只是不想让人觉得飘在上面。但实际上卖的还是哲学。

Nick:
@wei 你就是自作多情

李:
我就自作多情 怎么着,你一边去 给冰冰多情去。@Nick  还想垄断哲学,搞什么哲学评书,不许我们搞哲学。王老五的桌子里面还有哲学呢,何况我辈语言学家。

董:
《福州晚报》7月15日报道,针对日前在日本横滨被证实遭杀害的福建姐妹一事,记者了解到,两姐妹均为福清江镜镇文房村人。
该报记者采访了该对姐妹花的父亲陈先生,陈先生回顾了得知姐妹被杀害的过程,并称女儿对父亲说的最后一句话是“谢谢爸爸”。

这一段事件,nlu 是什么呢?

吕:
@董振东 好难... , 实际上我们关注的是更加“冷冰冰”的事实,但即使这样也很难

白:
这里最大的问题,就是产品经理。

李:
同意,应用场景和应用角度 做技术的人很难看准。

白:
nlu是一层,但不构成核心服务。核心服务是另外的东西,让你贴近客户的东西。
相对称呼对身份一致性形成干扰,但相对称呼的谜一解开,倒也不是很难。姐妹花、姐妹,语境里的意思都是互为姐妹。

董:
我一直困惑:什么叫“我懂了”,“我明白了”。我觉得是高度抽象的关系。

李:
董老师30年前的论文(董振东:逻辑语义及其在机译中的应用)不是一再强调,所谓我懂了这句,核心就是懂了这句的逻辑语义吗?董老师的这个“理解”的教导,是一辈子遵循的指针。

白:
这得举例子吧……几何题的证明思路也可以“我懂了”“我明白了”,确定那也跟nlu相关?

董:
“姐妹花”,做为一个词语,可能合适。因为它就是“姐妹”,而且不见能产,如“母女花”

白:
“母女花”输入法里都有

李:
婆媳花 可能不在,但可以想见。

白:
我刚才意思是说,懂,明白,具有比nlu更宽泛的外延,nlu里面说的懂、明白,要窄、狭义。

董:
这样就可以依靠大数据了。对吧?
比“懂”、“明白”,要窄、狭义,那是什么呢?我如何在系统里体现呢?

白:
我们先说逻辑语义包括什么。我的观点:一包括symbol grounding,二包括role assignment。这两个搞定了,就是nlu的u。最狭窄了。茅塞顿开什么的,那种“懂”,跟nlu毛关系没有。可以说不在讨论范围内。在系统里体现,如果是role assignment,其实很好办,就是知网啊。如果是symbol grounding,那就要看系统的对接能力了。对接电话本、位置、天气、颜色、声音、实体知识库,都属于symbol grounding。

吕:
怒赞白老师1024次

白:
对接网页,往好里说属于兜底,往坏里说属于耍赖。一看见对接网页,我基本上可以判断系统黔驴技穷了。这都是在系统里能体现的,不知道入不入董老师法眼。

董:
是的,说得明白。我们的中文分析归根结底追求的就是你说的这两件东西。用逻辑语义和深层逻辑语义(多个爹),表示你说的role assignment,用ID No来落实实体知识库的symbol,即概念。所以判别歧义是不得不做的事情。

白:
我现在的方法处理“多个爹”已经成体系了。直接在句法分析阶段就能拿到“多个爹”的结构。

李:
Node to concept,Arc to logic semantics。很多时候 词到概念可以不做,wsd 绕过去,到了应用场景 再定 哪些词需要落地 其实多数根本就不用落地。

白:
这是parser提供商的思路。但是这思路在商业上有问题。不现实。比如,阿里的parser,为啥给京东用来落地?

李:
商业上就是 落地也做 当成 Professional services,量身定制,利用 parsing 的结构优势。 parser 不卖,内部消化。

白:
内部消化的本质还是深耕行业,而不是什么通用性。当你定位为深耕行业者,恭喜你做对了,但是牺牲通用性是板上钉钉的。

李:
卖components或平台基本没有做大的,还不如卖服务 做承包商。

白:
卖服务我判断也是不成立的。场景不长在你手里,实体数据库落不下来,图啥?跟通用系统如董老师的系统,根本不存在可比性。

李:
其实 目前为止 卖工具 卖服务 都没戏。实际上nlp还是寄生在产品应用。技术人的命运掌握在产品老总手里。赶巧遇到好产品 就一起飞。其次不死不活 这算好的。更多是陪葬。

白:
这不叫寄生,应该叫赋能 enabling

李:
一个牛的技术 可以降低陪葬 增加不死不活的可能  譬如我过去的二十年,但是无法让产品飞起来。

白:
除了产品经理,还有nlp之外的其他技术,也不是吃素的。到底谁贡献最关键,有得扯

李:
就是啊 使不上力 只好拼运气 看根誰搭档了。

白:
深耕行业定位下的nlper要时刻警觉的三点:1、你已有局限,不要和学术界比通用;2、你只是一个方面的enabler,服从、配合产品designer是天职;3、从产品全面看,其他方面的enabler或许贡献更大,nlp不见得一定是这个场景下最具杀手性质的技术成分,心理该平衡还是要平衡。

李:
让不让人活啊。
白老师所说极是。

吕:
谨记白老师教诲

刘:
赞 @白硕 @wei @吕正东 白老师关于nlp应用要语义落地的说法我深以为然。现在我的一些工作的motivation就是把基于NN的一些NLP的工作跟落地的语义结合起来,我希望能在这方面做一些通用性的工作,而不是仅仅局限于具体的应用。这应该是一条很长的路,有很多事情可做。

梁:
@wei nlp 不是“寄生”于产品,是“add value", 正面去说。在最终产品的增值链上,nlp 只是其中一环。Me too. 谨记白老师教诲。

李:
寄生是负面说法 赋能是正面激励。

张:
主动学习、主动适应、主动釆样~~~白硕老师的“主动学说”给当年在MT创业的我极大启示@白硕

董:
关于研究与产品、通用与专用、寄生与赋能,我的想法和做法是:这些是对立且统一的。研究要通用些,要深,而应用要专门,要浅。研究可以关起门,应用就必须是开门的。这就是“深研究,浅应用”。就像一个老师,备课不怕深、广,但讲课要深入浅出。我经历过多次处理研究与应用间的关系的机会。

白:
@董振东 董强这次展示的系统,感觉还是学术性质的。@董振东 “备课”工作的一部分,确实可以用大数据、机器学习来做,全都人来做,周期太长,对灵魂人物的要求太高。

董:
@白硕 欢迎多多指教。我们希望有人帮助我们走向非学术性的。

白:
伟哥说大树吃小树,这话对的,不过涉及到时空的错乱。是吃了小树的树自然而然地成为了大树。

洪:
应该这样“全国猪人工智能受精关键技术研讨会”

吕:
猪AI会议可以撸出小猪来,不少国内的人AI会议,只能撸出更多的傻叉和骗子.....

冯:
近年来计算语言学的发展迅速,越来越工程化,文科背景的师生有的难以适应,海涛和他团队明察秋毫,迅速由计算语言学转入计量语言学,用计量方法来研究语言本体,这是聪明的做法。希望他们在这个研究方向上作出更多的成绩。海涛是我的博士生,浙大外国语学院教授。他是院士,世界语研究院院士。我仍然坚守在计算语言学的阵地上,没有转入计量语言学。我老了,不中用了!

李:
白老师说的大树吃小树 背景在这里:《科研笔记:NLP “毛毛虫” 笔记,从一维到二维

冯:
学习了。毛毛虫有道理。

李:
@冯志伟 洗脚池转文总是漏掉后面的 相关文章 现补上白老师这篇奇文:【白硕 - 穿越乔家大院寻找“毛毛虫”

 

【相关】

董振东:逻辑语义及其在机译中的应用

立委:乔姆斯基批判

独家|专访深度好奇创始人吕正东:通向理解之路

科学网《语义三巨人

尼克:哲学评书

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

白硕 - 穿越乔家大院寻找“毛毛虫”

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

【语义计算:李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白雷63:做NLP也要见好就收,适可而止】

白:
“那个假流氓真流氓”
“这种做法不禁令我们大吃一惊”

李:
前一句有意思 等我回头试试,第二句没看到 catch 啊。

白:
分词和句法的相互作用,“禁令”是名词,“令”是类介词的动词。“不+名词”即使不是严格禁止的,至少也是极其低概率的。

李:
这个知识在多数切词程序里是没有容身之地。当然还有别的办法。人在伯克利 没法测 第一眼居然没看到切分歧义。刚回家第一件事就是测试白老师的句子,悲喜参半啊:

第一句出来了,第二句果然切分错了,当然前面说过,“不+名词”的规则通常在切词的时候没地方容纳。还是用更简单的ngram的头疼医疼的办法吧。于是改正如下:

不过话说回来,如果真要难为系统,总是可以的:譬如,假流氓真流氓我管不着。

果然中招:

分了真假 就做不好并列;做了并列 就难兼顾真假。

白:
按下葫芦起来瓢

李:
如果鱼与熊掌一定要兼得,就太过精巧 君子不为也。不是不可以做 但不能这样做。维持现状吧。

白:
对NLP没感觉的人很难理解是什么让顶尖高手不得不妥协。

雷: 哈哈哈。顶杆

李:
妥协是因为吃过亏 吃过自作聪明的亏 精巧的亏

白:
问题不在于你解决了什么,而在于你解决了“这一个”的同时,不影响你已经解决的“那些个”。

雷:
不可调和?not even by bribery?

李:
哈,那要看量

雷:
工程上可以

李:
没有不可以的事儿

白:
不是技术问题,是商业问题

雷:
理论上顶在那里

李:
但懂得什么时候选择不做 有时比做 更重要。见好就收吧。这是不同维度的纠缠。

白:
里维和外围的纠缠

我:
平行并列是一个维度。“真”“假”的词性和用法的不同是另一个维度。“流氓”的名词形容词歧义又增加了一个维度。事不过三原则(见【系统不能太精巧,正如人不能太聪明】) 说的就是当多维纠缠的时候 你可以随风起舞 跟着去绕 但不要绕进去太深 要有适可而止的智慧。

梅:
@wei 是啊,不必去fit noise。

李:
不仅是 noise,更主要的是要皮实,不能让系统内部相互依赖太多。“精巧”的系统今天把一个拐角处的“艰深”问题解决了,而且通过了 regressions 测试,似乎没有副作用。可是明天呢 后天呢?系统在前进过程中,一定会打破动态平衡,凡是太过精巧的地方最终会在前进中遭遇困扰。于是我们就被拖进了两难的泥潭,把注意力放到了不该放的犄角旮旯。两难是:

那个 case 是 tested case,进入了 regressions baseline,因为精巧而脆弱,因此常常成为 regressions testing 的红灯区。红灯一亮,我是去对付它呢,还是放过它呢,真地两难啊:

对付它就要耗费资源,耗费我的时间,为了维护的是一个小概率的case,不断地耗费资源,不值得。如果放过它呢,这就等价于我们一开始就不该做,不该精巧地“解决”这个问题。后一个选择是明智的,但还是不如一开始就坚持事不过三的原则来指导系统的开发。系统的鲁棒性比解决个别的长尾问题要重要。

首发 2016-06-02 【新智元笔记:做NLP也要见好就收,适可而止】-科学网

【相关】

【系统不能太精巧,正如人不能太聪明】

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

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

【语义计算:李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白梅宋62:工程语法与深度神经】

李:

汉语的类后缀(quasi-suffix)有不同的造词程度,“-者” 比 “-家”强。
“者” 是 bound morpheme,“家(home)” 通常是 free morpheme,突然来个“冷笑家”,打了个措手不及 @白老师。
不敢轻易给这种常用的 free morpheme 增加做类后缀的可能性,怕弄巧成拙。即便是人,乍一听这句子中的“冷笑家”也有点怪怪的感觉,怎么这样用词呢?如果硬要去模拟人的造词和理解合成词的功能,倒是有 heuristics,不知道值得不值得 follow:“冷笑”是 human 做 S 的动词,-家 是表示 human 的可能的后缀(“者” 比 “家” 更宽泛一些,可以表示机构或法人),这就为“冷笑家”作为合成词增添了一点语义的搭配证据,但还不足以站住,于是还有另一个 heuristic:“冷笑”的 subcat 的 human 语义坑不仅仅是S,其 O 也是 human: “张三冷笑李四”。而另一条路径(上面输出的 parse)是:"冷笑" 的 O 是"赞成“, 不搭。  这两个 heuristics (一个morphological,一个 syntactic)是如何在人脑里合力促成了正确的理解的,是一个可以想象但并不清晰的下意识过程。机器可以不可以模拟这个过程,利用这种合力做出逼近人类的语言理解呢?道理上当然可以。既然我都可以描述出来,那么硬做也可以做出它来。但是,在遇到这样的语料的时候,说句实话,通常选择不做。原因就是我以前说的:编制一个 NLU 系统,不能太精巧。【科研笔记:系统不能太精巧,正如人不能太聪明

白: 赞成有俩坑,一个human,一个内容。就算被“的”强制为名词,这俩坑仍旧在。

李:
是,我还没来得及加上 “赞成” 的坑的考量进来,问题的复杂度更增加了。精巧的路线是老 AI 的人和语言学家最容易陷入的泥潭。老 AI 陷入精巧还不当紧,因为 老 AI 做的都是玩具,domain 极为狭窄,精巧不至于造成太大偏向。

白:
“这本书的出版”和“冷笑家的赞成”异曲同工,都是用填坑成分限定有坑的临时名词。所以,两个坑其中一个是human,会给“-家”结构加分。
这是系统性的现象,与精巧无关。

李:
我就怕聪明反被聪明误。在 data driven 的NLU开发过程中,对于偶然出现的“怪怪“ 的语词或句子,我通常是无视它的存在(除非这个现象反复出现)。白老师总说是系统性的现象,但举出的例子常常是 “怪怪”的,是那种介于人话与“超人话”之间的东西,超人指的是,这类话常常是语言学家从头脑里想出来的,或者是高级知识分子抖机灵的作品。白老师宋老师,还有 yours truly 都擅长写出这样句子,可是普罗不这样说话。用白老师自己的话说,就是这类现象处于毛毛虫的的边缘毛糙的地方。虽然是毛毛虫的一个部分,没有它其实无碍。我指的是 “家” 作为类后缀的现象。

白:
对付这种既没有截然的肯定也没有截然的否定,而只是“加分”/“减分”的逻辑,统计比规则更在行。关键是模式长啥样。

梅:
Deep learning 死记硬背,套模式,有了training data,做第四层,第五层,做不出吗?

李:
我对这个统计的能力,好奇多于怀疑。统计或深度神经,真有这么神吗? 连毛毛虫的毛边、灰色地带、长尾,也都恰好能学出来?

梅:
那就需要多run experiments,机器多。一部分靠知识,一部分靠实验。应该能的。

白:
模式过于稀松平常,深度学习或可用上,但效果很差。模式过于稀奇古怪,深度学习可能完全没有用武之地。

李:
“家”作为后缀的产生性不强,基本属于长尾。而“家(home)”作为自由语素则是压倒性的。统计的系统不会看不见这一点。

白:
在找到合适的模式之前,过于乐观或过于悲观都是缺乏凭据的。

梅:
中文的data多啊。再sample一下

白:
都不知道模式长什么样,sample啥呢?我们的关键是看模式长什么样

梅:
做语音识别深度学习的,也是做很多实验,然后发现模式的。

白:
语音的结构是扁平的,拿来套语言,未必灵。假定了扁平再来发现模式,说不定已经误入歧途了。

梅:
不是100%灵,但有analogy

白:
实验不可能对所有模式一视同仁,一定有先验假设的。也许藏在心里没说出来,但是模型会说明这一切的。

李:
科研笔记:系统不能太精巧,正如人不能太聪明】里面有事不过三的原则。事不过三,无论是中心递归,还是我文中举的否定之否定之否定的叠加。表面上是程序猿的经验之谈,其实属于设计哲学。

梅:
哲学有用的

白:
如果藏在心里的先验假设是错的,多少数据也救不了你

梅:
先验假设 不是不好-立委的知识都可以用到深度学习上

白:
都能用上就好了。问题是他的知识长的样子,深度学习消化得了么?

梅:
那就combine啊

白:
在使用深度学习对付语言结构这件事情上,1、有迷信;2、有办法;3、迷信的人多半不知道办法。combine会引发什么问题,不做不知道

梅: 深度学习一点不迷信,又有定律,又有实践。

李:
哈,曾经遇到一个“超级”猎头,说超级是说的此女士居然对AI和NLU如数家珍的样子,包括人工智能符号逻辑派与统计学习派的两条路线斗争,不像一般的IT猎头简单地认为AI=DL。她的最大的问题就是(大体):你老人家是经验性的,骨灰级的砖家了,你能简单告诉我,你怎样用你的经验为深度学习服务呢?
(哇塞)无语。语塞。
全世界都有一个假定,至少是目前的AI和NLP领域,就是深度神经必然成事。只有在这个假定下,才有这样的问题:你无论多牛,不靠神经的大船,必然没有前途。

白:
深度学习假定的空间是欧氏空间,充其量是欧氏空间的时间序列。万事俱备,只差参数。这个假定要套用到语言结构上,还不失真,谈何容易。其实就是把目标空间的判定问题转化为参数空间的优化问题。

梅:
没说容易啊。现在的深度学习当然有局限性。还要懂data science,the science of data

白:
目标空间错了,参数空间再优化也没有意义。

李:
非常好奇,这么深奥的深度神经是怎样做的 AI marketing 洗脑了全社会,以致无论懂行的、不懂行的、半懂行的都在大谈深度神经之未来世界,把深度神经作为终极真理一样膜拜。
第一,我做工程语法(grammar engineering)的,句法分析和主要的语义落地场景都验证非常有效了,为什么要服务深度神经?本末倒置啊。他本来做得不如我,无论parsing还是抽取,为啥反倒要我服务他成就他呢?不带这样的,当年的希拉里就被奥巴马这么批评过:你不如我,为啥到处谈要选我做你的副总统搭档呢?
第二,深度神经也没要我支持,我自作多情什么,热脸贴冷屁股去?据说,只要有数据,一切就自动学会了,就好比孩子自动学会语言一样。哪里需要语言学家的出场呢?
最奇妙的是把一个软件工程界尽人皆知的毛病当成了奇迹。这个毛病就是,学出来的东西是不可理解的,很难 debug 。假设学出来的是一个完美系统,不容易 debug 当然可以,因为根本就没有 bugs。可是,有没有 bugs 最终还是人说了算,数据说了算,语义落地的应用说了算。如果发现了 bug,在规则系统中,我一般可以找到症结所在的模块,进去 debug,然后做 regressions,最后改进了系统,修理了 bug。可是到了神经系统,看到了 bugs,最多是隔靴搔痒。

张: 感同身受

李: 要指望在下一轮的训练中,通过 features 的调整,数据的增加等等。幸运的话,你的bugs解决了,也可能还是没解决。总之是雾里看花,隔靴搔痒。这么大的一个工程缺陷,这也是谷歌搜索为什么迄今基本是 heuristics 的调控,而不是机器学习的根本理由之一(见 [转载]为什么谷歌搜索并不像广泛相信的那样主要采用机器学习?),现在被吹嘘成是深度学习的优点:你看,机器多牛,人那点脑量无论如何不能参透,学出来是啥就是啥, 你不认也得认。是缺点就是缺点。你已经那么多优点了,连个缺点也不敢承认?牛逼上天了。

梅:
不是这样的。内行的不否认深度学习的长处,但对其局限性都有认识的

李: @梅 这个是针对最近某个封面文章说的,白老师不屑置评的那篇:【泥沙龙笔记:学习乐观主义的极致,奇文共欣赏

梅:
我的观点:There is nothing wrong with 1) and 2), in fact, they have helped advancing AI big time. But 3) is a serious problem.

李:赞。
宋:自然语言处理 不同于图像处理和语音处理,相当一部分因素是远距离相关的。词语串的出现频率与其长度成倒指数关系,但语料数据的增加量只能是线性的,这是机器学习的天花板。

李:
宋老师的解释听上去很有调性。
image 不说它了,speech 与 text 还是大可以比较一下的, speech 的结构是扁平的?怎么个扁平法?text 的结构性和层级性,包括 long distance 以及所谓 recursion,这些是容易说清楚的,容易有共识的。

宋: @wei 什么叫“调性”?

李: 这是时髦的夸赞用语。:)

宋: tiao2 or diao4?

李: diao4,就是有腔调。
深度神经没能像在 speech 一样迅速取得期望中的全方位的突破,这是事实,是全领域都感觉困惑的东西。全世界的 DLers 都憋着一股劲,要不负众望,取得突破。终于 SyntaxNet 据说是突破了,但也不过是达到了我用 grammar engineering 四五年前就达到的质量而已,而且远远没有我的领域独立性(我的 deep parser 转移领域质量不会大幅度下滑),距离实用和落地为应用还很遥远。

宋:
在不知道结构的情况下,只能看成线性的。知道有结构,要把结构分析出来,还得先从线性的原始数据出发,除非另有外加的知识可以直接使用。

李:
这个 text 迄今没有大面积突破的困惑,白老师说的是模型长什么样可能没弄清楚,因此再怎么神经,再多的数据,都不可能真正突破。宋老师的解释进一步指出这是结构的瓶颈,特别是long distance 的问题。如果是这样,那就不复杂了。将来先把数据结构化,然后再喂给深度神经做NLP的某个应用。这个接口不难,但是到底能有多奏效?

宋:
SyntaxNet宣称依存树的分析准确率达到94%。也就是说,100个依存弧,平均有6个错的。n个词的句子有n到2n个依存弧。因此,10几个词的句子(不算长),通常至少有一条弧是错的。即使不转移领域,这样的性能对于机器翻译之类的应用还是有很大的问题,因为每个句子都会有翻错的地方。

李:
错了一点弧,只要有backoff,对于多数应用是无关大局的,至少不影响信息抽取,这个最主要最广泛的NLP应用,对于不完美parsing是完全可以对付的,几乎对抽取质量没有啥影响。即便是 MT,也有应对 imperfect parsing 的种种办法。

宋:
这个数据的结构化不仅是clause层面的,而是必须进入clause complex层面。首先需要人搞清楚clause complex中的结构是什么样子的。就好像分析clause内的结构,要让机器分析,先得让人搞清楚clauses内的结构体系是什么,还需要给出生成这种结构的特征和规则,或者直接给出一批样例。

李:
现在的问题是,到底是是不是因为 text 的结构构成了深度神经的NLP应用瓶颈?如果真是,那只要把结构带进去,今后几年的突破还是可以指望的。结构其实也没啥神奇的。不过是 (1) 用 shallow parsing 出来的 XPs 缩短了 tokens 之间的线性距离(部分结构化);(2)用 deep parsing 出来的 SVO 等句法关系(完全结构化),包括 reach 远距离。这些都是清晰可见的,问题是深度神经是不是只要这个支持就可以创造NLP奇迹?

宋:
把结构带进去了再机器学习,当然是可能的。问题就是怎么把结构带进去。什么都不知道的基础上让机器去学习是不可能的。

李:
以前我们就做过初步实验做关系抽取,把结构带进ML去,是有好处,但好处没那么明显。挑战之一就是结构的 features 与 原来的模型的 features 之间的 evidence overlapping 的平衡。

宋:
clause complex的结构与clause的结构不一样。google把关系代词who、what往往翻译成谁、什么,就是没搞清楚层次区别。

首发 【新智元笔记:工程语法与深度神经

【相关】

科研笔记:系统不能太精巧,正如人不能太聪明

泥沙龙笔记:学习乐观主义的极致,奇文共欣赏

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

[转载]为什么谷歌搜索并不像广泛相信的那样主要采用机器学习?

《新智元笔记:再谈语言学手工编程与机器学习的自动编程》

《新智元笔记:对于 tractable tasks, 机器学习很难胜过专家》

《立委随笔:机器学习和自然语言处理》

《立委随笔:语言自动分析的两个路子》

why hybrid? on machine learning vs. hand-coded rules in NLP

钩沉:Early arguments for a hybrid model for NLP and IE

【语义计算:李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白60:事理图谱之辨】

宋:
“普京称,特朗普问了一些尖锐的问题,显然他对某些事情的细节很感兴趣,所以他也尽可能地详细地回答了他。”(来源:看看新闻)三个“他”各是谁,机器能识别码?

白:
这也是“事理图谱”的覆盖范畴,甲问乙,乙答甲。

李:
他回答他,句法绑定理论(Binding Theory)决定了不是一个人。
x 问y ==> y回答 x, 这个知识 hownet 恐怕有。第三个 “他” 于是绑定 “特朗普”,第二个“他” 于是不可能是“特朗普”,上下文只剩一个“普京”,那就是“他”了。至于第一个 “他”,语言的就近原则就对了,绑定“特朗普”。如果用知识推理,那就蛮复杂:需要在 【提问】 与 【感兴趣】 的概念之间,建立某种互为因果的联系:

x 问关于y 的问题 《==》 x 对 y 感兴趣

这是符号逻辑。至于大数据如何反映,“事理图谱”如何表达和支持,这里面水不浅。

不太明白的是,这所谓事理图谱,到底是本体类的图谱(ontology graph),还是情报类的图谱(intelligence graph)。从命名看,应该偏重本体。那就跳进一个大泥坑。 本体不是不可以自动图谱化(严格一点的术语叫知识习得,knowledge acquisition,而不是情报类的信息抽取 information extraction,【语义网笔记:本体与知识图谱之辨】),但是很难很快奏效,也很难打过 hownet 和 cyc,除非是先从 domain 本体着手,各个击破。情报类图谱就是靠 domain 取胜的,本体图谱也应该是这个方向。

白:
本体/情报这个区分完全是工程化的,原理机制方面看不出来不同。所谓原理机制,无非就是核心动词怎么传播,坑怎么跳接。打 和 伤,打传播到伤,打两个坑,其中受事那个坑跳接到伤的当事。明白传播和跳接,这个游戏就可以玩下去了。面向领域见效快些,产品好包装些。面向本体见效慢些,可能不走产品的路子而走公共服务的路子。但这是商业模式问题而不是技术问题。

李:
情报的立足点是个体(NE),本体的立足点是群体类型 (categiry concept),目标相差远去。后者 人工具有显著优势,所以说 想打败 hownet 并非易事。这是从知识本身、 知识的获取和表达来看。至于知识的应用、知识的推理、推理中的模糊与逻辑的平衡等等,又是另一个挑战。而情报图谱的应用相对简单,无论是支持搜索还是挖掘。支持预测比较难些。本体知识因为并非情报,而是常识或专业知识,属于教育的范畴,谈不上搜索、挖掘和预测。

白:
说来说去还是商业模式。定性预测和定量预测又是两回事。涨不涨,和涨多少点,不一样。

李:
我想说的是所谓事理图谱,是个吃力不讨好的活计。高校里面立项做个研究可以,应用上基本可以无视。学了半天也不过就是学会了诸如 【x 从 y 那儿 买 了 z】 ==  【y 卖了 z 给 x】, 【x 吃饱了 ==》 x 不饿】等等。 这种事理哪里用得着去学,拍着脑袋可以想出来更多、更周全、更体系、更逻辑。

白:
法律文书处理需要。证词这么表述,起诉那么表述。这还只是paraphrase。如果涉及到行为与后果,还是要在动作之间传播,比如打与伤。如果要打造alphago级别的律师,这点事儿是必须搞定的。最起码的。说这事儿没有效益,可能过于托大。

李:
两码事儿:本体知识图谱是一码事儿,利用这个图谱做有效的推理应用是另一码事儿。前者基本没有效益,有那个力气 不如把 hownet 进一步完善。后者才是痛点。

白:
我是说从建设的内容看,你分不清是给研究用的还是给应用用的。

李:
谁先把 hownet 或 cyc 里面的知识体系(时髦词叫 “图谱”)用起来,用到 50% 就很了不起了。

白:
绝对不是那个路数。应用的人没那么傻,有现成的好东西不用。问题不是不用,是路数不对。不可用。

李:
傻不傻,要先看到应用实例才好。事理图谱成功应用的突破,咱等着看吧。

cyc 的失败不是知识获取的失败,这方面愚公移山,知识增量获取,知识只会越来越丰富。知识丰富了,没法用才是问题。

白:
就说跳接这事儿,用重武器和用轻武器有本质不同。用轻武器同样可以做的事儿,为啥要用重武器。重武器的副作用太大。

李:
如果事理图谱,也像情报图谱一样,追求的是图谱的建立,那就没有情报图谱的成功可能。

白:
你要等他,要养他。还要顺着他。其实应该他顺着你。

梁:
小声问一句,事理图谱是因果关系图谱吗?

白:
不完全是

李:
我理解就是本体图谱。搞不清对象是常识还是专业知识,还是兼而有之。

白:
有些因果上没道理的事情,事理上有道理。比如,该来的没来--》我是不该来的;
不该走的走了--》我才是该走的。

李:
这样的事理,已经不再独立于语言和文化了。那就比普世(universal)的常识和专业知识更加广泛了。

白:
作案是专业知识,作案里动作之间的关联是常识,没有常识托底的专业知识是有断层的。法律条文是专业知识,案情的描述靠很多常识勾连在一起。在分析案情与法律条文适配性的时候,必须二者兼而有之而且在结合部无缝切换。

李:
对,是个 hierarchy 。

白:
paraphrase可以有更简单的处理方法,就是相对行为在转换为内部表示时是标准化的:
买和卖,娶和嫁,借和贷,都可以。这个不算推理,甚至也不算传播,内部表示都是个trans就得了,只不过参数摆的地方不一样。

李:
真正在应用中的痛点是:

1. 不是没有知识,而是有了知识也不知道如何用
2. 很多时候没有知识也达到了目的,所以见知识就用,往往弄巧成拙
3 就事论事容易,总可以谈出背后一大堆“事理”出来:本群的很多有趣的讨论和钻牛角尖,就显示了这些事理。但是要想找到一个高效的通用算法,来用这些事理知识,那是真地很难。

白:
在不知道知识长什么样时,谈算法是很空的一件事,算法和表示几乎是同时确定的,而不是表示在先,算法在后。

李:
情报图谱的表示与算法可以分开。可以把情报挖掘,建立一个图谱表达。至于别人用什么算法去用它,可以是另一回事儿。其实,我各行各业的分析员一直都在手工做情报图谱,他们并不懂什么算法不算法。自动生成的情报图谱,只要提供一个类似 sql 的搜索图谱的接口就完事。但是,本体图谱不同。它本身不是情报,都是吃饱了不饿这类“废话”,没有应用价值。所以,一定要想清楚如何用它,才能显示价值。

白:
paraphrase和传播是必须的。无方向感的推理可以免了。

李:
想清楚如何用它是比获取和表达,难度大得多的事儿,这里面包括想清楚何时和如何不用它。

白:
用它从来不是问题,问题的关键是“它”是谁。如果是hownet或者cyc,基本可以打住了。一定是把知识的使用圈到一个很务实的圈子里,足够轻,然后才谈得上获取和表达。本体重实体和实体的构成类型,事理重事件和事件之间的传播和激活。这俩早晚要区别对待。混在一起打乱仗是要死人的。现在技术层面的问题是解决坑的跳接。

李:
打乱仗的常见案例是,不知道何时不该用 不能用“事理”。对于不合事理的事儿,自然不能用事理理之。

【相关】

【语义网笔记:本体与知识图谱之辨】

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

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

【立委科普:本体知识系统的一些历史掌故和背景】 

《对于 tractable tasks, 机器学习很难胜过专家》

【语义计算:李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

 

【生涯花絮:1989年的老照片】


1989 年荷兰 董老师、立委访问 BSO  机器翻译组,组长 Witkam 请客并合影

董振东老师翻出来一张老照片,让我想起往事。说话快30年了。1989,我不过是刚入行两年的初生牛犊, 而董老师已经完成了中国第一个实用MT【译星】产品的研发,风华正茂。

“出道之初的上世纪80年代,我为一家荷兰的多语机器翻译BSO项目,参照英文依存文法,设计过一个【中文依存文法】(Li, W. 1989. “A Dependency Syntax of Contemporary Chinese”, BSO/DLT Research Report, the Netherlands),概括了几乎所有的重要句型,纸上谈兵地画过无数的中文依存关系句法树。那应该是中文依存关系形式化研究的真正开拓期,如此说来 yours truly 也可以算是中文处理研究的化石级元老了。现在回看当年的图画,对照最近在机器上实现的依存句法分析器(dependency parser),一脉相承,感慨万千。年轻时就有绿色的梦,那么喜欢树,欣赏树,着迷画树,好像在画天堂美景一样体验着绿之美,梦想某一天亲手栽培这颗语言学之树,为信息技术创造奇迹。如今终于看到了实现的曙光,天时地利人和,研发的辛苦与享受已然合一,这是何等美妙的体验。”  摘自《中文之心,如在吾庐

“1989年夏天,我和导师刘倬去德国慕尼黑应参加第二次国际机器翻译最高级会议。此前,我跟荷兰BSO(Buro voor Systeemontwikkeling BV)公司的机器翻译研究组一直有联络,应约为他们的以世界语作为媒介语的多语机器翻译系统 DLT,编写了一部现代汉语依从关系的形式句法。他们听说我们要来欧洲,就邀请我和我的导师,还有中国机器翻译界知名人物董老师,会后顺道访问他们的实验室一周,做学术交流,共同讨论汉语句法里的一些疑难问题。这次活动,他们称作 Chinese Week.

“我们是应慕尼黑机器翻译峰会的召集人,西门子公司的S先生特邀,提交论文,介绍我们的JFY英汉系统。这是我第一次出国,一切陌生而新鲜。大会在大酒店的拱圆形讲演大厅举行,气派豪华。我的导师是俄语出身,所以派我上台宣讲论文。初生牛犊不怯场,我报告完后,回答了两个问题下场,正赶上中场休息时间。大概东方面孔的报告人很少,慕尼黑电台的记者现场采访了我,询问我的观感,还好没有涉及64的问题(当时64刚过,风声很紧,我们办到一半的出国手续,又重新审查一遍,险些泡汤)。

“游览阿姆斯特丹后,我们按计划去Utrecht的BSO公司访问一周。DLT 项目研究组十几个人,一半是语言学家,一半是工程师,看得出来,这是个气氛融洽的团队。德国世界语者 Klaus Schubert 博士是系统枢纽“依存关系句法”(dependency grammar)的设计人,在项目第二阶段继 Witkam 成为项目组长。71届大会后招进来的美国世界语者 Dan Maxwell 博士,负责东方语言的句法项目的承包、质询和验收,是我的直接领导(十年河东,十年河西,后来我成为他的 boss,这是后话,见《朝华午拾:水牛风云》)。Dan一看就是老实人,照顾我们客人殷勤有加。我看到他早上骑自行车来上班,笑着跟他说:“我在北京上班跟你一样”。

“研究组的骨干还有国际世界语协会的财务总监,知名英国籍世界语者 Victor Sadler 博士,我在71届国际世界语大会上跟他认识。作为高级研究员,他刚刚完成一项研究,利用 parsed (自动语法分析)过的双语对照的语料库(BKB, or Bilingual Knowledge Base)的统计信息,匹配大小各异的翻译单位(translation unit)进行自动翻译,这一项原创性研究比后来流行的同类研究早了5-10年。显然,大家都看好这一新的进展,作为重点向我们推介。整个访问的中心主题,仍然是解答他们关于汉语句法方面一些疑难问题。他们当时正在接洽欧洲和日本的可能的投资人,预备下一步大规模的商业开发,汉语作为不同语系的重要语言,其可行性研究对于寻找投资意义重大。

“期间,Victor以世界语朋友身份,请我到他家吃晚饭。他住在离公司不远的一栋公寓里,太太来开门,先跟丈夫轻吻,然后招呼我进来。太太也是世界语者,忘了哪国人了,总之是个典型的世界语之家,家庭用语是世界语。Victor告诉我,太太实际上会一些英语,但是用英语对她不公平啊。太太很和善,跟我说,他们俩非常平等,她做饭,Victor洗碗。我说,这跟我家的分工一样,我最爱洗碗这种简单劳动。她笑着说,“Victor, vi havas helpanton hodiau (你今天有帮手了)”。饭后Victor洗碗,并没有让我插手,我站在旁边陪他聊天,一边看他倒进大把的洗涤液,满是泡沫把餐具拿出来,用干布擦干。我告诉他们,这跟我的做法不同,我们总是怀疑化学制品有毒或副作用,最后必须用清水涮净才好。太太不解地问:“洗涤液如果有毒,厂家怎么能生产呢?” 这倒把我问住了。Victor夫妇和蔼可亲,我感觉在老朋友家一样,饭后一边吃甜点和水果,一边闲聊,尽兴而归。”  摘自 《朝华午拾:欧洲之行

30多年前,我在社科院硕士报考专业上填写了“机器翻译”四个大字,内心充满了敬畏和神秘感。刚入行的时候做的是外汉机器翻译,一直不大敢碰汉外,原因是汉语语法不好形式化,感觉太难了。
把酒话桑麻,再泡一壶茶,白头老机译,闲坐说研发,说一点儿机器翻译的掌故吧。曾几何时,机器翻译处于手工业研发时期,每个语言对(language pair)要手工开发两套系统,A 到 B 一套,B 到 A 一套,语言对一多就有一个类似系统数组合爆炸的问题。于是,怎样实现多套语言之间的相互翻译成为机器翻译领域的经典话题之一。各种探索和方案都有提出,主要有两类:一类是所谓基于媒介语的设计思想;另一类是合一文法(unification grammar,又叫 constraint-based grammar)支持的方案。第一种方案很动听,因为如果有一种比较中性可以表达意义的媒介语,那么每个语言只要编制两套针对媒介语的互译系统,就可以实现通过媒介语而成的任意语言对的翻译。这幅图画是如此美妙,为老一辈机器翻译宣传家门所津津乐道。由此而来又引发了媒介语设计和选择的种种争论和探索,有主张全新设计一套基于逻辑的形式语言(日本曾经联合亚洲其他国家实施过这个方案),有主张利用或者改造世界语(Esperanto,立委出道当年也曾著文鼓吹过世界语作为媒介语,荷兰一家公司BSO也曾尝试过),还有研究者坚持认为只有采用自然语言(譬如英语,或者简化版英语)做媒介语才现实可行。第二类合一文法的研究在理论上也很诱人,它的兴起伴随着新型计算机语言 Prolog 问世:合一运算是 Prolog 语言的内置特性。所谓合一文法,就是排除蕴含在传统计算文法(computational grammar)里面的语言分析和生成的过程性,在合一文法的旗下出现过一系列以后缀G(gammar)命名的形式化系统方案(formalisms),如 GPSG,HPSG(立委的博士课题就是在HPSG这个框架下做的机器翻译实验)等。因为语言规则不再具有单向性,那么分析文法和生成文法就可以是同一套语法,由这套文法支持的系统是做分析还是做生成,是在文法资源被调用的时候才得以确定。理论上,A 语言翻译为 B 语言,与 B 语言翻译为 A 语言,在语言资源上归一以后,开发系统的工程就节省了一半,对于多语互译的效率虽然不如媒介语方案高,省工一半也还是非常诱人的。长话短说,这两类方案都是传统的基于规则的系统,虽然都做过相当程度的研究探索,但最终由于局限于手工规则系统难以 scale up 而没成大气候,最终修成正果的还是后起的统计型机器翻译(statistical MT)。多语翻译的问题因此转化为海量双语对照语库的资源问题。同一个架构和算法,原则上只需要同一个双语对照语库对互译的两个方向训练两次即可生成两套机译系统,近几年也有对于缺乏对照翻译数据的语言对,通过语料更丰富的语言作为媒介语绕个弯的做法。
 
机器翻译(MT)是自然语言处理(NLP)领域历史最悠久的应用方向,从上个世纪50年代初发轫,承载了中外几代不知道多少人的青春和梦想,也包括青年时代的立委。如今,梦想化为现实,嵌入式机器翻译在互联网无孔不入,已经成为普罗大众手中招之即来挥之即去的便捷工具,每时每刻在默默服务着千百万互联网用户。女儿学汉语用它,学西班牙语用它,去日本动漫网页也用它,用到对它熟视无睹,把机器翻译视为理所当然。只在翻译错得离谱的时候才意识到它的存在,不时报以嘲讽:真笨。可机器翻译呢,谦谦君子,玉树临风,虚怀若谷,任劳任怨。对于已经天然成为女儿这代人生活一部分的机器翻译,我满腹机器翻译的历史和掌故,却不知如何给她诉说。耳濡目染,她从我断续的话语中似乎隐隐觉得机器翻译对于她父亲的一生具有特别的意义,可是我还是无法象对同辈人那样娓娓道来,如数家珍,传达出我内心深处的机器翻译所蕴含的那份厚重和神圣。不仅仅是一般意义上的代沟,是技术的跨越式发展造成了两代人迥然不同的视角,让人欣慰更感慨。摘自 《机器翻译万岁》

“学自然语言的人如果入行做的就是规则机器翻译,那是上天的赐福。新一辈这种人没有了,所以很多入行多年的人,看到的语言世界,还是一线天。如果你在没有平台支持下被逼着去做规则机器翻译,你有福了。你必须从头开始做词典、做 tokenization,做 POS,做短语,做 SVO 句法,你还要做双语结构转换、WSD 词义消歧,最后还有目标语的生成,包括形态生成、调序,修辞上的一些 final touches。总之,从语言分析到语言生成,方方面面你必须全部做到。如果没有平台 没有专用语言 像我们做硕士论文那样用 general purpose language (COBOL,ALGOL,BASIC,甚至汇编)做,那就是在太上老君八卦炉里炼,没得不炼成火眼金睛。现在的 CL 硕士博士呢,动不动就下载一个软件包,瞅准一个子任务 譬如切词,譬如 sentiment,譬如WSD,哪怕是做 MT, 也不用涉及那么多的层次和模块。

“索性把怀旧进行到底 《朝华午拾:一夜成为万元户》: 这是我为这个DLT项目所做的 Chinese Dependency Grammar 的故事。这篇汉语形式文法的原始版本有链接可以下载:Li, W. 1989. “A Dependency Syntax of Contemporary Chinese”, BSO/DLT Research Report, the Netherlands.  我的工作应该是中国做依存关系最早最完整的作品了。所谓 【美梦成真】 就是这么个来历,跨越近 30 年,纸上谈兵的 syntax 终于化为现实的 deep parser。刚才一边吃晚饭,一边琢磨这段MT外传,觉得还是有几点可以总结的,笔记如下。
(1) 荷兰这个多语 MT 计划本来是规则系统起家,用世界语作为媒介语,用的是依存关系文法的框架,实现的机制是 ATN (Augmented Transition Network),技术领头是德国语言学家舒伯特。
(2) 可是做着做着,剑桥出身的 Victor 博士想出了统计的路线,定义了一个在句法分析基础上、根据统计和记忆决定的可大可小的 Translation Unit (有点像我们用的“句素”的概念),做了实验验证了这条路线的创新,把整个项目在收尾阶段翻了个个儿。而这时候(1989年),其他的MT研究虽然也有 IBM 等开始的统计 MT,但没有一个达到这样的深度。
(3)事实上,直到今天,回顾这个科研创新可以看出,根据 parsed 以后的双语数据库的平行对比,从统计去找 Translation Units,比起后来多数缺乏结构、本质上是 ngram 记忆的 SMT,还是远高出一筹。(当然现如今的深度学习对MT的革命性推进,虽然仍然没有利用显式的语言结构,但真正海量数据的深度学习似乎有效弥补了结构的不足,不像此前的 SMT 那样捉襟见肘。)
(4)在 SMT 中加入 parsing 并不是每个人都有这个条件,DLT 赶巧是先做 parser 做了四五年,有了这个基础。现在和今后的方向从宏观上来看是,SMT和NMT 可以重温类似 BKB 双语parsed平行语料库的尝试,走带入结构的道路。深度神经是一种训练的算法,与语言的结构深度没有必然联系。事实上 迄今为止 对于 text NLP 的深度神经的尝试,除了专门做中间件 parsing 的 research 如 SyntaxtNet 外,对于 NLP 应用方面的任务,基本上还是在语言浅层端对端进行。”  摘自 《河东河西

 

【相关】

 

【李白雷梅59:自动句法分析中的伪歧义泥潭】

李:
“难得他认可啊。” 歧义句。有点类似于 、但也不同于“难过” 的歧义:

(1)他认可,难得啊(已然);(2)得他认可,难啊(未然)。

前者可以骄傲,是正面信息;后者是负面的畏难情绪,不自信,或的确客观上难以达到。

parse 的是 (1),如果想要(2),还是循“难过”的先例,去在语用层做休眠唤醒吧:  “难过”(“小河很难过”)见 【立委科普:歧义parsing的休眠唤醒机制再探

董:
我以前讲过,在实际语言交流中,人与人之间几乎没有歧义。如果真像nlp一步一个歧义,那还得了。类似范冰冰奶奶、咬死猎人的狗之类的句子是语言学家消遣自己的。上帝是为人准备的语言,不是为机器的。

白:
nlp大多数歧义是伪歧义。问题是,这些伪歧义,对人来说,是在哪个环节被干掉的。只要分析器在按照语言学家的思路做,语言学家消遣自己的把戏,就总有一天会消遣到机器的头上来。

雪:
common sense环节?人自身对于整个世界的建模

李:
CFG based parser,哪怕是 lexicalist 的语法 如HPSH,也有很多伪歧义 parses,可是多层的 parsers 就很少受到这个困扰。这个事实显而易见。可见 common sense 不该是 key,因为 多层系统里面 common sense 即便利用,也是零星带入的 不是主力。

我做博士的时候,导师的实验室里面有一个英语的 HPSG parser,parses 输出如此之多,如此地不能辨别真假,以至于最后在使用这个parser做MT实验的时候,我们不得不只选取第一个 parse,等价于随机选择。

层层递进的多层 parsing 虽然会偶然出现漏掉有效parses 的路径(过早删除),但比起其他 parser 的伪歧义成堆,还是境况好得多。此外,漏掉的有效 parses 在开发过程中,可以被重新补足,或被唤醒。

所以,白老师说 NLP大多数歧义是伪歧义,基本是针对单层搜索的 parsing 算法而言,而不是多层 cascaded parser 的真正缺陷。

梅:
可以说是“common sense”吧。人不是机器。

李:
一般来说,语言学的细线条知识 不划归 common sense 范畴。当然,细线条到一定程度,常识也就溜进来了,没有绝对界限。人类交流没有感觉到歧义,有几个原因:

(1)歧义休眠了,正常的场景不被唤醒,因此无感;
(2)有些歧义不影响大面的理解和主旨的交流,说的人也许本来自己就含混,听得人也没有理由去追究细节。保持某种语义模糊是人类交流相当常见的状态,但是一旦形式化,歧义就站在那里了,除非是做系统的人特地去把歧义中性化或模糊化。一个典型的 PP-attachment 的歧义是 for-PP,以前说过,在很多场合,这个 for-PP 做定语还是做状语,根本没啥大差别。

梅:
人要是想多了,说不定也有“歧义“,但人的“short term memory”是有limit的

李:
(3) 当然还有一部分所谓歧义是系统 “人造”的,本来无歧义,系统自扰之。譬如,在 HPSG 的数据结构 feature structure 的设计中,经常会出现这种歧义。由于过分强调 feature structure 的层次性、逻辑性和合一性,以至于当这个 structure 投入使用的时候,带来了大量的对于人没有区别意义,但对于结构具有区别的所谓歧义。这是与具体的系统formalism 的设计有关,是 system internal 的,与其他 formalism 无关,与人的理解无关,是模型化形式化过程中的产物。unification 是双刃剑,推向极端,系统就失之太过精巧,没有容错性。

刚才例行散步时仔细想了想了这个伪歧义的问题。为什么这么多 parsers,包括传统的 CFG-based 规则系统和统计训练出来的 parsers,陷入伪歧义的泥潭?

白:
没用盘外招呗

李:
得了 得了。我一肚子话还没说呢。白老师,I 服了 U!

白:
羊头+盘外招=狗肉

李:
白老师讽刺我是卖狗肉的

梅:
Spoken 和 written 应该有很多不同吧?@wei

李:
很多不同是对那些从 PennTree 训练出来的系统。对我们的系统,没有什么不同。spoken  的语言不太规范,transcribe 成 text 我一样 parse,质量会有降低,但那是与 spoken text 的随意性成比例的,绝对不会是直线下降。反过来,我以 degraded text 做我的数据制导,出来的系统一样对付正规文体。parse 新闻不会比专门从新闻训练出来的系统差。这是语言学家做系统的好处之一吧,我们是人,不是机器,不会被数据牵着鼻子亦步亦趋。

白:
光分层,不可能把伪歧义去的那么好。这里面太多只可意会 不可言传。有剪必有捡

李:
关于伪歧义,这么说吧:伪歧义太多是枝枝蔓蔓没有及时修剪的必然结果。理论上讲,修枝剪叶是危险的,实践中却不尽然。自然语言中的现象中有很多是相互依赖的,但也有很多现象是相互独立的。如果你设计的系统是以相互依赖作为基本的 assumption,祝贺你,你就跳进泥潭吧。跳吧,跳吧,不要往两边看。

如果你相信语言现象的 dependency 是有限的,可以调控的,即便剪错了也不是世界末日,你就可以在数据制导的开发环境里,逐渐把系统调适得恰到好处:该休眠的休眠,该保留的保留,该杀头的立即枪毙。你就不会为伪歧义所困扰。

白:
一个硬币的两面。靠剪对付标配,靠捡对付长尾。两手都要硬

李:
是的,可是怎么硬呢?硬必须要有语言学的sense,必须知道根据不同情况做不同的对待。缺乏语言学的人 把各种路径放在一个锅里炒,无论你有多大的数据,你也还是陷入泥潭。

雷:
@wei 不是秋后问斩,是斩立决

李:
白老师字字珠玑: 靠剪对付标配,靠捡对付长尾。

雷:
@wei 其实,即使没有歧义,语言理解也是如若有歧义,理解有多个

白:
把人际沟通中的各种暗示、言外之意都算进来,歧义不得了,但是核心的精神,剪与捡,是不变的。

雷:
每个人接受的模式决定了理解的样式

白:
比如站在严格逻辑的角度,从“该来的没来”,本不该推出“来的都是不该来的”;从“不该走的走了”,也不应推出“没走的是该走的”。但是人就是要听话听声。

李:
@雷,一码一码吧。语义落地到人或产品,那是 parsing 的后过程。

雷:
句法是语言学家的

李:
@白老师 盘外招 只可意会不可言传的 tricks 这些在学习系统中怎么去 model 呢?我怀疑学习算法不敌领域专家(对于 parsing 就是语言学家),根据的就是这个。我作为专家如果在迷宫里千辛万苦绕出来了,学习怎么恰好也能绕出来?

白:
@wei 同样的话,围棋高手们也问过。

李:
说的也是,围棋手也这么问过。不过,白老师其实只说了半句话。

白:
另半句,取决于学习模型长什么样。

李:
这个模型的定义至少不该排除领域专家的参与 无论以什么方式 除非设计者是个全才。

白:
标配是必然的,也不排除有个居高临下的模型,俯瞰N个领域,语言只是其中之一,但是人家从其他领域登顶了。就像控制论,把人、动物、机器里的反馈控制一网打尽了。生理学家、动物学家都买账的。尽管创始人是从机器出发登顶的

首发:【科学网:自动句法分析中的伪歧义泥潭

 

 

【相关】

【语义计算:李白对话录系列】

《李白之零:NLP 骨灰级砖家一席谈,关于伪歧义》

【立委科普:语言学算法是 deep NLP 绕不过去的坎儿】

《对于 tractable tasks, 机器学习很难胜过专家》

《NLP 系统的分层挑战》 

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

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

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

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

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

《跨层次结构歧义的识别表达痛点》

中文处理

Parsing

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

《朝华午拾》总目录

【李白之58:爬楼NLU】

爬楼NLU(Natural Language Understanding): 二楼句法结构三楼语义落地

李:
问各位一个 lexical feature 的转移问题及其解决途径,譬如 “所吃”。在小词 “所” 与 vt 结合成合成词以后,该词的语义等价于vt 标配宾语的语义。换句话说 “吃” 的动作性 语义本体标注 [consume] ,应该被置换成名词性标注 [food]。这个 feature 更新如何实现比较合适?到 HowNet 里面去挖出来? 如果 feature 不更新,那些细线条的指望语义 features 查询条件的规则就会失效。“所” 是一例,“的字结构” 是类似的例子。无论小词负载结构 还是小词参与合成词模式 都躲不过这个 feature 大转移的语义坎儿。当然可以为每一种主要关系(譬如 动宾)从 HowNet 抽取出一个语义词表,等到需要更新的时候,就让系统根据关系的规定来查表解决。不知道有人在 parsing 中做了这个工作没有? 估计很少,多数系统还没有细线条到这个地步。

白:
所,是N/S。的,是N+/X。所吃,是 N/S 与S/*N*,结合以后变成N/**,这是句法层面。subcat层面,它继承S的逻辑宾语坑的subcat。的,就没这么精准了。X里面谁空着就提取谁的subcat。“这本书我送的是他。”间接宾语也能提取。*N*是分母的一般形式,吃还是S/2N,所吃,是N/N,被谁所吃不知道。我所吃,N与N/N正好得出N。

李:
这里的继承有文章。“所吃” 继承的subcat 有:(1)“吃”的本体标配宾语,(2)subcat 剩余坑,也就是主语坑 /N == [animate]。这两项继承 一个是本体自己的 type 一个是坑的 type,都不是简单的事儿。因为承载本体的语词“吃” 由于小词“所”的作用 ,已经与本体概念 来了个乾坤大转移。

白:
[animate],[food]; 继承后者,即food。“这碗饭的所吃”不可以,

李:
N/**,这个句法符号里面有很多本体名堂。当然,这些本体关系信息都是现成的 ,Hownet 里面就有类似的知识表达:吃: s=[animate] o=[food]。

白:
“考”有点特殊。我们不知道“考”句法上应该是几个标配坑,但“所考”的subcat可以是人、学校、科目、某种证书。也就是说,不排除标配坑与subcat的对应有多元化的可能性。简单说逻辑宾语是不足以刻画这里面的复杂性的。不过,“所考”不可以继承分数【score】, 似乎所有事前不能有所控制的,都不能用“所”。“所梦”VS“所梦想”

李:
甲: 吃了吗
乙: 吃了
甲: 所食何物?
乙: 所食非物。
甲: 莫非秀色?
乙: 非也。 所食不过食堂耳。
甲:我的所吃更惨 非食堂 非馆子 更非秀色。所吃乃瘪、苦头、抑或 一鼻子灰。

白:
嗯,句法层能说“吃食堂”,“所吃”就可以是“食堂”。就是说,“吃”的逻辑宾语,是一堆而不是一个subcat。

李:
我要说的是 本体标配受事,还有一个上位概念,这个上位概念倚靠的是句法,表达的是逻辑谓宾的语义相谐。它不是本体那样纯粹 那样独立于具体语言,但又离不开本体的大框架。我一直把这种上位逻辑语义叫做逻辑宾语、逻辑主语,有意借用句法术语,加上前缀“逻辑”。所以逻辑宾语 可以是 【受事】、【对象】。【地点】等,以及其他种种说不清的搭配,逻辑主语 可以是 【施事】、【工具】、【地点】等。

白:
语义相谐不局限于受事,而是“可宾”的subcat。所砍,不能是工具。所去,可以是处所。所卖,可以是买主。所送,可以是对手方。

李:
这个 logical S 和 logical O 其实是很关键的概念。

白:
但是标逻辑主宾语给谁看给谁用?
语义落地,还是本体的坑好用,除非像“所X”这种含混的。

李:
主要是为了概括句型:svoc,就三个args。arg0 逻辑主语,arg1 逻辑宾语,arg2 逻辑补足语,更加杂乱一些,包括谓词结构嵌套也在内。但不管这三个 args 的内部逻辑语义细节多丰富,这三个坑从语言句型结构上定下了框架,万变不离其宗。

白:
好像不需要这一层,大面上也都可以语义落地。从“跟谁有关系”到“是什么关系”。
当“是什么关系”有多选时,就对应subcat集合,当然可以有个概率分布之类。按老乔的理论,你这是移位前的“logical form”,本质上还是句法。

李:
对 是句法。句法才是纯粹的语言学,到了语义就开始变味了。

白:
但是这标签贴了又不是最终落地用的,感觉不爽。要贴标签的话,还是只贴一次为好。句法不贴又何妨。

李:
在我这儿 语义落地靠的就是 svoc 句型,有了svoc 的框架,落地的句型 就一目了然了。 具体工作不过是给句型做细节条件的微调,然后就落地为具体场景的角色了。譬如 o 落地为 【发布的产品】,s 落地为 【发布产品的公司】:Apple launched iPhone 7 yesterday

白:
在我这儿,“可宾”包括的subcat范围,一是可以学出来的,二是仅仅跟少量词语的语义落地有关,没有大动干戈的必要。大多数落地(role assignment)的场景都不需要这个中介。

李:
把 s 标签 map 到 【发布产品的公司】这类工作,简直就是玩儿。 是典型的以不变应万变。不管产品和客户需求有多少变化 本质上 语义落地玩的就是换名的游戏。比起 parsing 这一层工作的繁难,信息抽取层面的这些工作太简明了。 虽然需要落地的谓词 都是少量的,但所有的谓词都逃不过句法的逻辑句型。 因此针对所有谓词建立句型模式 就形成了一种以不变应万变的结构准备,接下去爱怎么落地 都是一览众山小了 跑不过如来佛的手掌 。所以 这一层本身虽然不是客户的需求 而只是内部的桥梁,但我还是很推崇它作为语义落地骨架或桥梁的地位。

白:
如来佛手掌可以有多种造型

李:
那是。跳过它落地 完全可以想象。也许是偏好 总之玩一个主人三个仆从的游戏觉得很好把握,组合一下 也是非常有限的边界。不会做着做着 觉得进入迷宫 或搞不清漏掉多少。说着说着 觉得自己一方面批判乔老爷(参见【乔姆斯基批判- 李维), 一方面可能中了他老人家句法中心论、句法自足论的流毒太深 而不自知。

白:
从“有关系”到“是受事”,中间再经历一个环节好,还是直达好?我的选择是“直达”。至于“受事”是“发布的产品”,这只是一个alias。没有什么技术含量的

李:
对呀。正因为没有含量 所以就更像是游戏。真正有技术含量都在前期的 deep parsing 里面了,那才是自然语言理解的核武器。换句话说 svoc deep parsing 已经把句法做到通用领域的极致了,以至于落地到领域几乎就是一个换名的游戏,换一个领域容易接受、客户听起来舒适的情报标签。

白:
回到前面“吃食堂”,“食堂”可直接匹配“处所”,我说它是O不是O,有何意义?

李:
关键的 argument 还是:落地是千变万化的领域 和 各种不同客户的需求,但 svoc 永存 永远不变。只要领域用的是语言数据 这就是恒定的,就如二元关系的永恒一样。

白:
这里焦点不是有没有,是可不可以不用,不用是否一定差。语言学有很强的构造性,你构造他就有。角色本地名称是第一性的,通用名称是第二性的。对机器来说本地名称可以是不要名称,只有编号:第一个语义坑、第二个语义坑……,给个本地别名,就是公司、产品,给个通用名,就是施事受事。

李:
关于直达还是通过语义中间表达的桥梁,我也问过类似的问题。我诘问的对象是费尔默理论。在信息抽取的落地框架前, 有没有必要先经过一下他老人家的 FrameNet 的框架?我的答案是否定的:多此一举 没有必要。这就基本否定了 FrameNet 的实用意义。没有必要的理由是 FrameNet 理论上缩短了语义落地的距离,实践中增加了落地的麻烦。一个 svoc 的简单通用句型 分化到成百上千的 frames 去 还没有最终到达目标地。

白:
svoc也没有达到目的地,“有填坑关系”不是更干脆么,中间的过程,无论借助subcat锁定还是借助语序,都是自动化的。

李:
svoc 可控、intuitive,而且语言学家如数家珍。其实,说了半天,从落地对策的大类上,我和白老师是一伙的。标不标 svo 只是细节的差异,虽然从我的架构看,这个差异还是蛮重要的。

白:
语言学家如果是我培养出来的,用我这一套也可以如数家珍。

李:
但如果落地从领域落地泛化到通用的应用,譬如搜索,搜索没有预先定义的事件。svo 的搜索比较容易训练给大众,这与多数人的基本语感相吻合 who did what.  这类重要应用增加了 svo 的独立价值。你要搜索产品发布事件?好 那你就搜索:“发布” 其宾语是 【产品】。至于这个宾语在语言中有多少变体的句式 那都不是大众需要关心的,deep parsing 早就 normalize 了。

白:
这只是一个动词被“实例化”的wizard

李:
如果不标svo, 搜索的时候可以这么说,搜索 “发布” 其二元关系词是 【产品】,也可以达到类似的结构搜索的效果,返回精准的产品发布事件的清单来。比纯关键词词搜索精细高明多了。可是如果客户想 搜索所有受雇的人 ,在 svo 系统中 就搜索:“雇佣” 检索出其【宾语】出来。在不标 so 的二元关系系统中,雇主和雇员就混在一起了。

白:
1、你无法排除取消发布、拒绝发布、打算发布、能够发布……这些用模态词沾染过的发布;2、发布的如果不是产品而是新闻怎么办。svoc自身无法区分哪些是产品哪些是新闻。

李:
这些都不是问题。或者说不是因为增加 svoc 而新出的问题。svoc 反而为在何处解决那个问题提供了蓝图和便利。这都是另外层面的问题,譬如节点的条件、数据的来源、李ta data 等。与评价 svo 本身的利弊没有关系。

白:
我的问题是,如果这些区分导致svoc这一层反正信息不足,反正还需要借助另一层的信息,那么直达那一层有何不妥

李:
但信息不足是有不同层面的。任何图谱(graph),是 arcs 信息不足,还是 nodes 信息不足?还是超越句内结构的discourse不足,还是 meta data 不足?不能混谈,虽然这些不同层面的信息有相互弥补的作用:戏(arcs)不够可以词(nodes)来凑。

白:
标签不足。

李:
arcs 不标标签 是一个极端。arcs 标了 soc 是多了一些句法结构的关键信息,soc 再细化为董老师的90多种逻辑语义,就又更多了信息。nodes 呢, 啥也不标 是一个极端, 标了 pos 有了一些信息分类,再标 subcats,进而做NE实体标注(包括产品),直到引进 常识本体乃至领域本体(ontologies), 信息就越来越丰富。自然也越来越难维护和掌控。

白:
反正要上三楼,就是二楼的高矮问题。

李:
对。

白:
如果为了上一个高的二楼,导致付出的代价接近上三楼,二楼就取消算了。三楼的细活儿做得越好,二楼矮点儿就越没关系。

李:
为搭建二楼 svoc 所需要的信息及其技术手段,基本全部可以继承下来为三楼服务。所以 为什么说 parsing 不仅仅是所看到的树结构,也不要指望一个 offshelf parser 就很容易语义落地为产品了。parser 要成为语义落地直通车, 需要借用 parsing 本身所带来的资源积累。结构图只是这些资源的一个最容易彰显的部分 但绝不是全部。

白:
自带插销插座,到三楼装配起来就easy多了。

李:
完全同意 同感。但 “二楼就取消算了”,不愿苟同。问题是三楼是 moving 的,业务场景变化 客户需求变化 产品角度变化 ......  都使得三楼细活显得琐碎而不容易概括。

白:
不会
那都是贴牌问题,瓤不是moving的。

李:
二楼是清晰定义的目标。在我看来,二楼的 svoc 正是不变之瓤。

白:
我的二楼是让有关系的都勾搭上。是什么关系你们到三楼谈。但是自带了三楼才会用到的插销插座的,不妨提前锁定。到了三楼,就只剩贴牌了。但是也有需要必须在三楼才能锁定的,二楼无须代劳和强制。

李:
理论上 必须在三楼做的 只是领域知识。这些知识在二楼是避开的。

白:
另外贴牌是很外在的东东,没必要单独一层,只相当于在三楼化个妆。只需要示例就可以让领域的人干,都不用跟语言学家打照面。

李:
然,贴牌很多时候不过是 config,可以让用户或产品经理根据喜好而定,随时更换。

白:
跨领域的实体数据库,这个环节可以众包。领域知识说起来是无底洞,但是做法不同收效相差很远。根本分歧是,知识的使用是“推演”的套路还是“联想”的套路。“推演”的套路精准但笨重,只能借助人工而无法借助大数据。“联想”的套路模糊而轻盈,不过多依赖人工而寻求借助大数据讨巧。只要模糊给出的效果是应用可容忍的,“联想”的套路就会胜出。所以,哈工大做的“事理图谱”如果沿着联想的路往前走,我很看好。有理由相信,语言处理需要的知识,不是“精准”而是“轻盈”。对话场合大不了还可以追问。文本场合虽然不能受理追问,但受众有相对充分的时间调动“精准”的手段。二楼的高和矮,如果涉及到二楼的业绩,确实另当别论。如果二楼三楼的发明人都是公司的大老板,或许另样格局。这两碗水怎么端都是平的。

 

 

【相关】

【语义计算:李白对话录系列】

乔姆斯基批判- 李维

中文处理

Parsing

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

《朝华午拾》总目录

【李白毛55:漫谈 NLP】

立委按:谈笑有鸿儒,泥沙龙写照也。毛白立三剑客,隔洋神交,日颠夜倒,天马行空,人生快事也。语言理解,人工智慧,软体硬件,万言不离其宗也。铿锵三人行,行迹可存,笔记于此,以飨同仁也。

白: 转:《夏洛特烦恼》我以为主角叫夏洛特 。原来男一号叫夏洛 ;接下来会不会有《郭敬明天见》《周立波很大》《吴奇隆胸记》《王宝强奸案》《郭富城会玩》《井柏然并卵》《黄秋生无可恋》《贾乃亮了》《奥巴马上来》《周润发财了》《权志龙虾壳》《金正恩仇录》。

李: 边界之争。夏洛特是词典一方 特+烦恼 是句法一方 作为一般原则 句法认输。所有的边界之争 你总可以找到一种语境 来支持任何一方,但是实际系统中 还是按原则办事 除非某特定语境出现频率大 而且可以形式化被捕捉为原则的例外。“郭敬明” 是词典,“明天”或“明天见”也是词典,词典与词典相争。 谁赢呢?要分不同情形。情形对应的是 heuristics。对于此情形,“明天见” 赢。因为有这么一条 heuristic:最少词数胜出。郭敬/明天见, 算两词。郭敬明/天/见 是三词。更深的理由是 音节数量的匀称的 heuristic:3 1 1 不如 2 3 匀称。

白: 无后坐力炮,经常被读成2 3节奏,按构词法,应该是1 3 1。可否不那么早定输赢,都打到上一层。

立:可,keep ambiguity untouched 的办法 也是一招,不过加大了后去 parsing 的搜索空间 也可能不妙。

白: 上层用Ngram也无所谓。看一个滑动窗口激活一个还是两个词袋。

李: 这就是拼积木,难的积木留在最后拼。拼积木ngram比cfg容易,没有爆炸的问题。

白: 正是。

李: 汉语的节奏对称还是很厉害的,举反例总会有,但是实际中发现,音节数的条件,比起其他的条件(词类、子类、语义分类)往往也很好用、可靠。另外一个相关的体会是排比句式,汉语(包括古汉语)排比句式的使用往往可以把本来占有统计劣势的 parse 变得有效起来。不过,至今没想到利用排比句式帮助消歧的好的实现办法。感觉排比的发现和使用是处于另一层,而且排比的 scope 不好事先确定。

毛: 对于汉语NLP, 二位觉得有什么好书可以推荐?不用很深,科普就行。

李: 我很多年不看书了,还是白老师推荐吧。最好的是白老师正在写的,这个无疑问,但你需要等。汉语 NLP 论文献,80% 谈的是切词,全领域走火入魔了,陷入细枝末节和烦琐哲学,很大程度上非常可惜的一种智力浪费。

毛: 等倒没关系,反正暂时也没时间看。其实我不太会有机会用到这方面的知识了,我这是“朝闻道夕死可也”。尼克,Unix的那些Utility,每个都是基于一个while主循环,这就是lambda的语义。Java8让你有一种简洁的方法来表达这种语义,然后它替你生成这样的循环。

白: 自然语言的语义,也有lambda的份儿。

毛: 是,所以我觉得数据流在 NLP 方面可以发挥一些作用。

白: 表函数、表关系、表部件的词(中点、姐夫、抽屉)都是。需要一个带坑的语义结构去定义。坑,就是约束变元。

李: semantic subcat?  Syntactic subcat specifies the form of roles in a frame,correspondingly, semantic subcat specifies the preferred semantic classes for the expected roles of a frame. 语义 subcat 都是必填的,虽然句法上还是可省略。

白: 坑有必填的和可选的两种

立:如果加上可选的,那就超出了subcat,而进入 cat 了。因为可选的角色一般针对大类,而必填的才针对子类。

白: 这点商榷一下,时间地点等,往往不是必填的。

李: exactly,时间地点等边缘角色针对的是大类。所有的动作、行为都适用。它们都在时间与空间中存在。而一元谓词,还是二元谓词、三元谓词,甚至零元谓词,这些都是子类的区别。天气动词语义上是零元的,虽然句法上可以加一个:It is raining 、老天下雨了。世界语最接近逻辑,语义的零元,句法也是零元,就不用加这种无意义的主语:Pluvas。

毛: 我觉得最有前景的可能是并行多路的parsing。就如你们刚才说的“无后座力炮”,如果系统能立马分出两个数据流分支,按不同规则加以解析,然后由高一层的规则判断何者为优,那效率就高了。这在NLP方面不是什么新概念,问题在于能否搭出这么灵活而高效的系统。

毛: 但是NLP所处理的原料不太可能是世界语的文本呀。

李: 只是说明语义和句法之间既对应,又不完全对应的情形。比较不同语言,这些不对应的部分反映了不同语言的应对策略,这是很有意思的对比。

白: 标签化的表达比函数式的表达,应对非必选的东东就灵活多了。

李: 英语用 it,谁知道这 it 是什么东西?汉语比较具体,用的是老天。

白: 相反吧,汉语不说。

李: 汉语也可以不说,“下雨了”。如果不说,那就与世界语一样逻辑了,躶体出境。

白: 不说不是省略,是比省略高明的模糊。

李:  这里不是省略,因为逻辑语义上没有这一元的地位。

白: 语义上就有0元谓词,但是句法上没有地位,于是搞了个貌似省略的充数。

立:”老天“ 直译过去就很可笑:The sky is raining, Mother Nature is raining, or, God is raining?

白: 比it还富有想象力.

高: 像黑格尔说的,Was ist Das.

毛: 可以用函数式的方式来处理标签,把二者结合起来。我相信在NLP这一边已经有了许多很好的概念和方法,问题在于怎样搭出好的系统来高效加以实现。所以数据流应该有用武之地。

李: 语言很有意思,可以从三层来看这种“坑”。Filmore 把这个叫做【格语法】,他写过 “Case for case”,许国璋教授翻的,叫《格辩》,得其神韵,很妙。《格辩》是与乔姆斯基唱对台戏,是反乔派中最有分量的历史文献了,高举的是语义大旗。对NLP有深远的影响。所以,“坑”(case)可以分三层来看。第一级是 morphology case,这是“格”的本来用法,主格、宾格、工具格等等的词尾形式所表达的。第二级是 syntactic case,刻画的是 subcat 对语言形式的条件要求,包括具体语言中每个 Role 的词序、介词等的要求。第三级是 semantic case,刻画的是输出框,这是各语言共同的,又叫深层格,是 Filmore 提出的概念,与乔姆斯基的逻辑形式(logical form)对应。要几个元(格)是由谓词的概念子类决定的,它反映的是自然的关系(可以包括常识)。可是每个语言在实现这些深层格的时候,会利用不同的句法或词法的形式,于是穿上了句法或词法的外衣。

毛: 好吧,你们先掐。

白: 毛老,函数式和标签式表达,只有一墙之隔。标签其实就是最高抽象类的里面的“准”全局变量,谁都可以继承来塞点私货。不塞也无妨。

毛: 所以,我认为应该重启五代机的研究。有人说现在神经元网络是六代机了,我认为不对,因为说到底总还是“人工智能机”。

李: AI机只是六代机的一个引擎?

毛: 至少是现在,通过图灵测试是计算机的上限,所以不应该有高于AI机的计算机了。

白: 把RNN、多层FSA、多层词袋这些东东做成硬件就是了。

毛: 神经元系统只是一种计算模型,它也要通过编程在计算机上实现。神经元网络的运转说到底还是程序的执行。

白: FPGA实现就很好,能做成NLP协处理器就更棒了,NPU。

毛: 对是对的,但是如果变化太多,硬件实现就太不经济了。另一方面,如果有很多这样的部件,那么如何灵活高效地加以调度,根据具体情况动态搭出合适的系统,这本身就是个问题,这就又要涉及数据流了。我们平时在碰到困难时说要 “换一个思路”, 实际上就是要换一种数据流。

白: 希望NLP能早日成熟到毛老可以对接上的水平。

毛: 我觉得很可能是反过来的, 搞系统的人何时能搭出适合于NLP的系统,NLP Oriented Systems。 问题是搞系统的人一般都不懂NLP。

白: 是NLP这边说不清楚。回头说格。 “把”在汉语里号称是宾格介词,但是遇到“把我累死了”这种例子,又找不到哪个谓词提供宾格的坑。实际上,“累”是“使累”,是一个使动用法。所以顺序很重要,先使动 ,后宾格,一切OK。先宾格,后使动,北都找不着。

毛: “我累” 怎么解析?

白: 主谓啊。但“我累死你”不是。

毛: 哦。那就是“我使你累死”

白: 虚线框内形成一个虚拟谓词(复合然后缩合而成),对于这个虚线框,“你”貌似它的宾语,所以也获得了使用“把”表示宾格的能力。在句法层面,“使”不见了,“把”却在横行。

毛: 那么这种“使动”的属性就作为标签加在“累”这个词上?

李: 累和死 先合成,然后针对宾格的坑就出来了。“累死”这样的算是合成词,不过这种合成词是 productive 的。

白: 气糊涂,饿疯, 都一样, "忙晕", "乐坏".

毛: 累死 应该是 累到死 累到要死的程度 的意思,这个死是补语吧?

白: 是补语,语义上对应一个程度标签,非必选的,所以不算框的正式坑。加标签是随手做,填坑是大动静。所以正规军和游击队,待遇就是不一样。

李: 累死我了 --》 把我累死了。符合正常的位移转换(movement/transformation)方式。累(V的某种子类)+死 就是一个造词小规则,是产生式合成词的规则。符合这个规则的合成词就带有如下特征:及物,具体说,是使动的及物,并有表示程度的结果(“死”,不是真死)在内。带“把”提前是及物的共性,不用管。只要这个规则成功的时候,subcat 标签加对了,后去就顺理成章,无需特别操作。

毛: 所以呀,面向NLP的系统应该很方便很灵活地让你动态挖个坑,而且是同时挖上好几个坑,可以并行去试试不同的坑。这样才好。

白: “这些馒头把我吃胖了”。这个复杂些,有主有宾,只是虚线框里面拧着,了的时态含义省略了。胖,有一个坑。使和吃,各有两个坑。复合后缩合的虚线框部分,只有两个坑,一主一宾。与“吃”相比,正好颠倒了。所以,这类补语不仅是表程度,而是具体表致使后果的程度。

毛: 期待白老师的科普书早日出来。你的书里会画这些图吗?

白: 会。一个框,本质上就是一个函数定义式,也就是lambda表达式。入矢代表输入(自变量),出矢代表输出(因变量)。复合的时候,正是玩lambda表达式的时候,而且都是带类型的。

毛: 对呀,我在想这些图应该能转化成DAG式的数据流。

白: 每个坑都有类型,譬如,吃,输入类型两个坑分别是有生命、食物,输出类型是事件。

立:对,坑有两个信息:一个是坑本身的类型(what role),一个是坑里面的东西的“格”条件。role 是坑的主人决定的(词典里面的 谓词 subcat 或者规则产出的 谓词 subcat),“格”其实也是  subcat 题中应有之意,规定好的。格是输入匹配条件,roles 是输出事件语义。

毛: 数据流,结合立委的多层 FSA 模型,如果能做成通用的系统,我觉得是个很好的进展。有没有统计过像这样的图大概有多少?(以复盖常用句型为度)

李: 常用句型几十个吧,10-100 的区间。

毛: 哦

李: 看定义的粗细,谓词 subcat 最多只有三元 (所谓 S【V】OC),元里面还可以细分,大体 < 100 可以搞定

毛: 这个就可以用上分层嵌套的方法。

李: 这段对话,毛老、白老师,要我整理出来么?你们定,如果要,我就整理成博文。这次是你们俩主唱,我只是敲边鼓的,纯粹语言学的边鼓。

毛: 那当然好啰,要从尼克提到lambda开始。

白: 没问题啊。

李: 我其实不懂数据流,函数式略懂皮毛。lambda 在学语义学的时候学过一点,但是一直没完全整明白过。

毛: 那是工具性的,NLP本身才是关键。

李: 不过 subcat 在产生式合成词中会有变换,是我在 Morphology 课上学过的,而且学过的案例相当多。复杂案例的变换也不少。白老师的后一个例子是复杂案例之一。语言学家很善于总结这些格框变换的模式。

毛: 尼克最喜欢搞锵锵三人行, 咱就来一下三人行。

立:毛老、白老师,想起一件可能与数据流相关的事来,先写在这里,省得忘了。信息抽取(IE)这个领域刚开创的时候(20年前,由 DARPA 主持推动的 MUC 启动了这个领域,是NLP的实用化努力,非常了不起的一个推动,把NLP从象牙塔拉了出来),主流统计派还没回过味来,因此IE领域中的规则系统并不少,因为规则简单直接好用。其中,规则系统中,比较有影响的是斯坦福研究中心(SRI)推出的所谓 Cascaded FSTs,现在想来就是毛老说的数据流了。虽然后来我领导的小组也一直做多层FSAs,有时也贴上 Cascade 的标签,二者区别是显著的,虽然本质相同。斯坦福做的 Cascaded FSTs(finite state transducers)是把每一层编译的 network 直接用“数据流”串起来的一体化流程,cascade 是编译(或运行?)内部的机制。而我们做的所谓 cascade 就是从外部叠加调用,这是传统软件项目中管式系统(pipeline)的模块化开发,然后在运行的时候,从外部来接口,是大路货的路线。
洪: 看看有没有modern Hadoop实现

李:  总之,昨天我还发懵,搞不清为什么谈多层NLP的时候,毛老非要强调数据流,今天醒过来,原来如此。不过,我个人的感觉是,那种内部数据流的 Cascaded FSTs 后来逐渐淡出视野,一定有它内在的局限或问题。而我走的外部pipeline系统的方法,却得心应手,开花结果了。尽管理论上,数据流的路线应该更容易高效,更容易固化,但是肯定是遇到了什么坎儿过不去。

白:关于数据流,一直感觉NLP涉及的比较细粒度,就算自动机的堆叠或者分层的词袋,仍然粒度过细,一个句子里就可能多次流动,更不要说RNN这种自己转着圈玩的了……把这么细粒度的流动用大数据处理的利器来玩,是不是有点高射炮打蚊子?请毛老指教。

但是,自动机堆叠一个实现上重要的架构就是pipelining。底层边吃进输入,边产生阶段性的输出,又变成上一层的输入。这个pipelining的框架如何在系统层面优化实现,很有油水。

还有,当数千个自动机协同工作时,它们当中一定有共享的数据结构和计算,如何进行优化,乃至硬件层面的优化,这里面大有文章可做。

毛: 白老师说的对,数据流运用于NLP有许多细节的问题,特别是粒度的问题,还要好好推敲,现在还只是个朦胧的方向。粒度的问题一方面取决于具体的业务逻辑,一方面也跟硬件有密切关系,例如有没有GPU这一点,就对数据流的粒度和形状都会有很大影响。
李: 毛老,这是 SRI 的 work,叫 FASTUS。我在找他们描述 implementation of casaced FSTs 的部分,好像言之不详。以前不求甚解,反正自己已经找到了一条顺风顺水的路子,管人家怎么实现的,用的啥数据流。
毛: 好,谢谢立委。Cascade肯定就是pipelining,这就是一维数据流。
立:这个数据流的概念上没有问题。我是想知道,他们是不是把一个模块的 network 与pipeline 线上的其他 networks 整合成一个 integrated 的 network?我想知道,是不是整个编译全系统,还是像我们一样,每个模块是单单编译,单单调用的?
白: 如果有同步的语义操作,我相信会的。
李: 我的印象是,他们是编译全系统的,所以我们一直承认自己是 external 的 cascade,我们只是外部连接。重点的重点是,里面有一个共同的数据结构,无论 Pipieline 怎么流,不外是对这个数据结构的更新而已。
毛: 所以立委和白老师得要多掐,我就在旁听着,边听边想数据流的事。
李: 唉,还是没看到实现细节,保不定他们所谓的 cascade 与我们的做法一致,不过是利用共同的数据结构作为粘合剂,一个模块一个模块的调用。

早年的文献中,最原始最愚蠢的数据结构是 string 进 string 出,然后他们描述怎么在这个一维的string上加各种括号和标签。下一个模块必须在模式匹配的时候要跳过这些人为的括号与标签,才能更新信息,那个愚蠢透顶,不可思议。我还真照文献说的实现过一个prototype,一边做一边骂这帮傻老帽。那个玩意儿根本做不下去,超过两层的处理就焦头烂额了。

后来有人(譬如英国著名的NLP平台 GATE)用 XML 作为模块间连接的标准接口,本质上也还是 string,不过是多了一些现成的工具,可以用来 parsing 这样的数据成内部结构。当然,在不同系统对接的时候,开发者和使用者是不同的组织,XML 作为标准接口往往是最少扯皮的一种方案,因为内部的数据结构不具有这种传递性。然而对于一个系统内部的各模块,用 XML 做数据传输几乎是胡闹。做个 prototype 也许可行,做应用肯定不行。

毛: 立委讲的外部连接和全编译的问题,我理解就是节点间动态局部连接的问题。全编译就是一次性把整个数据流搭好,以后就不变了。所谓外部连接,就是按需要把若干计算节点局部地临时连在一起,灵活可变。当然是后者更好,不过应该是全局框架中的局部变化。我说的要研究怎样根据NLP的特点灵活构筑合适的数据流,就是这个意思。

全局框架的保证就是一个共同的丰富的可扩展的数据结构。只要保证这个数据结构的设计是合理的,一切就好办了。

毛: 昨天群主一声吆喝,立委说话的风格还真的就变了,马雅可夫斯基的调调不见了。

李: 从善如流嘛。

设计一个NLP专项平台,就包括数据结构的设计,NLP语言的设计,该语言的编译和执行,以及数据流流程的配置和优化。这几个环节都是相互联系的,没有丰富的经验根本玩不转。

毛: 在数据流、即函数式程序设计中,不会由多个节点对同一份数据结构进行修改,这就是输入是否immutable和有没有共享变量的问题。不过对于NLP来说这属于实现细节。

李: 为什么不会由多个节点对同一份数据结构进行修改?每个节点都是单向递进的,数据结构因此变得越来越丰富,分析越来越深入,是为 deep parsing。简单的设计允许数据结构信息的增量更新,不允许或者制约了对数据结构的破坏性操作。譬如,推翻一个内部结构,进行重构(因为 patching 的需要)。但是聪明的工程师在实现的时候,不认为破坏一个局部的内部结构有太严重的问题,不过就是实现费劲一点罢了,屁股总是可以擦干净的。所以我说,只有想不到的,没有做不到的,我才不管他内部怎么实现的,只要用起来顺手就好。只有在实现影响了速度的时候,我可以做让步,允许工程师对我的操作做一些限制。

毛: 如果允许,那就有同步等等的问题,不同节点之间就会互相牵制,而且这样的系统是最容易有bug的。而函数式程序设计,其基本的要求就是:每一个计算节点都是数学意义上的函数,都没有副作用,这就要求:1)没有共享变量,2)所有输入都是immutable。把数据流系统设想成一个供水系统,如果水管在一个点上分支,那么在其中的一个分支上投毒,是不会影响另一个分支的。

李: 照这么说,只允许增量式更新是管式系统开发的安全原则?一开始是增量式的,后来是我坚持要多给我一个做 patching 的手段,打破了这个限制。如果不做 patching,我就只剩下一个手段,那就是先扫除例外,后做一般规则。如果允许 patching,我就多了一条路子,先做大路货,然后遇到问题或例外,再做修补。表面上,这两个办法不过就是数据流中个性与共性操作的位置不同而已,但是实践中总是多一条路子,用起来顺手。其实,做破坏性操作,我开始是有担心的,总怕屁股擦不干净。但是,好像还是在可控范围内。

毛: 对,你所说的对工程师们的能力要求,问题就在于那种结构模式本来就是很不可靠的,得要非常高明的人才能对付,所以一般都尽量把同步、互斥这些事情移到操作系统和语言编译器中解决,因为那些都是真正的高手才玩得。但是即使如此,对于复杂的系统,如果不采用函数式即数据流的结构和方法,难度还是很大。

李: 原因可能是,破坏的结构不过是中间的局部结构,还没到要用它的时候,只要最后系统出来的结构是合理的,就似乎没有问题了。

毛: 你挺幸运,手下有几个高明的工程师,要不然恐怕还做不出那么些成果。

李: 因为我是他们的唯一顾客,顾客是上帝。我一直是这么说的。

毛: 端着人的饭碗,就得听人管。

李: 好在我不懂系统,否则可能不敢这么大手大脚。

毛: 但是,这是有限度的,问题再复杂一点,他们可能就会对付不了。这时候就得考虑模式的改变。不走邪路,也不走回头路,咱走正路。

李: 同意这里面有个度。另一方面,系统太漂亮了不顶用。上得厅堂,下得厨房,这个标准对做系统也一样。正路就是厅堂,厨房就是我这样的实用主义,以邓小平思想为指针。

原载 泥沙龙笔记: 铿锵三人行 (2015-10-8 )

 

【相关】

【相关】

【立委科普:漫谈语言形式】

【语义计算:李白对话录系列】