【李白之22:兼语式的处置及其结构表达】

白:
hownet坑的供给比较充分,但是也很难说一定不会超出上限。(董老师可以试试“这场火多亏消防队来得及时”)

有很多其他类型,比如,“穿着拖鞋就走出来了”。不知道该贴啥标签。还有“撸起袖子加油干”。这两个例子中,在时间上,伴随行为本身在前,伴随行为的遗留状态持续时段包含核心行为持续时段。比如,撸袖子的动作在前,然后遗留状态持续,然后加油干持续,然后加油干结束(或有),然后放下袖子(或有)。

我:
with sentiment:

at least for semantic landing to sentiment, the parse gives decent support。

宋:
O和ObjV是什么关系?

我:
宾语和宾语补足语

白:
比如:知道你来了。你是O,来了是objV

我:
not really

宋:
@wei 你的论元关系分析,相当炉火纯青了。

我:
宋老师果酱。

白:
这俩的区别?“消防队来得及时”为啥不可以是objClause?

我:
“多亏” 直接 link “消防队”,“知道” 不直接 link “你”,only linking to the event

白:
我是问,是否直接link,准则是什么?有什么必要区分这两者?

我:
语言学家的多数有共识。词典subcats 印象也是区分的,落地时候也发现有益。

白:
但很多研究汉语语法的人并不认为汉语有“宾语补足语”的。准则是什么呢?一词一议?
sentiment传递?
“我讨厌他总出差”
这里的“总出差”成了objV,“他”是O。“讨厌”的负面属性可以传递给O,是吗?如果这样,O必须是objV的逻辑S,否则,“我讨厌花摆在阳台上(,掉下来砸到人怎么办?)”
里面的“花”就要受牵连了。

我:
对。

我讨厌ipod
我讨厌iPod老死机
我讨厌花儿
我讨厌花儿老养不活

这事儿真细究的话,属于 subcats 同形打架:带 clause 的句型与带宾补的句型。

白:
“我喜欢厕所门朝北开”
问题是要给宾补一个存在的理由。理由不存在,打架就不存在了。

我:
几乎所有的汉语文法(英语文法亦大同小异)都区别下面三种句型:(1)动宾式;(2)兼语式;(3)宾语从句式。动+宾+宾补的 representation 反映的是兼语式句型。兼语是一种简省的说法,不是一个单纯的(atomic)的关系成分标签。兼语说的是既当V1的宾语又当V2的主语。表面上看,只要我们连上了 O,也连上了 S,所谓的宾补V2 也就间接连上了 V1,因此 把 V2 直接联系上 V1 作为宾补似乎没有必要。问题是,那样的 representation 不能表达 V2 在结构configuration上是低于 V1 的。事实上,这是一个典型的 right branching recursion,V2 是一个 VP(V-bar according to X-bar theory),V1 只是一个 lexical V (V no bar),V2 代表的 VP 整体都是包含在 V1 所辖的边界内。帮助 V1 构成一个更大的 VP。V2 的 VP 也可以是一个兼语式 (递归)。

白:
对。兼语句前后句的坑共享没有疑问。有疑问的是后句不必是前句的objV。在能清晰表达坑共享的前提下,V2有必要成为V1的直接成分吗?如果是,那就做小句宾。如果不是,就是松散的两个谓词做兼语式。为什么要弄出个第三条道路?

我:
小句宾 与 兼语式 有相同的地方,有不同的地方,也有灰色地带。

白:
我知道你来。我喜欢你来。
这是一样的结构。

我:
不能拿灰色说事儿。“得悉”,只能带小句,不能带兼语,这是黑白分明的 case。

得悉你来
* 得悉你

灰色地带最突出的案例在英语的 minimal pair:

I demand him to leave immediately.
I demand that he leave immediately.

白:
这是生成时才用得到的区别,分析时可忽略。

我:
英语句法上泾渭分明的两个句型,在逻辑语义深层其实是大同小异的,很灰色。

白:
汉语里没必要弄出第三条道路

我:
不一定只有生成才需要区分。语义落地也可能得益。如果没有宾补的直接联系,我问 O,就不能区分单纯的 O 和带宾补的 O,如果所有的兼语都变成 宾语小句。

白:
我派你去,就是“我派你”“你去”不需要让“去”从属于“派”。
或者说,“派”不需要给“去”预留一个坑。

我:
那就切断了动词 V1 与兼语的直接联系。必须通过 V2 才能间接联系到兼语。

白:
错,萝卜共享就是联系

我:
有时候我们不在乎是 宾语 还是 兼语,我们就没办法用同一个子树句型做抽取。譬如,“多亏”:

多亏老李。
多亏老李送我回来。

这两句要找感谢的对象,就无需区分 宾语和兼语。

白:
这没什么不好。多亏我处理成副词。“多亏了”也是一个副词

我:
如果第一句是 VO 第二句是 V+Clause,就必须用两个句型才能捕捉。

白:
多亏老李,是副词升格为动词。

我:
关键是,有时候我们需要区分宾语和兼语,有时候我们不要区分,为了同时照顾这两种需要,把兼语处理成子句是不妥的。

白:
可以不从句法上区分,而从词典来区分。

我:
退一万步,多一个宾补的直接联系,只有好处,没有坏处。

白:
我的处理是要么包进来要么切断。多了歧义打架需要处理,而这本来可以是伪歧义。

我:
是真歧义,那就该处理。是伪歧义,也可以硬走一线,系统内是可以保持一致性的。你这里所谓伪歧义的情形实际是灰色地带,或两可地带,系统内部可以规定走哪一线,内部协调即可。伪歧义的真正困扰是系统无法区分,随机走路径。如果有办法确定性地走一条路径,理论上的伪歧义在实践中就化解了。传统 parser 的伪歧义困扰是,伪歧义与真歧义混淆在一起,使得真歧义无法 stand out (being  identified)。这里的情形不是。

白:
中间没有N的,也有助动词和补语两种可能性。助动词带的谓宾真包进来,补语我处理成共享萝卜的对等合并,与所谓核心动词并无隶属关系。只不过形式上把根让渡给前面核心动词而已。
看看前面的例子,“我喜欢厕所朝北开门”,什么特征决定了“厕所朝北开门”是小句宾?

我:
不好说。
假如有一家厕所公司专门建厕所,就好像苹果公司造 iPhone 一样,“喜欢厕所朝北开门” 与 “喜欢iPhone照相清晰” 有什么根本区别?再如,“喜欢厕所清洁卫生”。

与其花力气区分灰色地带的兼语 from 子句,不如一条路走到黑,对灰色的那些词规定一条路径。到落地的时候,如果需要,再进一步 fine-tune 来决定。如果是 sentiment 落地,就可以这样来 fine-tune:“喜欢”的兼语必须是产品或其他实体专名,才可以让其得到 positive sentiment,这是从严的 fine tuning。从宽的 fine-tuning 可以要求兼语不能是带有贬义色彩的名词,assuming “厕所”是这种类别。但是这种 fine-tuning 的拿捏,只对做“兼语”的名词需要,如果“喜欢”所带的不是兼语,而是纯粹的名词宾语,那么不管宾语是王八蛋还是杀人犯,喜欢的 positive sentiment 还是落在宾语身上。

当年的德国,很多人喜欢甚至崇拜希特勒。” 对于希特勒,这是 positive sentiment。但是,cf:

我喜欢希特勒被处以绞刑,而不是自杀身亡,逃避人民的审判。

这句中的“喜欢”,对于 希特勒 就不是 positive sentiment,因为 parser 把希特勒parse成有宾补的O(即兼语),而不是纯粹的 O

白:
喜欢厕所朝北开门 与 喜欢iPhone照相清晰 有什么根本区别?—这话也是我想说的,但我认为它们都是小句宾句式,与兼语无关。

我:
我要说的是,对于这样的 cases,要不一律处理成兼语。要不一律处理成小句宾语,只要 consistent 即可。

白:
希特勒那句,也是小句宾,没兼语什么事儿
什么情况下sentiment可以穿透到下面一层的成分,不是由句法决定,而是由另外因素决定。

我:
“我喜欢少年希特勒努力发奋。” 这句呢,也是小句?

白:

我:
我要说的是,对于有灰色地带的那些词和句型,可以人为规定一条路径。
区分:“我喜欢少年希特勒努力发奋” “我喜欢老年希特勒被处绞刑”,一个是对“希特勒”是褒义,一个不是。

白:
褒义针对整体,是否传导到部分,it depends, 针对整体都是褒义。

我:
说的是部分。我喜欢【human】和 我喜欢【human】VP,对于这个 human,默认是褒义的。

白:
要区分的只是能传导到部分的褒义和不能传导到部分的褒义。我喜欢【human】vp 是天经地义的,喜不喜欢其中的【human】,不由句法决定。
在我这里不默认。而且默认sentiment设定,和搞出一个句法类别,也是两回事。

我:
默认有很多便利。偷懒的时候,默认在统计上对数据质量有好处。默认这东西,不用白不用,尤其是从工程和实用上考量。我目前的 “喜欢” 的 sentiment 规则,不论中文英文,都是走默认的道路:管它后面的 NP 带不带 VP,只要 NP 是 entity,就默认是 positive 落地了。这个 practice 在实践中有莫大的好处。 “喜欢希特勒 VP” 这样的可能的例外极其罕见,以致于根本不必在默认之外再费力气去区分。而 “喜欢厕所VP”不算例外,无害:depending on 厕所是否看成是 entity,或者被排除在语义落地的雷达之外;或者落地了,也是正确的。

白:
充其量是个heuristic

我喜欢张老师讲古代史,不喜欢张老师讲现代史

我:
这个不是反例,前半句是 褒,后半句是 贬,都落地到 张老师身上。

白:
加分减分都没问题。问题是逻辑推论有没有。喜欢张老师和不喜欢张老师如果都是逻辑推论就有问题。讲逻辑的人是分得很清楚的,喜欢,对事不对人。sentiment也是很清楚的,一个给张老师加分,一个给张老师减分。但是确实没有“喜欢张老师”和“不喜欢张老师”这两个逻辑推论。

我:
回到原来的 arguments,如果 (1)我喜欢张老师;与 (2)我喜欢张老师讲古代史,是两个不同的 parses,sentiment 落地的时候,就必须有两个规则来对付这两个不同的结构

白:
这个很难吗?我不觉得。爱屋及乌,爱小句及小句逻辑主。一句话的事情.

我:
天下无难事。
但是,对于如此基本而普遍的 sentiment 的表达(love类 和 hate 类),本来可以直接搞定,非要绕一个弯儿再搞定。本来一组规则,非要增加一倍的工作量去写规则,去维护,这是很不合算的。

即便不谈 sentiment 这个具体的落地应用,抽象来说策略,这个争论的本质就是:两个句型有相同的部分,有不同的部分,如何处理?其实没有普世标准,就是系统内的一致性和方便性,系统内协调。

白:
不是这样的,就是一个sentiment penetration属性赋值yes还是no的问题,直接写在相关动词的词典里。其他都不受影响。标配赋值no,需要设yes的明示。

我:
我喜欢他。
我喜欢他老实。
我喜欢他做好事。

换一个角度看,第一句和第二、三句在“我喜欢他”这个部分是一样的。后面的 AP 和 VP 也可以看成是喜欢的某个部分或方面(aspect)(或理由),这个角度是先对人后对事儿。与你的“喜欢”应该对事不对人,或由事及人,具有等效的逻辑性。即便我说“我喜欢X”,常识告诉我们,世界上没有完美的X。“喜欢X” 后面隐藏着后面的 likable aspects,X 与 aspects 是整体与部分的关系。

白:
我喜欢他,我喜欢他老实,我喜欢他的老实。VS
我喜欢这本书,我喜欢这本书出版,我喜欢这本书的出版。

也就我们这种领域,讨论一个语言学概念的立和废,也要扯上系统甚至应用。

我:
是从部分的角度来推及整体,还是从整体的角度推及部分,不过是角度不同。

白:
如果一个arg,是这样。角度不同。两个坑就未必了。

我:
就好比半瓶水,一个角度看到了半瓶水,另一个角度看到了半瓶空气,都是有效的逻辑。

白:
我喜欢这本书出版,和我喜欢这本书,不是延展后者的关系。我们还可以说,我喜欢这本书春节后再出版。喜欢的重点既不在书也不在出版,而是在出版的时间。可以既不喜欢书,也不喜欢出版,只是对那个出版时间情有独钟。一个坏人干了件好事,我们总可以喜欢那件好事吧。不需要扯上喜欢坏人。

一个出版商可能对某本书恶心到吐,但是那本书的出版可以帮他赚大钱。他喜欢“那本书出版”但不喜欢“那本书”也是情理之中的。heuristic可以进入系统,但进入语言学是否合适要画个问号。进入系统也有“诛心”之嫌。喜欢坏人干的某件好事,被当成支持坏人的证据,这样的系统大家都要当心了。

我:
喜欢坏人干的某件好事,被当成支持坏人的证据,在情感分析上没有错。在大数据分析的时候,点点滴滴皆证据。坏人干了好事儿,只要被提到,就给这个坏人加了一分(褒)。这一点儿也不影响对于这个坏人的舆情分析全貌。恰恰相反,这才是真实的舆情。如果坏人干了好事儿被提及 m 次,坏人干了坏事儿提到了 n 次,纯粹厌恶坏人的情绪表达提到了 o 次,纯粹喜欢坏人的情绪表达提到了 p 次(p 通常接近零),那么这个坏人的褒贬指数,就是 (m+p) 与 (n+o)的比例。请放心,p 基本是 0,而 m 也会远远小于 n,这个大众舆情不仅靠谱,而且真实,bias free。

宋:
我喜欢希特勒自杀。

我:
宋老师的这个例子前面已经论及。回顾一下就是:情感分析中,“喜欢”的默认规则的确可能把它算成是对“希特勒”的正面评价。因为这个默认规则是把宾语和兼语同等看待,不去问后面的宾补 VP。理论上,这个结构根本就不是【宾语+宾补】的结构,而是【宾语子句】的结构,但是由于区分二者对于“喜欢”这样的词,有一定的难度,所以我们可以在 parsing 阶段一律当成兼语结构处理和表达。这样一来,默认的sentiment规则就会犯错。

犯错怎么办?如果这种案例极其罕见,不值得做,那就算了,因为默认的sentiment规则在绝大多数的场合是保证了数据质量的。如果觉得还是值得做,那就在默认sentiment规则之上再做一条规则去 override 默认。这条规则不需要改变 parser,而是利用 parsing 在这类结构上的 consistency(错也错得可以预测) ,将错就错,矫枉过正,把这个错纠正过来。换句话说,这个策略等于是休眠唤醒,不过这个休眠唤醒不是在 parsing 的后期进行,而是在 sentiment 语义落地的时候进行,其效果等价于把【兼语式】重新分析为【宾语小句】,切断“喜欢”与“希特勒”的语义直接联系。

不知道我说清了没有。可能有人会问:既然在语义落地时候要做类似休眠唤醒的工作,为什么不索性在parsing里面(parsing的后期,语义模块)里面做休眠唤醒呢?理论上,提前做休眠唤醒,使得parsing更精准,可以benefit不仅仅这个 sentiment 的语义落地,还可以 benefit 其他的语义落地和应用的场合。但是,实践中在哪个阶段做合算,不是那么简单。因为休眠唤醒这些事儿大多是长尾现象,鸡零狗碎,做不胜做。在还不能确认到底有多少好处前,往往顾不过来在 parsing 中统一处理好。而且很多时候,做了也白做,你需要用到那个落地或那批落地也许根本就用不到。

Anyway,point is,落地的时候是可以包容 parsing 的错误和不足做包容性产品开发(adaptive dev),只要 parsing 是可预测的数据结构,是有内部直通车的,而不是 offshelf  拿来的 parser,缺乏足够的内部支持和协调。Having said that,如果确实事先可以 identify 一些带有普遍性的休眠唤醒现象,以及可以惠及很多可能的语义落地应用,而且也有足够的时间和资源去做这些细线条的深度语义工作,那么不要等到落地就在提前在 deep parser 的语义模块里面做好,当然是更理想的情况。

白:
对坏人的褒贬判断,对事不对人自然左右不了大局,没什么可担心的。问题是拿对事不对人的表述做以坏人为参照的站队分析,这就很可怕了。

我:
可怕啥?或者就是大海里的一颗老鼠屎,丝毫没有影响。或者就是,用休眠唤醒杜绝它(它=“拿对事不对人的表述做以坏人为参照的站队分析”)。休眠唤醒之所以可以进行,是因为 parser,已经准备好了结构基础:要啥有啥,哪怕这个 parse 是不完善的。要 O 有 O,要 宾补 有 ObjV,要逻辑 S 有对于 V2 的逻辑 S,四通八达的路径都在。driving word “喜欢”也在,可以词驱动。所有的结构的节点词的信息,包括 ontology 都在,包括 “希特勒” 是个独裁者、通常是坏人这样的信息也都在。有了直通车,啥事儿做不成?什么案子不能翻?什么深度休眠不能唤醒?什么具有统计性的“可怕”的后果不可以杜绝?

白:
分析成小句宾,诛心或误伤的责任就不在分析器的开发者。而在后道工序。否则人家会说,都是你分析的我喜欢希特勒,我哪儿喜欢了?一颗老鼠屎,也那个。对于小句宾来说,没分析出我喜欢希特勒,这大不一样。但是小句宾结构与“喜欢”结合,大概率被穿透,这句话可以说,之后也是要啥有啥。谁用了谁负责,但分析器的开发者也没说错话。

我:
话说到这份上了,其实也没有多少进一步需要辩护各自做法的 arguments 了。选择这个兼语的表达,肯定不是因为明明知道处理成宾语小句更好,而不为之。一定是自有苦衷和盘算。

白:
我若干年前也用过这样的表达。最典型就是“我是县长派来的”,把其中的“来”也作为“派”的一个arg。后来发现,其实去掉它没什么损失。因为“派”和“来”共享了一个萝卜,所有联系都在里面了。

我:
隐约的感觉是,去掉它在逻辑语义深层没有损失,可能的损失是句法表层的痕迹(语法学界叫做 configuration info,就是 X-bar 理论里面的 bar 的信息)。

白:
这是有很多其他途径可以记录的

我:
留住它就是留下了这种 bar 的痕迹,就好比我们利用小词解构了实词之间的句法语义关系以后,我们并不把小词当敲门砖丢弃,而是用 X 挂上一样。虽然 理论上,这些小词对于深层语义已经没有意义。另一个例子是主动被动,到了逻辑语义的核心,这个 voice 的不同色彩,没有地位,可是语言分析中,留下表层的 voice 信息,还是可能对语义落地和应用有好处的。

 

 

【相关】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

神经机译:川普宣告,米国人民今天站起来了

川普宣告,人民当家作主,米国人民今天站起来了!

川普今天总统登基,发表就职演说,谷歌神经翻译如下,请听(作为一个老机译,给这篇机器翻译打分的话,我会给忠实度85分,顺畅度90分,可懂度95分,个人觉得已经超越人工现场翻译的平均水平。当然,演说一般属于翻译中容易的部分。演说写稿人为了效果,喜欢用短句、白话,喜欢重复):

TRUMP:首席大法官罗伯茨,卡特总统,克林顿总统,布什总统,奥巴马总统,美国人和世界人民,谢谢。

我们,美国公民,现在加入了伟大的国家努力,重建我们的国家,恢复其对我们所有人民的承诺。
在一起,我们将决定美国和世界的路线许多,未来几年。我们将面临挑战,我们将面临艰难,但我们将完成这项工作。

每四年,我们将采取这些步骤,进行有秩序和和平的权力转移,我们感谢奥巴马总统和第一夫人米歇尔奥巴马在这一过渡期间的恩典援助。他们是壮观的。谢谢。

然而,今天的仪式具有非常特殊的意义,因为今天我们不仅仅是将权力从一个政府转移到另一个政府,或从一个政党转移到另一个政府,而是我们从华盛顿转移权力,并将其交还给你,人民。

长期以来,我们国家首都的一个小团体获得了政府的奖励,而人民承担了成本。华盛顿蓬勃发展,但人民没有分享其财富。政治家兴旺,但工作离开,工厂关闭。企业保护自己,但不是我们国家的公民。他们的胜利不是你的胜利。他们的胜利不是你的胜利。虽然他们在我们国家的首都庆祝,但没有什么可以庆祝在我们的土地上奋斗的家庭。

所有的变化从这里开始,现在,因为这一刻是你的时刻,它属于你。

它属于今天聚集在这里的每个人,每个人都在整个美国。这是你的一天。这是你的庆祝。而这个,美利坚合众国,是你的国家。

真正重要的不是哪个党控制我们的政府,而是我们的政府是否由人民控制。

2017年1月20日将被记住为人民成为这个国家的统治者的那一天。

我们国家被遗忘的男人和女人将不再被忘记。

每个人都在听你的。你来自成千上万的人成为历史运动的一部分,世界从未见过的那些喜欢。

在这个运动的中心是一个关键的信念,一个国家存在为其公民服务。美国人想要他们的孩子的伟大的学校,他们的家庭的安全的邻里,并为自己好的工作。这些是对义人和公义的公正和合理的要求。

但对于我们太多的公民,存在一个不同的现实:母亲和儿童陷入我们内部城市的贫困;生锈的工厂散落像墓碑横跨我们国家的景观;教育制度与现金齐齐,但使我们年轻美丽的学生失去了所有的知识;和犯罪,帮派和毒品偷走了太多的生命,抢夺了我们国家这么多未实现的潜力。

这美国大屠杀停在这里,现在停止。

我们是一个国家,他们的痛苦是我们的痛苦。他们的梦想是我们的梦想。他们的成功将是我们的成功。我们分享一颗心,一个家,一个光荣的命运。我今天所做的宣誓就是对所有美国人的忠诚宣誓。

几十年来,我们以牺牲美国工业为代价丰富了外国产业;补贴了其他国家的军队,同时允许我们的军队非常悲伤的消耗。我们捍卫了其他国家的边界 ,拒绝为自己辩护。

在海外花费了数万亿美元,美国的基础设施已经失修和腐烂。我们已经使其他国家富有,而我们国家的财富,实力和信心已经消失了地平线。

一个接一个地,工厂关闭了,离开了我们的岸边,甚至没有想到数百万和数百万留在美国工人。我们的中产阶级的财富已经从他们的家里被剥夺,然后再分配到世界各地。

但这是过去。现在,我们只看到未来。

我们今天聚集在这里,正在发布一项新法令,在每个城市,每个外国首都和每一个权力大厅上听到。从今天起,我们的土地将有一个新的愿景。从这一天开始,它将只有美国第一,美国第一。

每一项关于贸易,税收,移民,外交事务的决定都将使美国工人和美国家庭受益。我们必须保护我们的边界免受其他国家的蹂躏,使我们的产品,偷窃我们的公司和破坏我们的工作。

保护将导致巨大的繁荣和力量。我会为我的身体每一口气,为你而战,我永远不会让你失望。

美国将再次赢得胜利,赢得前所未有的胜利。

我们将带回我们的工作。

我们将带回我们的边界。

我们将会

 

Google Translated from:

TRUMP: Chief Justice Roberts, President Carter, President Clinton, President Bush, President Obama, fellow Americans and people of the world, thank you.

We, the citizens of America, are now joined in a great national effort to rebuild our country and restore its promise for all of our people.
Together, we will determine the course of America and the world for many, many years to come. We will face challenges, we will confront hardships, but we will get the job done.

Every four years, we gather on these steps to carry out the orderly and peaceful transfer of power, and we are grateful to President Obama and First Lady Michelle Obama for their gracious aid throughout this transition. They have been magnificent. Thank you.

Today’s ceremony, however, has very special meaning because today, we are not merely transferring power from one administration to another or from one party to another, but we are transferring power from Washington, D.C. and giving it back to you, the people.

For too long, a small group in our nation’s capital has reaped the rewards of government while the people have borne the cost. Washington flourished, but the people did not share in its wealth. Politicians prospered, but the jobs left and the factories closed. The establishment protected itself, but not the citizens of our country. Their victories have not been your victories. Their triumphs have not been your triumphs. And while they celebrated in our nation’s capital, there was little to celebrate for struggling families all across our land.

That all changes starting right here and right now because this moment is your moment, it belongs to you.

It belongs to everyone gathered here today and everyone watching all across America. This is your day. This is your celebration. And this, the United States of America, is your country.

What truly matters is not which party controls our government, but whether our government is controlled by the people.

January 20th, 2017 will be remembered as the day the people became the rulers of this nation again.

The forgotten men and women of our country will be forgotten no longer.

Everyone is listening to you now. You came by the tens of millions to become part of a historic movement, the likes of which the world has never seen before.

At the center of this movement is a crucial conviction, that a nation exists to serve its citizens. Americans want great schools for their children, safe neighborhoods for their families, and good jobs for themselves. These are just and reasonable demands of righteous people and a righteous public.

But for too many of our citizens, a different reality exists: mothers and children trapped in poverty in our inner cities; rusted out factories scattered like tombstones across the landscape of our nation; an education system flush with cash, but which leaves our young and beautiful students deprived of all knowledge; and the crime and the gangs and the drugs that have stolen too many lives and robbed our country of so much unrealized potential.

This American carnage stops right here and stops right now.

We are one nation and their pain is our pain. Their dreams are our dreams. And their success will be our success. We share one heart, one home, and one glorious destiny. The oath of office I take today is an oath of allegiance to all Americans.

For many decades, we’ve enriched foreign industry at the expense of American industry; subsidized the armies of other countries, while allowing for the very sad depletion of our military. We’ve defended other nations’ borders while refusing to defend our own.

And spent trillions and trillions of dollars overseas while America’s infrastructure has fallen into disrepair and decay. We’ve made other countries rich, while the wealth, strength and confidence of our country has dissipated over the horizon.

One by one, the factories shuttered and left our shores, with not even a thought about the millions and millions of American workers that were left behind. The wealth of our middle class has been ripped from their homes and then redistributed all across the world.

But that is the past. And now, we are looking only to the future.

We assembled here today are issuing a new decree to be heard in every city, in every foreign capital, and in every hall of power. From this day forward, a new vision will govern our land. From this day forward, it’s going to be only America first, America first.

Every decision on trade, on taxes, on immigration, on foreign affairs will be made to benefit American workers and American families. We must protect our borders from the ravages of other countries making our products, stealing our companies and destroying our jobs.

Protection will lead to great prosperity and strength. I will fight for you with every breath in my body, and I will never ever let you down.

America will start winning again, winning like never before.

We will bring back our jobs.

We will bring back our borders.

We will ……

 

【相关】

Newest GNMT: time to witness the miracle of Google Translate

【谷歌NMT,见证奇迹的时刻】 

关于机器翻译

《朝华午拾》总目录

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

立委NLP频道

 

【李白之21:萝卜多坑不够咋办】

【立委按】核心成分 args 不过三 句型不过百 是我们语言学家对于世界主要类型的语言观察到的普遍规律 或曰普遍文法。语言的奇妙 莫过于此。可是思维没有这么简单 一个事件可以有很多成分。这个矛盾 语言怎么解决的呢?模型语言的 parser 又有怎样的对策呢?不骗你 做个语言学家真好 可以洞悉很多上帝和人的奥秘。

白:
你那个打铁的图,不大对啊

我:
白老师眼毒是出了名的。是的,“打-铁” saturated 在强搭配中了,就不应该再去外挂另一个宾语,这跟娶两个老婆同罪。系统目前没那个严苛,执法不力。但也说明了,后一个老婆也许应该降格,降成姨太太。如果宾语是大房,那么 complement 就是二房,打的是正室的铁(morphology 的 compounding),打的结果就是二房的钉子(syntax)。用逻辑语义的话说,一个是受事宾语,一个是结果补足语:是为打铁成钉。

众所周知,句法的宾语其实可以有很多不同的逻辑语义。默认标配的逻辑语义是受事。但对象、结果等都可以的。“打铁” vs “打钉子”,前者是标配的【受事】,后者是【结果】,但都可以以宾语的身份或分布现身。

白:
如果给盖房子的盖规定只有两个坑的名额:我,房子,木头,怎么填?
“他考清华研究生数学八十五分”
不止四个

我:
这是说的萝卜多,坑不够,是吧?

白:
“这些木头可以盖很多房子”

我:
这个不用试我就知道:目前就是主谓宾。将来细磨逻辑语义的话,“木头”是【材料工具】类的逻辑语义坑,房子则是【结果】。

白:
“这些木头我可以盖很多房子”

我:
这个也可以预测到,耍个流氓,不是 Topic 便是 Next,将来细磨 ontology,也可以让流氓从良。

白:
topic是温吞水,上不着天下不着地,既不是标配的成分,又没说填谁的坑

我:
不过一步之遥啊。但是 Topic 或 Next 所直接连接的 token,通常没错。换句话说,坑是填了,不过妾身不明,不知道跳进了啥坑而已。妾身不明是因为 knowledge poor,一旦有了大数据或有了 HowNet 类的本体知识,knowledge rich 了,也就可以验明身份了。

白:
穆斯林比旧中国好。说好了四个就不可以多。再耍流氓也只能在四个范围里耍。

我:
其实不是。这个问题我想过很久:世界上的语言五花八门,主要类型的语言都有一个突出的共性:就是句型非常有限,不过百(主要句型不过二三十个) 。主要原因是,句法上 arg structure 的坑是有严格的数量限制的,不过三。超过的部分肯定属于另类,那就打入另册 mods 。但实际上,语义层面的 args 和 adjuncts 的界限,比句法上的 complements 和 mods 的界限 要模糊得多。这就是为什么 hownet 里面的坑,比 句法词典里面的 subcat 的坑,有时候更多。本来二者是有映射呼应(correspondance)关系的,但从纯粹语义角度考虑,有些 mods 需要被拉进坑来,语义的本体定义才完整。这是我看 HowNet 董老师的处置得出的体会。

考清华那句也是醉了。语义上的 args 包括:

考-清华 【school】
考-研究生 【graduate program】
考-数学【knowledge】
考八十五分【RESULT】

加上主语 ”他“ 就是 5 args,即便把补语“85分” 当成后置 mod(当成谓语亦无不可),也有四个 args,这不符合 arg structure 原则上不过三的普世句法(UG)。我认为,正因为普世句法有这个args不过三的原则,才使得人类的语言的结构变得 tractable,人类语言因而可理解,方便了交流。三个 args 的排列组合可达 6 种,加上其句型变体可控制在百种之内(常用句型也就二三十个),几乎达到了人脑短期记忆的极限,哪怕再加一个,就几乎不可收拾了。人脑很可怜的。不得不佩服自然语言架构的恰到好处:说语言背后没有上帝是很难让人信服的,难怪乔老爷坚持普遍文法是人天生的、普世的。

可是逻辑语义上,同一个谓词可以有很多 args 的,这就造成了思维内容与语言表达的矛盾。自然语言又是怎么解决这个矛盾的呢?思维上的多坑,到了文句的句法不允许有这么多坑,怎么办?

白:
这是理论问题不是技术问题。技术问题是,准备了俩坑,来了三个萝卜,怎么处理?

我:
有了理论,技术还不好办?纲举目张啊。
技术就是:
syntactic parsing: 耍流氓
semantic parsing:根据 HowNet,教育流氓从良。
也就是,没知识就耍流氓,有了知识立地成佛。

白:
技术就是,其中一个萝卜历史上做mod居多,果断降级

我:
历史不历史,那是语言处理的时候,选择谁 out 的一个数据依据。关键是降级:萝卜多了坑不够,不降级还能怎么着?这才叫:英雄所见略同。

你那一路也行,但是还是重负前行。这个从大数据来的历史 不管怎么表示和使用,都是一个很大的 overhead

白:
在中间件里,matcher是极其轻装的。

我:
中间件庞大。call 它一下,等价于一次信息检索??这个也许 overhead 不大,可是怎么对付优选语义呢?不是相谐还是不相谐,而是多大程度相谐?或者比较另一可能,更相谐还是更不相谐?多大程度相谐是个无底洞,不说它。更相谐与否,就是一个是否判断。这时候提交的是两对。两次在线检索 才能在线比较计算大小,是不是?在线是因为无法预知哪两对需要比较,无法预先计算好。

回到白老师上面的问题:盖房子的“盖” 句法上似乎大家都认为就是两个坑:一个主语 一个宾语,who 盖了 what,但是从语义的本体定义和结构看,至少有三个坑: 【who】 盖了 【what】 by【what materials】。我常把这种多出来的语义坑看成是处于 args 与 mods 边缘地带的东西。还有一个典型的例子 translate:绝大多数动词最多有三个 args:主、宾、补足语,但是 translate 四个比较合适:[who] translates [what] [from what source] [into what target]。语言实践中,PP(from)常被当成状语,而不是arg,有人把 PP(into)也当成状语。这就是 args 降格为 mods 的结构处置现象。

面对萝卜多坑不够的语言表达困境,一般而言,主要是两个路子,(1)一个是迫使语言把多个 args 分散到不同的句子去表达,这样一来每个句子的结构还是在限定的坑数之内,subcat upto-3-arg patterns are very tractable;(2)给 args 降格:降格为理论上随机的 mods。由于(1),于是产生了句法的主语、宾语,可以对应10几个不同的逻辑语义的坑。

刚刚 parse 了白老师的句子,看看目前这个根据语言学句法原则制定的parser怎么对付多于3的萝卜, 结果是:

哈,果然。遵循普世文法来模型自然语言的 parser 采用的是降格,策略(2):“清华”的 arg 和 “研究生” 的 arg 都被降格成mods,只剩下 “数学” 作为 head N,堂堂正正填了宾语的坑。作为句法 parsing,这种处理是符合语言架构原则的,非常合理。但是作为深度分析和语言理解,句法被降格的成分,应该重新“升格”到 args 的逻辑语义 slots 去,语言深度解析才比较完美。逻辑升格了,其他句子的 “考清华” 或 “考研究生” 的说法,就会与这一句的说法语义一致,可以 unify。这个升格的任务,也应是语义模块的任务之一。语义模块不仅要填写句法上省略的 hidden args,而且要把部分mods升格为 逻辑的 args。这些 mods 是人类语言表达的时候被 UG 下意识降格的成分。

假如自然语言不是上帝为人类交流而设 假如我们为机器设计语言 我们完全可以扩展坑和句型的数量。Hownet 几个坑, 句型就几个坑 一一对应。不用现在这样,先句法句型入手 然后再 role labeling 填逻辑语义的坑。

白:
其实我并不关心上限是几,只关心超出上限了怎么办。hownet坑的供给比较充分,但是也很难说一定不会超出上限。(董老师可以试试“这场火多亏消防队来得及时”)

 

【相关】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白之20:得字结构的处置及其结构表达】

白:
他写字好
他人品好

多么平行呀,为什么两个“好”待遇这么悬殊

我:
好 是一个百搭词。因为百搭 所以赶上谁谁:他好;人品好;写字好。

白:
其实就是有一个pos为wildcard的坑,我这里标记是X

我:
人品和写字 都有一个 “人” 坑:一个是【所有】,一个是【施事】。

白:


我:
没看清 “得”怎么带的“好”。

白:
箭头方向是坑,箭尾方向是萝卜。得的输入是谓词,输出是体词。好的输入既可以是谓词,也可以是体词。语义上是把动作转化为为对象,然后以对象的身份填坑。

我:
“好” 没疑问。说 “得” 输出 N, N 被“好”吸收,这个说法有些不好理解,也不大看得出好处。传统说法是 “得字结构” 做谓语的【补语】。不一致的地方在于得字结构怎么构成、谁先谁后。得字结构的构成是“得”有坑,而不是“得”先与谓语结合,然后去填坑。你这里parsing 的先后正好与传统做法次序相反。

白:
结合以后做主语,让“好”做谓语。不是“好”或者“得好”做补语。

我:
这个句法分析与众不同。“得字结构”构成很容易:

【得 ➕ 评价类形容词】 是一种; 干得漂亮。
【得➕vp】:跑得快(这时候 vp 的逻辑主语沿用前一个谓语的主语)。
【得 ➕ s】 是另一种: 气得他哭了。

白:
没问题,“他”反填回“气”不占名额,可以处理成一个。无非就是约定什么情况下一个萝卜填俩坑不占名额的问题。跑得快,和跑得上气不接下气,结构上没有本质不同。病得很严重,和病得起不来床,也是一个结构。并不因是否使用了评价类形容词而不同。传统所谓程度补语,都可以用这个套路。

但是可能补语好像不一样。搬得动,睡得着,考得上一类。跑得快,跑快了,跑快些,跑赢了 填坑结果一样吗?

我:
可能补语是词典扩展 lexical rule,算是词典一级的延伸扩展,不难处理。

白:


因循守旧最简单了,我之前就是这么玩的。垂直方向是填坑关系,水平方向是修饰关系。但是不知道谁填“严重”的坑。root也和语感不符。这样的结构也是可以有的:
“他的病很严重”和“他病得很严重”不应该在“严重”的填坑方面有大的不同才对。要么这样:

“得”的填入体“很严重”留下了一个待填的坑X。作为root的“病”,向自己修饰语的体内回填S,不占萝卜指标。这就成环了。

同理,“他病得起不来床”可以处理成:这次轮到体外的“他”向“起不来床”回填N。在体外不占名额,所以“病”照填不误;体内“起”“来”为合并关系,共享除了“床”之外的一个坑,也只用一个名额。所以从“他”出发的三个萝卜,竟有两个是不占名额的。

这么处理,如果不耽误回填,也挺好。反正再怎么折腾都只折腾“得”一个词条,跟别人无关。补语还是补语,但需要回填。的[N+/X]、地[S+/X]、得[+S/S]都有了。它们都是单进单出,去掉确实不影响拓扑,但是放在那里可以揭示语义类型转换的逻辑。

我:

关键是 “病”与“很严重”具有直接联系。另外,【human】作为 N 的 Mod 与 【human】作为 V 的 S,具有相似性。这个甚至在 X-bar theory 中就有所揭示(specifier and subj are both external args)。进入深层逻辑,可以认为这是同一个关系的两种变式。

白:
可以再推广:
这本书的出版,这套房子的装修,这款软件的开发。

不是S,不是human,也有同样的暗通款曲。

我:

白:
看不到“这本书”是如何填“出版”的坑的。

我:
还没做呢,自然看不到。都是 Mod 作为句法桥梁,语义中间件目前还没全到位。加上这个逻辑 O 不难,只要与逻辑 S 区别就好:“出版”的宾语坑,需要一个【publication】的萝卜,放松一点也起码是一个非【human】或非【organization】的萝卜。

白:
这一部分完全是探讨,与formalism无关,只是在formalism框架内探讨小词“得”负载结构的不同表示方法的优劣。

 

 

【相关】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白之19:三探白老师的秘密武器】

【立委按】专业探讨的时候,第一要义是互相搞懂各自的术语。老司机的毛病是经年积淀,自成体系,自创术语,不拘一格。白老师有一套自己的术语,立委也有一套术语。好在过去一年来,在白老师的语义计算群唠嗑唠久了,互相开始明白了各自术语的所指。但对于后学,很可能就麻烦了。为深入虎穴,三探奥秘,我把相关术语编辑在篇末,供各位查阅,不准确处可请白老师指正。

白:
我们先解决“谁和谁发生关系”而不必具体明确“是何种关系”,只笼统地分成:“a是b的直接成分”、“a是b的修饰成分”以及“a是b的合并成分”三种情况。

洪:
@wei 八九十年代 Steven Small 有套Word Expert distribute parsing理论,当时ucsd的Garrison Cottrell和 umass的 wendy lehnert也有类似研究。

白:
word expert理论当年也跟踪过,因为跟汉语实际相差太远,后来不了了之了。

我:
Small 的工作以前常引用,因为我导师刘老师给自己的 MT 机制也取名叫专家词典。术语撞车了,不得不引。句法词典化作为大的方向,在parsing的人以及整个的NLP共同体,长期以来是有相当大共识的,虽然各有做法不同(GPSG以后盛行的词典主义的LFG和HPSG就是这种共识的一个反映)。白老师的分步走,想来是一条结合大数据和词典化的大道。第一步只做 dependency,而且允许以后反悔。只依赖词典,先塔个句法的架子,靠中间件的语义化操作来减除伪歧义的困扰。Parsing 的语义化不外两个层面,一路是 nodes 的语义,即wsd;另一路是 arcs 的语义,就是 matcher 的结构消歧工作,为了求解靠谱的 parses(白老师所谓二元关系)。其后的细线条逻辑语义解析,包括部分二元关系的休眠唤醒以及揭示隐藏的逻辑语义关系,算是深度语义计算。这两路靠的都是大数据与初始结构的“恋爱”结果来克服知识瓶颈,而不是靠带标的treebank。其中最有意思的工作应该是这个无监督大数据与初结构的恋爱学习过程,貌似水性杨花 漫天撒网 愿者上钩,最后根据统计性落实各自秉性与最佳搭配。等着听白老师这个无监督的核爆炸吧,大数据引爆这种针对 deep parsing 的语义知识习得,据说可借力深度学习的 RNN 机制。

白:
不务虚了,讨论点昨天出的具体的例子吧。总会有突如其来的不带介词的NP,让没有坑的VP措手不及。躲得过初一躲不过十五。大数据会告诉我们什么呢?比如,“那堆砖让我垒了鸡窝了”,垒,没有预备坑给“那堆砖”,怎么办?

我:
不务虚 那请教白老师几个问题:第一层词典化二元parsing 是 nondeterministic 吗
还是绝对 deterministic?那么粗糙的 parsing – 如果是后者的话,对后去的学习和反悔 感觉会不够给力。

白:
大数据变了,结果会不同。这算nondeterministic?

我:
不算。那是两套系统,依据的是不同的数据和训练,在不同的时间框架。
不是说不需要大数据吗?连二元关系的性质都模糊,就是先勾搭上而已。

白:
不需要带标大数据。性质可以模糊,但约束必须明确。比如萝卜什么时候占名额什么时候不占名额。Matcher不是语义中间件,他要用到语义中间件。wsd也要用到。一个确定节点标签,一个确定留下的二元关系。

我:
约束不就是词典里面的挖坑,实际中的填坑 ➕ 挖坑么?用的是 cat,因为一个词可以有多个 cats(or subcats),所以调用了 WSD 模块来决定。根据这个决定来填坑构成二元结构。好像就是这么个过程。

白:
“这碗猪”还记得吧。

我:
不搭没关系吧 – 开始的时候。

白:
【碗,猪】这个二元关系有还是没有,问中间件。没有,就不建立arc。虽然cat相配,也不建。

我:
那是大数据训练以后的事儿了,训练之前呢?语义中间件就是一个大数据训练出来的类似 hownet 的资源。在训练之前 大数据怎么结构化的?

白:
训练是独立的,跟matcher无关,跟ontology有关,ontology是结构化的

我:
无监督训练,总要有个啥吧。训练是独立的 offline 进行,利用大数据得出的语义相谐的统计性历史总结,作为 parsing 的资源。Matcher 是 online runner,来对新的 input 做 parsing 的。这跟我们专家去写 patterns 道理一样。训练的结果包含 ontology,
训练的支持难道不是结构化的大数据?这个结构怎么来的?谁给的第一推动?

白:
这是一个冷启动窗口长短的问题。matcher可以只看3个,大数据看13个。大数据的13个中包含被matcher拉近到3个的概率不低。

我:
拉近不是结构化的作为吗?

白:
大数据中非结构化的词串,十三个词里面“碗”和“猪”的共现,以及背后subcat的共现,同“碗”和“汤”的共现相比,这数据有统计意义不?我说的是“包含”。

我:
有意思。非结构化词串就是 ngram,13 词区间大体就是一个子句的长度,再长也没啥统计价值的关联了。

白:
碗,背后的subcat是“容器”“餐具”;汤,背后的subcat是“液体”“食物”。统计subcat共现,可以脱离具体的词例,获得大样本。在大窗口里进行,跑都跑不掉。所以,有无结构的说法是含混的。从parse角度讲,冷启动时无结构;从ontology角度讲,冷启动时结构很丰富。

我:
嗯,为了统计性,脱离具体词,先用 hownet 或 wordnet 支持一下。

白:
冷和热的唯一区别,就是有了冷的基础,热应该更好做。因为大窗口的关联都挖出来了,小窗口更不在话下。

只有一种情况,就是热的情况下,小窗口里面的关联,是把大窗口都覆盖不到的远距离关联拉近了的结果,这种会失手。

我:
好,在 onyology 支持下,在13词窗口内,系统学到了“碗”与“汤”的搭配,so what?

白:
在遇到这碗猪的时候,会选择不match,把“这碗”留着,让“猪”去找自己的坑

我:
这口气得憋多久啊

白:
就是所谓的“过程性因素”,用中间件的查询结果来控制,而不是用手编的语言学知识或规则来控制。

我:
停下的意思类似于入栈。稍有闪失就沉底出不来了。

白:
对啊,RNN+栈。入栈,等着填坑

我:
不知道栈有多深

白:
出不来的情况,参见刚才的例子 “那堆砖让我垒了鸡窝了”。在“垒”只有两个坑的情况,“那堆砖”就是进去了出不来的,如果不想其他办法的话。

荀:
如果这种二元决策是确定性的过程,如果出错,填入的坑的萝卜就得靠唤醒了。

白:
不妨仔细推演下这个例子。

我:
赶巧这个【工具】的坑,处于可有可无的边缘。“垒” 其实也可以带三个坑的。

白:
如果大数据中,存在着大量“砖”带着明确的介词和“垒”共处一个窗口的情况呢?或者投射到subcat上,“建筑材料”带着介词和“建筑行为”共现?

荀:
如何辨认“工具”和“施事”就很重要了

我:
【工具主语】 与 【人主语】 几乎有类似的统计性。

荀:
需要用启发式信息,引导RNN训练,这个引导过程是至关重要的。

白:
这里有“我”,已经明确会填坑。我说的是,没有坑可填不可怕,翻翻大数据,历史上别人用它带什么介词,就把那个介词补上好了。然后就堂而皇之地做状语了。这些东东,有了ontology和大数据的结合,就不要人来操心了。

荀:
把subcat嵌入到RNN中,用启发式信息结合LM训练方式引导RNN编织权重。

我:
如果加上显性形式“用”,工具作为萝卜有很多数据。

白:
我昨天出了那么多例子,伟哥居然没觉出用心良苦:

“这些纸能写很多字”
“这些铁可以打很多钉子”

荀:
[用]这些铁可以打很多钉子
[在]这些纸能写很多字

白:
从形式上,为严谨起见,我们不会去给这个句子凭空添加任何一个莫须有的介词,但总可以用一个不占位置的虚介词吧……
【phi】这些铁可以打很多钉子。

荀:
利用大数据可以做“小词“还原,这对缺少标记的汉语很重要了。

白 :

至少有了这个phi,栈里的不会出不来了。

荀:
借助大数据,RNN做“还原”这类事情很在行。把小词“虚化”,也是一种subcat处理。抓住了小词就抓住了汉语结构命门,白老师在这上花足了心思。对句子做“结构归一化”处理。

白:
推而广之,就是利用大资源+大数据把看起来不那么规范的句子有理有据地整理成更规范的,这样parser负担就轻了,无需独自面对复杂情况。“这场火多亏消防队来得及时”,这里的“这场火”同样面临“没给留坑”的尴尬。但是,把句子中的“火”“消防队”两个实词送入中间件,可以发现与他们共现频次相当高的“救”。有“救”垫底,就可以引入及物的虚动词phi,这样萝卜和坑就相安无事了。

荀:
白老师提到的parser需要确定的三种关系,权重信息编织在网中了,在应用时,词典发出请求,RNN做认定。Parsing就是做<W1,W2,Relation>认定的过程, W1或者W2 可以是小词。 功夫在于Relation定义,在承载结构的小词处理以及<W1,W2,Relation>训练过程,白老师对这些都有一套不同以往的做法。

我:
如果没有坑可跳,就自己挖个坑去跳,这也是 mods 的常规了。在形态语言中,mods 有显性小词或词尾帮助确定该怎么挖坑自裁。在裸奔的汉语,形式没了,只好靠搭配。

白:
救火这个例子,已经不是subcat嵌入了,根本就是词嵌入。

我:
wait:“这场火多亏消防队来得及时”,这里的“这场火”同样面临“没给留坑”的尴尬。

咱们走一走这场火。哪里出来的“救火”,“消防队”本体里面的吗?Hownet 里面肯定有。

常规的做法是,遇到句首 np 没法填坑,就给个 topic 标签。有点像英语的 as for,with regards to,topic 很像pp做的状语。往后找一个谓语挂靠:“这场火” 挂靠到 “来”。

白:
人家只有一个坑,还是给human预留的。

我:
不需要啊。状语是随机的。状语可以看成是不填坑,而是挖坑,挖个坑让谓语填进去
或者让自己跳进去 再去找主儿。

白:
比如“为了”?

我:
想不出来为什么要绕那么大弯,让“救火”出来救驾。Topic 式状语,无需那么清晰的标签,就是把np 降级为 pp。至于什么 p 什么格,另说着。

世界语有个万能介词 je,柴门霍夫这样解说:介词就是格,都是确定性语义的。
几十个介词 就是几十个格。但是如果有一个状语,你不知道哪个介词合适
或者你懒得费劲琢磨什么格合适,你就用 je。与前面提的phi,异曲同工啊。

白:
那样活儿太糙。补介词合适还是补动词合适,大数据说了算。

我:
用了 je 就确定了其地位。不是没有道理。人如果要清晰,他可以有清晰的形式,譬如介词或词尾。如果他不用,那就模糊。虽然模糊,句法地位和关系还是大体确定了。这类模糊要确定语义关系,可以在后面的语义模块(我以前也叫它语义中间件)决定,而不是白老师的中间件在parsing 过程中调用。我选择把二者分开,因为这类情形句法没有到走投无路,就算耍个流氓 亦无不可。先躲过初一,到15再说。其实 15 到了,要求很可能与初一不一样了。人走茶凉不了了之也是有的。

白:
数据支持的话,可以冒进一点。中间件就是在过程中调用啊,否则有啥用。

我:
deep parsing 的过程可以分两个阶段,两个模块:句法和语义。我叫语义中间件是指它在句法模块之后,产品语义落地之前,夹在中间。怎么没用?几乎所有的 hidden 逻辑语义,都可以留到这里做,而不必在句法模块做。

不仅句法模块内部可以多层去做,句法到逻辑语义,也可以分开,成为两个层面的 parsing,Syntactic parsing to semantic parsing。非谓语动词的主宾等都可以后延,
句法只要确定其状语还是定语或补足语身份即可。对于谓语的主宾等,也可以先在句法做一个糙活,到语义中间件再细化或修正。糙活是不到不得已不调用 ontology,如 np 主语,管他 【human】 还是 【instrument】:

张三砍了李四
斧头砍了李四

开始都是同一个parse。

张三吃了大餐
乌云吃了月亮

也是如此。

白:
现在还都没说定性,只说定位,谁跟谁有关系。结论是,就这么糙的事儿,也得动用ontology。

我:
句法不必要太细。语义可以细,但那个活儿可以悠着点,做多少算多少。

回到白老师前面给的句子,试试我目前语义模块还没丰富完善的 parsing:

“那堆砖让我给搭鸡窝了”
“这辆车能坐六个人”
“这个方向不被看好”
“这些铁可以打很多钉子”
“这些纸能写很多字”


see,句法架子是出来了,但未尽如意的语义还有一步之遥。这一步补不补,不紧急,因为语义落地的时候,如果是 integrated 一体化的直通车,而不是提供给第三方做 offshelf support 的,就可以在落地模块内部协调。譬如,“坐车” 带了“六个人” 为 O,ideally,语义模块应该把 “六个人” 从句法的 O 转为 逻辑语义的 S。但是,如果是内部协调,转不转也无所谓。O 不过是一个符号而已。词驱动落地的时候,“坐车”的 arg 是 O 或 S,完全不必计较。当然,如果要补足这一步,虽然琐细,但真要做也不难。在没弄清楚多少利益之前,懒得做这细活。同理:“那堆砖”最好是加一条线,连上“搭”,标签是 【Instrument】。“这个方向不被看好”已经把表层的小词 “被” 带入考量,直接给了 O,一切到位,没有可做了。“打铁” 和 “钉子”,最好是加上标签【Result】。最后一句,最好给 S 进一步加上逻辑语义标签【Instrument】or 【Material】,但其实落地也未必需要这个,就是加上了显得很酷,很智能,让人看着爽,倒未必是对落地产品真地就有多大利益。

 

 

【术语 Index】

Matcher:the syntactic parsing program,有时候我们叫 runner,在白老师的系统里面,就是接受输入文句,对其二元依存关系解析的模块。

WSD:与 community 的依据义项划分的定义有别,白老师的 WSD 模块指的是:在词负载结构的体系里,一个具体的词负载了好几种可能的结构,结合上下文选择其中一种的模块,称之为wsd模块。事实上,这里的WSD 是利用大数据得来的词与词或其上位概念之间的语义相谐,来决定采纳某种区分一个词不同用法的扩展的 POS tags or 白老师所谓 subcats,来帮助结构消歧。粗线条义项的区分成为二元关系结构消歧的副产品。当(细线条)义项区别不影响结构的时候,义项区分就不是这个WSD模块的任务。

二元关系:两个词之间的句法依存关系(bianry dependency)。白老师的系统分为三类:修饰关系(如 定语、状语),算元(args)关系(如主语、宾语)和合并关系。

POS(cat):part-of-speech (or category,相对于 subcat 子类而言)词类,不必是 PennTree 定义的集合。作为模块,指的是根据系统给定的词类标准,自动做词性标注。一个词可能跨类,POS 模块可以根据上下文决定最合适的类别(词性)。在白老师的系统中,是所谓 WSD 模块做这个 POS 的事儿,来供给 Matcher 充当合法填坑的 candidates。在白老师的系统,我们可以把 POS 的词性标注理解为粗线条的 WSD。不影响结构的词义区分不是白老师所说的 WSD 模块的任务,虽然 community 的 WSD 不是这样定义的。

subcat:subcat 的原义指的是谓词的子类,这个子类对应了这个词的特定句型(譬如,双宾句型,宾+宾补句型,等)。白老师说的 subcat 扩展到不一定具有对应句型的子类。譬如,碗,背后的subcat是“容器”“餐具”;汤,背后的subcat是“液体”“食物”。这实际上是本体语义(ontology)的层级结构,如 ISA taxonomy chain:碗 ISA 餐具,餐具 ISA 工具,工具 ISA 商品;商品 ISA 人造物品;人造物品 ISA 物品;物品 ISA 实体(逻辑名词,这是这个 chain 的顶端节点 TOP 了)。

耍流氓”:指的是对于二元依存关系不能定性,但是可以认定具有某种关系。汉语句法中,句首的名词短语在没有确定其性质是主语、宾语或定语、状语之前,往往先给它一个 Topic 标签,挂靠到后面的谓语身上,白老师认为这就是耍流氓。同理,当两个实词之间的关系基本可以确认,但是不能定性的时候,我们往往根据其出现的先后次序,让 parser 给一个 Next 的标签把二者连上,作为一个增强句法分析器鲁棒性(robustness)和查全率(recall)的打补丁的手段。这也算是先耍一下流氓,因为理论上后去还是需要语义模块去确认是何种关系才算深度分析到位。如果是两个中文动词一先一后系统给了 Next,其默认关系是【接续】,就是汉语文法书上所谓的“连动”结构。

Topic:汉语分析中,句首名词短语如果不直接做主语、宾语等,很多分析就给 一个Topic(主题)的标签。汉语文法的一个突出语言句型现象就是所谓双主语句(常常分析成一个Topic or 大主语,加一个小主语:譬如,他身体特别好。这家公司业绩直线上升。)由于这种关系逻辑语义的性质不明,聊胜于无,所以也称这种二元关系的建立为“耍流氓”。

Next:两个词一先一后,但不能确认他们发生了什么句法语义关系,系统常常给一个特殊的关系标签,叫 Next,其默认关系是【接续】。 这是一个增强句法分析器鲁棒性(robustness)和查全率(recall)的打补丁的手段。由于这种关系逻辑语义的性质不明,聊胜于无,所以也称建立这种二元关系为“耍流氓”。

mod:修饰成分或关系。包括定语、状语、补语。

arg:算元成分或关系。包括主语、宾语、(宾语)补足语或间接宾语。

Hownet:董振东前辈发明的面向MT和NLP服务的跨语言本体知识(ontology)网络《知网》的英文名称。

小词:教科书上叫做功能词。包括介词、连词、代词、副词、感叹词、联系动词等。

伪歧义:也叫伪路径,指的是 parsers 产生出来的貌似成功但没有价值的结构分析路径。伪歧义,是相对于真(结构)歧义而言。真的结构歧义的典型案例是某些 PP-attachment 的现象,同一个 PP 可以理解为两种可能:做宾语的后置定语;或做谓语动词的后置状语,这两个 parses 都是有效的语义解析。但是,很多传统的 parsers,会产生很多貌似成功解析输入文句的分析路径(numerous parses),给人以文句结构歧义严重的假象,但其实这些不同路径大多没有区别意义,是为伪歧义。这是一个困扰了传统 parsing 很多年的难题。白老师和立委的系统都利用不同的策略(包括休眠唤醒机制)很好地解决了这个问题。

中间件:白老师的所谓语义中间件,指的是在 ontology(本体知识库,如 HowNet,WordNet)的支持下,通过大数据训练得出来的语言词汇之间的语义相谐(各种关系之间的语义搭配)的统计知识库。这个中间件被 WSD 和 Matcher 模块调用作为对于输入文句的 parsing 的资源。立委以前的NLP博文种的所谓语义中间件虽然有与白老师的中间件相同的一面,但却是不同的所指。在立委的 deep parsing 的系统种,语义中间件不是一个知识库资源,而是指的句法模块后面的语义模块。这个模块利用句法框架,负责深度分析的逻辑语义细化、隐含的逻辑语义关系的解析、休眠唤醒新的语义结构关系(包括改正此前的错误路径),如果需要的话,也可以在这个模块做一些词义消歧工作(WSD的本义)。总之,这个语义模块是独立于领域,夹在句法分析之前和领域的语义落地之前,为了更好地服务于语义落地。为了不再混淆术语,立委考虑今后不再称此模块为中间件,而是把术语让出,就叫语义模块。

萝卜:指的是那些参与谓词结构(所谓 argument structure)所要求的实体角色的词,譬如充当主语、宾语、补足语的成分。谓词结构通常被认为是一个语句的核心语义。谓词以动词为主(但也有形容词和名词做谓词的),在词典主义(lexicalist)的系统中(白老师和立委的系统均属于词典主义),一个谓词的潜在的结构都标注在这个词的词典信息 subcat 里面。换句话说,谓词的 subcat 规定了它期望什么样的成分(所谓挖坑),需要什么样的词(萝卜)来填。譬如,“走路”挖了一个坑,需要一个优选语义位【human】的名词萝卜来充当其施事主语。再如,“喜欢” 挖了两个坑:谁喜欢什么。充当主语的是【human】名词,充当宾语的是几乎任何词。

:就是依存关系(dependency)的被预期的节点。对于谓词,其坑就是它预期的算元(args)成分,主语、宾语、补足语。对于修饰关系(mods),譬如定语、状语和(汉语)的补语,一般认为是附加的边缘语义,不占坑。也可以看成是修饰语预期了谓词,或看成是谓词不占坑地吃掉了修饰语。

填坑:一个词(包括代表短语的头词)根据谓词对坑的句法(甚至语义)要求,充当了其谓词结构的成分,建立了与谓词的二元关系(binary dependency),这个建构过程叫做填坑。谓词结构的成分填满了,核心语义就完整了,这个状态叫 saturated。

萝卜指标:指的就是坑。所谓不占萝卜指标,是说的一个词可以合法填两个坑的情形,其中一个坑不影响其填另一个坑的能力。听上去似乎与坑与填坑的概念出发点相违背,但在依存关系图的构建过程中,是必须考虑一个萝卜填多个坑(一个儿子多个老子)的情形才可以把依存关系进行到底(有些一个萝卜多个坑的情形在短语结构表达中,可以借助非终结节点避免)。

优选语义:最早由著名人工智能和机器翻译前辈 Wilks 提出的概念,指的是在本体网络(ontology)中,概念之间的语义相谐表现在自然语言的表达的时候,呈现的是一个区间,而不是一个固定的语义约束。譬如,【eat】这个概念对于【受事】的优选语义是【food】,但是这只是其优选,并不是一定要是【food】。语言表达的时候,优选语义可以根据句法的约束条件不断放松,以至于达到完全不相谐的程度(nonsense)。乔姆斯基认为,句法可以独立于这些语义相谐的约束,举的就是句法约束决定结构关系,偏离优选语义到极端的例子:Colorless green ideas sleep furiously。对于形态语言,句法独立性的原则有较多的证据。对于汉语,这个原则需要打折扣,合理利用优选语义的约束就成为汉语解析的关键依据。立委 parser 改造使用了 HowNet 来弥补句法形式的不足。白老师的系统是依靠大数据训练出来的中间件来实现优选语义的对 parsing 的约束。

逻辑语义:指的是深层结构关系。最早起源于乔姆斯基的深层结构和费尔默的深层格(关系)。中国NLP和MT的旗手级前辈董振东老师发扬光大,深化了这方面的研究,指出解析逻辑语义是深度自然语言理解的关键:所谓理解一个句子,主要就是理解了这个句子里面概念之间的逻辑语义,谁是施事,谁是受事,时间、地点、条件,等等。在 community,对应于所谓 role labeling 的任务。一般而言,主谓宾定状补之类的句法关系比较粗糙,这些是表层关系,一个语言深度解析器(deep parser)不仅要解析(decode)句法关系,而且要进一步揭示后面的逻辑语义关系,包括细化句法关系(譬如句法主语可以进一步标注为施事、受事、工具等逻辑语义,句法宾语可以标注为受事、对象、结果等逻辑语义,诸如此类),和揭示隐含的逻辑语义关系(所谓 hidden links,就是句法上没有直接联系但逻辑语义上具有直接联系的结构关系,譬如宾语是宾语补足语的隐藏的逻辑主语)。

休眠唤醒:在李白的系列研讨中,这个术语指的是一种把可能性较小的路径暂时搁置的parsing策略,被搁置的路径可以在适当的条件下被唤醒。这种策略据信反映了人的语言解析的过程,可以从段子、相声抖包袱等现象看到这个过程的表现。立委有系列博文专谈这个机制。譬如:【立委科普:结构歧义的休眠唤醒演义

 

【相关】

【李白之18:白老师的秘密武器再探】

【李白之15:白老师的秘密武器探幽】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白之18:白老师的秘密武器再探】

白:
伟哥对主谓vs.述补,️“得”字的作用有何评述?

我:
题目大了点儿
小半部汉语语法了 都。

白:
动作敏捷,行动迅速,打仗内行,排兵布阵有章法,运行平稳……
执行命令坚决,干家务不情愿

root感觉上都是在后面,是谓词在填谓词的坑。为什么被填坑的反而成了陪衬,这说不通。第一个“动作”是名词,我拿来跟后面对比的。说大不大,就是上面这些表达,head是谁,谁填谁的坑。如果跟主流是反着的,有什么后果。

我:
拿 practice 说话吧。

他努力工作
他工作努力

一般来说 “工作” 只有一个坑,“努力” 有两个坑: 一个人,一个是人的动作。这就是句法 subcat 与 逻辑 subcat 不尽相同之处。句法上,老子的 subcat 里面有儿子 args 的坑, 没有 mods 的坑。譬如 动词有 主宾等 但没有状语的坑。名词有补足语的坑 但没有修饰语的坑。但是逻辑上不同,逻辑上 任何 mods 定语啊 状语啊 对于与它直接联系的老子,都有一个语义相谐的要求。这种要求可以写进做修饰语的那个词的词典去。但对于语义搭配稍强的情况 也不仿写进做老子的词条去。关系是mutual 的 选择谁去 encode 这种细线条信息 其实没有一定之规。

问白老师一个问题,这样的借助小词接力,一步一步、一对 tokens 一对 tokens 的两两向前推进 parsing,会不会造成过多的假 parses (所谓伪歧义的困扰)?
DG中,语言单位虽然都可以 binary 关系表示,但是 parsing 的时候却不宜两两推进,因为那样的话,条件往往失于过宽。还是我理解有误?

白:
不会啊。(1)小词对距离很敏感,太远了肯定要靠实词自身的互联。(2)小词对结合方向很敏感。实词语序乱了不要紧,坑可以把它们找回来,但是小词语序乱了一定不知所云。什么语法不借助中间件都必然失之于宽。所以,WSD也好,二元关系也好,树也好,最后都要靠中间件摆平。

我:
对着例子谈吧:譬如 是AP的
这个汉语表达 affirmative 的 pattern,就是这么简单的一个 pattern,
用 “是。。。的” 把形成的 AP 包裹一层。因为这种小词没有啥意义,最多不过是给这个谓语加一个 affirmative 的 feature 的信息,其他的关系连接,还是要直接通向 AP:

她是漂亮的 == 她漂亮

白:
AP有两个表达方式,一个是紧靠名词的,一个是松散的(作谓语,作补语,通过“的”作定语)。是……的,是后一种。我们先解决句法成分“一个都不能少”的问题,再解决语义关系的抽取问题。

我:
可是看白老师的图,感觉在小词里面绕。

白:
没有无缘无故的绕。

我:
包裹一层的话,就不需要绕,就当成 AP 的前缀后缀了。说的是 pattern 包裹,结构根本就不用包裹,不过加一点信息而已,甚至丢掉那信息也无大碍。

白:
问题是,不光“是……的”,还有“有……的”还有其他“V……的”。我们可以统一处理。到了语义关系抽取阶段,衣服会脱下来的。二元关系进行到底,应该看不见pattern。pattern体现为判断二元关系成立与否的前后条件。

我:
的字负载结构 统一处理的好处何在?

白:
一视同仁

我:
这个好处貌似不实惠,也不必需。

白:
所有词、所有二元关系一视同仁,用同样的formalism处理,不排除神经。

我:
哦,有无缝挂靠RNN的便利?
一视同仁本身最多是显得 elegant,这种二元推进一视同仁的处理与用长短不同、随机决定的 patterns 处理,除了所用的机制不同,还有什么特别的说法?

白:
没有规则,没有pattern,bug都在词典里,要de,就改词典。语义构造最大限度地平行于句法提供的二元关系。

我:
patterns 甭管怎么写,说到底也是统一的机制,某种有限状态及其延伸罢了。

白:
pattern写了也不矛盾。不改变核心机制,只改变前后条件。

我:
只改词典,不改规则的例子见过,那就是 HPSG,但那是建立在词典结构无限复杂化的基础上。现如今用的是简单得多的词典结构。Categorial grammar 那种吃了吐、吐了吃在 cat 基础上的填坑挖坑,要实现只改词典就能 parsing 的开发,感觉哪里缺了什么。

白:
但是把pattern固化,就会引进来不robust的问题。很多情况下,系统自己找对象比用pattern拉郎配更聪明。

我:
同意,这是一个问题,不好拿捏。但换一个角度,用 patterns 直观易读,与人对语言现象的捕捉非常近似,而且 patterns 其实也还是立足于自己找对象的 subcats 的词典化信息基础。问题不在 patterns 上,而是在 patterns 的条件拿捏上。

白:
对,我就是在扬弃范畴语法复杂结构的方面跨出了一大步,坑和萝卜,都是“单体化”的。直到目前还没有发现什么语法现象必须引入复杂结构的。
都一样,吃了吐的路线,关键也在拿捏。

我:
又要简单统一,又要避免伪歧义,感觉是一个矛盾(当然 结构复杂本身也 adds to 伪歧义 ,那是另一个话题)。

白:
伪歧义在外面,中间件来搞。但是中间件面对二元关系搞非常清晰,中间件面向pattern搞就累了。二元关系是最简单的结构。就是一个词典词一个义项,其pos定义只有一层。只有一个“/”号。

我:
这就是我还没有理解的地方,感觉机制太简陋。机制简单统一,词典信息也简单,pos 只有一层,不过是 encode 了一些坑的信息,用的也是简单的 x/y,规定了输入(挖谁的坑)和输出(填什么坑)。如此简单统一,对付自然语言的窍门在哪里呢?

中间件通过二元关系搞定原则上没有问题。所谓语义中间件,在我这里,不过是把已经成串的珍珠链,经过某个子链,把一些语义相谐的珍珠挑出来,让间接关系变成直接的二元语义关系。假如初始的二元图是: 1–》2 –》3 –》4 –》5,语义中间件可以做到:1 –》3; 2 –》5,揭示诸如此类的hidden的逻辑语义关系。白老师的中间件有所不同,用的也是语义相谐(通过某种无监督训练而来),但目的是确保parsing不受伪歧义的羁绊。

白:
复杂的地方是什么时候有免费额度。

荀:
白老师是把这些简单的范畴放到RNN中,这个Rnn中间件性能决定了分析器性能

白:
句法“是什么”在这种机制下确实不复杂但管用。“怎么达到”是另一个问题。

我:
免费额度怎么讲?

白:
比如定语从句里面的坑,就是不占萝卜名额的。填了里面还可以再填外面。还有“NP1的NP2”,如果NP2有坑且与NP1语义相谐或统计意义上搭配,则NP1填入NP2也不占萝卜指标。比如“张三的弟弟”,“这本书的封面”。

我:
好,作为 syntax 表达,这些都不是问题。说说 ”怎么达到“ 吧。

白:
这一部分是parser最核心的地方了。

荀:
就是白老师的“毛毛”,一种利用大数据无监督的subcat嵌入算法。

我:
不是说只要 debug 词典 就可以达到吗?词典也没太多 debug 的余地,假设挖坑填坑都基本在词一级标注清楚的话。然后就灌输大数据?无监督的大数据在这些词典信息的基础上,学习出来的结果是什么形式呢?应该是词典 subcat 的语义相谐的条件。这些条件一旦学出来,就成为 parsing 的伪歧义的克星。

荀:
借助subcat嵌入的分析器要是突破了,短语和pattern也就嵌入在网中了

我:
换句话说,词典的每个词的粗线条的挖坑填坑先由人工敲定,而这些坑的语义条件 让大数据来填,从而粗线条变成细线条。从而伪歧义急剧减少。我是这么个理解。

白:
WSD和Matcher学出来的东西不一样的。

荀:
原来的做法是借助词的语言模型或词的Rnn消解伪歧义,白老师是把Subcat嵌入了网中。但一直担心前期中间件的可信赖程度,中间件错了,休眠唤醒,那么唤醒时是否用了patten?

我:
利用大数据无监督的subcat嵌入算法,这个方向没有问题,词(直接量)不够,一定要加subcat。唤醒可以看作二阶中间件。唤醒的都是局部的、个别的现象(子图 pattern),至少词驱动这一级唤醒,机制上与中间件利用语义相谐没区别,是靠谱的事儿。唤醒在我的实现中,一定是用 pattern (子树)为基。

WSD和Matcher 各自怎么学?

困了,回头好好学习,明儿天天向上。

荀:
这种唤醒的词典知识,主要是利用词搭配信息

我:
那当然。

荀:
李老师休息吧,明天搬着板凳听你们聊,到了关键地方了

白:
为了保证WSD和Matcher之间在大概率情形下都是串行的,被WSD压抑的候选都休眠。此时流程是线状的。为了对付有迹象可察的小概率情形,休眠的候选可以唤醒。此时流程是闭环。

我:
前半段懂了,后半段,闭环是什么?

白:
唤醒

我:
线状是说的 deterministic 吗?

荀:
如果被唤醒,wsd也会跟着改变

我:
唤醒在我看来就是局部重组。nondeterministic 是从一开始就留多条路径,唤醒是在一开始不留多条的情况下,activate 另一条子路径,摧毁现下的子路径。

荀:
如果是局部的,就是打补丁的机制。白老师的闭环是指唤醒和wsd联动?

我:
唤醒都是打补丁。
既然一开始不留多条路径,那么怎么唤醒另一条路径了?

白:
局部局到什么程度是不以主观意志为转移的,可以理解为一种lazy的、保相谐性的subcat传播。

我:
我这里的诀窍就在,开始不在实现的 parse 中留,但词典里面的潜在路径的种子还留着,因此词驱动可以唤醒它。

白:
唤醒的不是路径,而是词典的pos候选

我:
唤醒了不同的萝卜

荀:
唤醒了另外一个候选,也就是到引导不同的subcat路径,可以这样理解吗?

我:
不就等价于唤醒了不同的路径吗?因为萝卜换了,原来的萝卜所填的路径就废了,新的萝卜要填的坑也变了,新的路径也就唤醒(新生)了。

荀:
填好的萝卜重新拔出来

我:
对呀。
这是摧毁无效路径 为建立更好的路径做准备。

荀:
如果wsd需要频繁被唤醒,唤醒的中间件压力山大。

我:
wsd 常常被夸大 实际中没那么大。太细的也不用做。

白:
所以三省吾身

@荀 是这样子:休眠唤醒的动态工作空间专属wsd,它的范围是受控的,但之间逻辑较为复杂。中间件依据ontology和大数据统计结果,体现了subcat嵌入,是相对静态的,一组二元关系一个查询,彼此逻辑独立,既为wsd服务也为matcher服务,因此根本不在乎频繁程度。忙了就并发,不会惹到谁。wsd局限到一个句子,最多加上定宽滑动窗口的语境变量,工作负载是可控的。wsd和matcher一切照章行事,没有任何语言知识和常识,只有“过程性的、机械化的”程序。语言知识和常识都在词典和subcat嵌入里。

荀:
明白了,就是根据需要,随时被调用的“语言模型”,这个语言模型嵌入了ontology和subccat信息的RNN网络。

白:
今天说多了,打住。

荀:
开启了一个大话题

白:
过去统计意义上的“语言模型”是一勺烩的,所以难以精准地把有结构潜质的二元关系筛选出来。一旦仅针对这样的二元关系上统计手段,前途就一片光明了。萝卜是第一性的,路径是第二性的。

王:
@白硕 wsd和matcher一切照章行事,没有任何语言知识和常识,只有“过程性的、机械化的”程序。语言知识和常识都在词典和subcat嵌入里。

白:
怎么

王:
白老师,要走”小程序,大词典”路线?

白:
对,小程序、大词典、特大ontology、数据被ontology揉碎消化。前面再加个“零规则”。

王:
不知是否每个词做为Agent?然后多个Agent之间相互自适应?

白:
没那么自主

王:
请教白老师,何为“零规则”?是预留的待扩展的规则?还是压根就不用规则?

白:
是根本不要规则。

我们先解决“谁和谁发生关系”而不必具体明确“是何种关系”,只笼统地分成:“a是b的直接成分”、“a是b的修饰成分”以及“a是b的合并成分”三种情况。

现在还都没说定性,只说定位,谁跟谁有关系。结论是,就这么糙的事儿,也得动用ontology。

我:
句法不必要太细。语义可以细,但那个活儿可以悠着点,做多少算多少。

白:
关系不对,上标签何用。标签可以是句法的,也可以是逻辑语义的

我:
句法的本身就模糊一些。很多语言的主语与谓语是有一致关系的。这就给“主语”这个标签一个独立的句法层面的支持。虽然细究起来,这个所谓的主语,可能是 human agent,也可能是 instrument。

白:
粗粒度不等于错位。位置对上了不知什么标签这叫粗粒度。
位置不对叫啥

我:
位置不对就是父子认错了。这是最大的错,皮之不存,句法或逻辑语义标签也就谈不上。

看看这个: 这些纸我能写很多字

“这些纸”无从着落了。那就用 Topic 或 Next 耍个流氓:它们的句法意义与句首状语(全句状语)差不多,至于是什么状语(时间、地点、让步、工具、结果、原因、。。。),这是逻辑语义的标签。想做的话,让后面的语义模块去做:这些纸 Next 能写字。

其实拿目前的 parser parse 一下大数据,对于 Next 前后的词做一个统计,基本肯定可以挖掘出不少强搭配或弱搭配来。Next 虽然标签模糊,它把有关系的 tokens 的距离拉近了,虽然句法不知道是何种关系。

白:
暂不确定逻辑语义我赞同,但没有坑就不填坑,没有加号就不修饰也是铁律。于是需要一个节点做这个对接。大数据中这个节点有实例支持,引进就更理直气壮而已。
在这个阶段根本没有人去做逻辑语义标记。

我:
逻辑语义是 semantic parsing 的目标;syntactic parsing 可以不管。乔老爷说句法独立于语义肯定是有瑕疵的,但句法确实有相当地独立于语义的部分。这个独立性在形态语言中表现很充分,到了裸奔的汉语表现就差一些。但也不是一点独立性也没有。换句话说,总可以把一部分现象看成是纯粹句法的现象,不牵扯语义,也可以一路走下去。

白:
现在我是在定义syntax,自己定义的东东,自己要认账。
说好了不耍流氓的地方,就是坚决不耍,可以耍的地方也一定当仁不让。

我:
系统内部怎么协调,没法说对错优劣。我是要说,耍流氓也有其耍的道理。不耍,又不想牵扯太多语言外知识,那就只有断链。耍流氓比断链强。

白:
引入虚节点,有大数据背书,挺好。同样达到不断链的效果。

我:
还有一个更重要的特点是:句法模块与语义模块分开,有开发和维护的便利。比一锅炒感觉有优势。

白:
相谐问中间件可以,补虚节点问中间件当然也可以,毕竟大多数情况不需要补。
wsd和matcher现在连一点语言学知识都没有,是最不一锅炒的架构了。
内事不决问词典,外事不决问数据

我:
开发一个模块有两个模式,一个是轻装粗线条,knowledge-poor。另一种是细线条,knowledge intensive,前者的好处不仅在轻装,不仅在覆盖面好,而且在鲁棒性好。后者则是精准度好,而且可以聚焦去做,一步一步 peace-meal 地去做。很多人做了前者,但是带来了一个巨大的伪歧义泛滥的问题。我们做到了前者,而且基本对伪歧义免疫,这算是一个成就。至于后者,那是一张无边无际的网,不急,慢慢做。

白:
大部分不鲁棒都是伪语序造成的。让萝卜和坑自由恋爱,是鲁棒性的最好体现。

我:
白老师主张先不利用语序作为句法的制约,而是立足于词典的对萝卜的预期,以及查与周边 candidates 在中间件表达出来的语义相谐度。这样做自然是增加了鲁棒性(我以前提过,汉语实词之间的语序灵活到了超出想象),但同时也隐隐觉得,不问语序也可能是自废武功的不必要的损失。其实是可以把语序作为一个option加入坑的预期的。

 

【相关】

【李白之15:白老师的秘密武器探幽】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

 

 

 

 

【杞人忧天:可怕的信息极乐世界】

今天想信息过载的问题,有点感触。

我们生在大数据信息过载的时代。以前一直觉得作为NLPer,自己的天职就是帮助解决这个过载的问题。就好像马云的宏愿是天下没有难做的生意,我们玩大数据的愿景应该就是,天下没有不能 access 的信息。于是谷歌出现了,用粗糙的关键词和数不厌大的气概,解决了信息长尾问题。于是我们开始批判谷歌,信息长尾解决的代价是数据质量太差。于是人智(AI)派来了,借力深度作业(deep processing, whether deep learning or deep parsing),企图既要解决大数据的长尾,也要大幅提升数据质量,让全世界对于信息感兴趣的心灵,都有一个源源不断的信息流。这是从我们从业者的角度。
今天换了个角度想这个问题,从信息受众的角度。作为消费者,作为白领,我们从人类的信息过载的战役不断优化的过程中得到了什么?我们得到的是,越来越高质量的、投我所好的信息流。以前是在过载的海洋、信息垃圾里淹死,如今是在精致的虚假的满足里噎死。感受不同了,但反正都是死。哪怕做鬼亦风流,死鬼却从不放过我们。于是我们花费在朋友圈、新闻apps、娱乐apps的时间越来越多。无数天才(很多是我的同行高人)绞尽脑汁研究我们的喜好,研究如何黏住我们,研究什么诡计让我们拼死吃河豚。
一个人敌不过一个世界,这是铁律。七情六欲血肉之躯的消费者个体敌不过无数盯着消费者喜好的商家及其帮凶(包括在下)。于是我们沉沦了,成为了信息的奴隶。我们同时也不甘心,在努力寻求自救,不要在糖罐里甜腻死,虽然这甜越来越幽香、巧妙,充满诱惑。我们就这么一路挣扎着。但随着信息技术的提升,中招的越来越多,能自救的越来越少。
世界有n十亿人,m千万个组织,在每时每刻产生信息。假如我们把自我信息满足的门槛,用各种 filters 无限拔高,拔高到千万分之一,我们面对的仍然是 n百人和m个组织的产出。当技术提升到我们可以 access 这个高纯度但仍然能淹死人的信息的时候,我们一定相见恨晚,乐不思蜀,有朝闻道夕死可矣的感觉。这是一个可怕的极乐世界。
我们作为消费者在打一个注定失败的自虐之仗,试图抵制抵制不了的诱惑。说一点个人的应对体会,结束这个杞人早忧天的议论。这个体会也从朋友中得到印证过。
体会就是,有时候我们可以学林彪副统帅,不读书不看报,突然就掐了信息源和apps,专心做自己的事儿。一个月甚至半年过去,回头看,自己其实没有损失什么,而且完成了拖得很久的工作(其中包括如何去用语言技术提高信息质量诱惑别人的工作,不好意思,这颇滑稽,但无奈它是在下借以安身立命的天职)。
同行刘老师有同感,他是做事儿的人。我问他要不要加入群,咱们大伙儿聊聊NLP啥的。刘老师说,我这人经不起诱惑,曾经加入了n多群,一看话题有趣,就忍不住要看、要回应、要投入。结果是做不完手头的事儿。后来一横心,退了所有的群,就差把手机扔了。刘老师的做法也是一种自救。
其实我们最后还是要回到信息流中,再坚强的灵魂也不可能苦行僧一样长时期拒绝高品质信息以及消遣式信息享受。一味拒绝也自有其后果。意志力强的是在这两种状态中切换。更多的人意志力不够,就一步步淹没。退休了被淹没,也可算是福气。年轻人被淹没,这就是罪过,而恰恰是后者才是最 vulnerable 的群体。“忽视信息视而不见”乃是白领劳动者的生存技巧,但对于涉世未深的年轻人很难很难。据观察,在信息轰炸中淹没(info-addiction),其问题的严重性已经不亚于吸毒和酗酒,感觉与游戏的泛滥有一拼,虽然我没有统计数据。
因此,我想,人智可以缓行,我们没必要那么急把全世界的人生和时间都吞没,可以积点德或少点孽。同时,希望有越来越多的人研究如何帮助人抵制信息诱惑,抵抗沉沦。理想的世界是,我们既有召之即来的高质量信息,又有挥之即去的抵制工具在(类似戒毒program)。虽然后者的商业利益少,但却是拯救世界和人类的善举。
最可怕的是在下一代,可以看到他们的挣扎和无助。games、social media 和 internet 吞噬了无数青春。而世界基本是束手无策,任其沉沦。家长呢,只有干着急。我们自己都不能抵制诱惑,怎么能指望年青一代呢。充满 curiosity 和躁动的心灵,注定受到信息过载的奴役最深。其社会成本和代价似乎还没有得到应有的深入研究。
今天就扯到这儿,希望不是信息垃圾。
【相关】

Trap of Information Overdose

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

《朝华午拾》总目录

 

Trap of Information Overdose

Today, my topic relates to the issue of information overload.

We are born in the era of big data and information overload. As an NLPer (Natural Language Processor), for years I have been stuck in the belief that my sole mission is to help solve this problem of information overload. Just like Alibaba’s Jack Ma’s vision that there should be no barriers for any business in this e-commerce world, my colleagues and I seem to share the vision in the community that there should be no barriers for instant access to any information amid the big data. So Google appeared, with crude keywords as basis and with its insatiable appetite to cover as big data as possible, to  have solved the problem of information long tail. Today whatever your query, and however rare your information need is, you google it and you get some relevant info back. We don’t want to stop there, so we begin to criticize Google because its solution to the information on the long tail has the defect of poor data quality. Hence AI (Artificial Intelligence) is proposed and being practiced to enhance the deep processing of data (whether via deep learning or deep parsing), in an attempt to both handle big data for its long tail, as well as to drastically raise the data quality through natural language understanding (NLU). The aim is to satisfy any soul with information needs, whether explicitly requesting it or implicitly carried in the mind, by a steady flow of quality information. This is the perspective from us practitioners’ point of view, currently mixed with lots of excitement and optimism.

Let us change our perspective to ask ourselves, as a consumer, what have we benefited from this exciting AI battle on information overload? Indeed, what we now get is more and more data — to the point, high-quality, with constant and instant feeds, which we have never before been able to reach. Previously we were drowned in the overload of the information ocean, mostly garbage occasionally with a few pearls, and nowadays we end up being choked to death by over-satisfaction of quality information thanks to the incredible progress of information high-tech via AI. So the feelings are dramatically different, but the ending remains the same, both are an inescapable path to death, drowned or choked. So each day we spend more and more time in the social media among our circles of friends, on all types of news apps, or entertainment apps, with less and less time for real-life work, family and serious thinking. Numerous geniuses out there (many are my talented peers) racked their brains to study our preferences, study how to make us stick to their apps, and what tricks they can apply to drive us crazy and addicted to their products.

It is the iron law that a person is no match for a calculated and dedicated world. Made of flesh and blood, each individual consumer is no match for an invisible legion of tech gurus (including myself) from businesses and their accomplices in the information industry, looking closely into our behavior and desires. So we are bound to sink to the bottom, and eventually become a slave of information. Some of us begin to see through this trap of information overdose, struggling hard to fight the addiction, and seeking self-salvation against the trend. Nevertheless, with the rapid progress of artificial intelligence and natural language technology, we see the trend clear, unstoppable and horrifying: more and more are trapped in the info, and those who can save themselves with a strong will are a definite minority.

The world has n billion people, and m million organizations, each producing information non-stop every moment, which is now recorded one way or the other (e.g. in social media). Even if we raise our bar higher and higher for our information needs for work and for pleasure, to the extent of an incredible ratio to the effect of something like ten-millionth, using a variety of technology filters of information, we are still faced with info feeds from n-hundred human entities and m-organizations. There is simply no way in our lifetime to exhaust it all and catch up with its feeds. We end up feeling over-satisfied with information most of which we feel we simply cannot and should not miss. We are living in a terrible bliss of an over-satisfying world. As consumers we are doomed in this battle to fight the addiction against our own nature, trying to resist the temptation that by nature cannot be resisted.

Having pointed out the problem, I have no effective remedy to this problem to offer. What I myself do is that at times, I simply shut down the channels to stay in info-diet or hungry mode, focusing on family and the accumulated to-do list of work. This seems to work and I often got my work done, without feeling I have missed that much for the information gap during the “diet” period, but it is not a sustainable technique (with exception perhaps of very few super guys I know whom I admire but really cannot tell whether that lifestyle is really for better or not as shutting the info channels for too long has its own side effects, or consequences, to my mind). In the end, most of us fall back to being willing slaves of information. The smarter minds among us have learned to shift between these two modes: shutting channels down for some time and going back to the “normal” modern way of information life.

For people who want and need to kill time, for example, the retired in the lonely senior homes, info age is God-sent: their quality of killing time has never been made better. But how about the younger generation who is most vulnerable to info overdose, as much as the addiction to the crazily popular games today. The “shutting the channels” technique is a survival skill of middle-aged generation who needs to dedicate sufficient time to go about their daily work and life, making a living, supporting the family and keeping it running. But this technique is almost impossible for the young generation to practice, given that they are born in this info age, and social media and stuff are part of their basic lifestyle. Nevertheless, there is no short of struggles and helplessness as we observe when they are being drowned in the sea of games, social media and Internet, in front of the academic pressure and career training competition. The external world is not in the least prepared and is basically helpless to them. So are us parents. Many times we cannot resist the temptation from being enslaved in the information trap for ourselves, how can we expect our next generation to learn the balancing skill easily, considering they are at the age of exploration with tremendous curiosity and confusion.

Sometimes I tell myself: why should we work so hard on info technology if we know it has both positive effects as well as huge negative impact which we have no clues how to fix. After all, we do not need to rush the entire world of life and time to be engulfed by info no matter how high quality we can make it to be. Meanwhile, I really hope to see more and more study to get invested in addressing how to help people resist the temptation of the information trap. The ideal world in my understanding should be that we stay equipped with both intelligent tools to help access quality information as nutrients to enrich our lives, as well as tools to help resist the temptation from info over-satisfaction.

Translated and recompiled from the original post in my Chinese blog: 【杞人忧天:可怕的信息极乐世界

 

[Related]

杞人忧天:可怕的信息极乐世界

Dr Li’s NLP Blog in English

 

【李白之17:“我的人回来了, 可心还在路上”】

我:
圣诞醒来 心里突然冒出一句貌似开涮海龟海鸥的打油:

我的人回来了
可心还在路上

问一下: 谁回来了?“我”还是“我的人”?
谁的心在路上?“我”的心还是“我的人”的心?
或者 either?

我的身子虽然回家 可【我的】心还在路上
我的【心上】人虽然回家 可【他的】心还在路上

白:
人,是身的借喻,我的人=我的身。心=我的心
伟哥这个浪漫语境,更需要一个带优先机制的逻辑门了。

“我的人吃饱了,可细胞还饿着。”
“我的人吃饱了,但马还饿着。”

前者“人”指身体,后者“人”指将士。

开学了。孩子们人回到了学校,心还在假期。
某某,人虽然死了,思想还在影响着我们。

所以,“人”成为一个有坑名词,至少在述及灵肉分离的语境里,还是需要的。
是一个body-part,不知道这个义项知网收了没?

我:
除去“的”就不浪漫了 诗意了无:

我人回心没回

其实 身心分离 或 人心分裂 乃是诗歌、心理学和宗教哲学的永恒话题。形神合一反而难得,需要修为或运气。

白:
“人走了,香味还在房间里飘荡”

我:
那是仙女 不是人。
换成仙女 还可以说义项问题吗,更像是是临时延伸或活用。

白:
给“人“老老实实加个body-part义项是其一,语境驱动的逻辑门是其二,一个都不能少。在人与body-part对举的语境下,这个body-part义项被激活,可以颠覆标配。

我:
人 的默认(标配)是 body 而不是 heart,不说 body 就是 body,但 heart 永远不可省去:

仙女走了 香味还在
== 仙女 body 走了

某某同志与我们永别了
== 某某同志 body 永别了
他的精神长存
说明其灵魂没有走

滑稽的是:

某同志与我们永别了
但他的body永存
— 在水晶棺里
红场或什么场。
此 body 非彼 body

顺便一提,功过不论,留存 body 的做法感觉是违背伟人的意愿。为了留存 body,还要掏心掏肺 去除五脏 想想都让人悚然。

白:
楼歪了……

我:
歪了;也没歪。
“掏心掏肺” 语义计算要休眠唤醒,政治敏感性先放一边。
这种语义计算需要进入成语词典吗?一般认为不要进词典 但是不进入词典先休眠起来,想唤醒都没有依据。所谓词驱动休眠唤醒 就是把休眠的可能性预先隐藏在词典深处。细想起来这是一个巨大的虽然是可行的工程。起码 每个成语都要增加一个或数个字面意义的种子 。没有种子,context 再温床 另一种计算也难发芽。context 有 五脏 可以激发埋在种子里面的字面意义的心和肺,从而唤醒了 “掏” 的原义 而不是标配义。但这类激发不是驱动 驱动应该从成语本身发端 而不是从 context 发端。否则太发散 难以想象有实现唤醒的可行性。

 

 

【相关】

【李白对话录系列】

 

 

Parsing

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

《朝华午拾》总目录

【李白之16:小词负载结构与小词只参与模式条件之辩】

白:

“是他杀的张三”是一个完整句子吗?

主谓宾都在哪儿?

我:

shi S Vt de O ==》SVO

很常见的句式,主谓宾齐全,

是 S V 的 O == S V 的 O == SVO

不过其中 “SV的O” 有歧义,因为与带定语从句的NP同形。

不过加了强调小词 “是” 在句首以后,似乎歧义就消失了。

白:

“是”当什么?自己没有主谓宾?

我:

是数学我不喜欢。

是在北京他们开的董事会。

是1990年我毕业的。

句首的“是”,是强调小词。

类似于英语的强调表达法: it is X 。。。。

it was in 1990 when I graduated
It was in Beijing where we got the deal

白:

可否认为“张三是他杀的”,然后“张三”后移到句尾。

我:

张三是他杀的 ==》 是他杀的张三 ?

张三他杀的 ==》 他杀的张三

白:

“是他杀了张三”可以这么做。“是他杀的张三”不能。

“是他杀了张三”跟“有人敲门”是一个性质,在坑论里是两个谓词合并,共享一个萝卜。

但“是他杀的张三”不好套用这个结构。没办法把二元关系进行到底。不仅“的”捞不出来,连“是”还得搭进去。

我:

“的” 字的两个用法:1 定语标志(或所有格);2. 肯定语气

表示肯定语气的 ”的“,通常位于句末,也常与表示肯定或强调的 ”是“ 搭配使用: 是 XP 的

貌似由此衍生出表示肯定的  ”的“ 用于谓宾之间。

“是他杀的张三” 说的是对过去或完成的肯定,但是却不允许用助词 ”了“ 或 ”过“,原因可能是这个位置被 “的” 占据了。另一个原因是 这种肯定语气蕴含了完成。肯定的行为动作不可能是没有发生的事件。

在 pattern 中,只要能列举出这种即可,很容易捕捉,除非是歧义。

白:

表达什么先不管,谁跟谁有关系是首先要解决的。

我:

没有句首“是”的pattern  “SV的O” 的确有歧义,但是这种歧义是 consistent 的。对于consistent 的歧义,其实不难处理,可以将错就错。直到错到某个点,系统觉得应该校正了,就校正。现在的处置是,开始 parsing 的时候,一律做定语从句看。

白:

有套路,就把构成套路的词摘到二元关系之外,语言学上不够简约。

前面说到的踢出机制试了几个例子,很好玩,基本通了。

我:

有套路,就把构成套路的词摘到二元关系之外,没有问题啊。因为小词已经在套路(patterns)起到了该起的条件作用,譬如 “是+S+V+的+O”,在这个 pattern 中,没有歧义, SVO 被确定,逻辑语义被解构,一抓一个准,完事了,把 “是” 和 “的” 这种句法辅助小词挂起来。这是pattern的天经地义。pattern 比起二元关系环环相扣的 parsing 有不同的优缺点:pattern 可能比较长,上述 pattern 是个五元组,实词的元是XP,所以实际的跨越可能是很长的 string,用的是长度来换取确定性,牺牲了某种抽象性,或换句话说,带来了一些规则的冗余度。二元关系环环相扣的做法,可能更加简约和概括。

白:

做系统咋都行。做句法。感觉非常实用主义,理论上不连贯。

我:

句法标配说的是 sv 语序,多数系统都用的。你的系统先不用,是例外。

白:

我这不用。至少matcher不用。以后语义模块用另说。

我:

虽然汉语语序很操蛋,孤立语中它自由得简直不讲道理,但是 sv 是默认,有统计性依据,也有心理认知的依据。这一汉语句法标配的形式痕迹,不用白不用。

白:

用了也有误导的时候。

我在尝试踢出边的功能:一个强搭配萝卜进来,在坑饱和的情况下,踢走一个已经进坑的萝卜,自己跳坑。如果没有不占指标的额度的话。一进一出,不破坏结构,不重构结构,也不改变结构对外部的联系。与所谓“回溯”大不一样。拔出来的萝卜再进什么坑,全看后续发展。

我:

所以句法结构的时候 可以不利用语序,因为这个结构的标签暂时不不用给出。其实这是跳过句法标签,直接在下一步进入逻辑语义标签。但传统做法是区分 arg1 arg2 arg3,现在是不区分 只说这是arg,有别于 mod 就可以了。

白:

但是各个arg如果subcat不同的话,需要锁定,免得互相串了。

我:

所以是标签隐藏在后面,暂时不露而已。

对,免得互相串了 是必须的。

白:

如果连另一个可能性都没有指出来,焉知落地想要的不是另一个?

我:

这个问题哪里会有?是落地的需求 drive 开发呀。世界上哪里有飘在天上搞开发的呢。何况开发这事儿也不是一锤子买卖。今天没有的可能性,明天加上可能性也是可以的。系统不可能是一成不变的。pattern 不变的话,在结论上增加点什么,连重新测试都不需要就可以搞定,有何难哉?更何况 我们 patterns 用完小词以后,还发扬了革命人道主义,并没有扔掉敲门砖,还用 X 把小词给挂上呢。所有的痕迹都在,过河没拆桥。不过是不让过了河的桥和敲了门的砖占据我们的语义核心地位而已。

小词负载结构,我的理解,本质上也就是一个过渡,一个粘结剂,一个特定的 parsing 算法所依赖的一种手段,并不是一种必需。小词成为条件,则是一种通用的必需,因为没有小词,结构关系就很难搞定,这是小词存在的理由。

白:

“杀人犯把卖盐的杀了化妆成卖盐的在那卖盐。”杀人犯是卖盐的?

我:

那句话一时看不懂,但 point 明白了。你是在诘问 把“S是V的”处理成 SV 的做法。它们不等同,不仅仅是 affirmative 的差别,还有另一个差别在。这个差别是,“S是V” 的 可以回答 “S是谁” 的问题,而 “SV” 不能回答 “S是谁” 的问题。好,这是一个典型的语义落地决定如何表达的例子。现在的问答系统的语义落地有对这两种结构做区分的需求,那就让第二个pattern在输出表达中,把这种需求满足即可。譬如,可以让第二个pattern (S 是 V 的)输出这样的结果:

arg structure: S V

feature: affirmative

answer: who is S

白:

杀人犯不是卖盐的VS杀人犯不卖盐

这些零碎副词加在affirmative上还是加在普通谓语上怎么区分?

我:

bottom line is pattern1 和 pattern2 是两个独立的捕捉,二者该怎样处理都可以,加在哪里都可以。加在哪里落地好用,落地觉得有用,就加在哪里。这都不是事儿。媳妇都娶回家了,怎么打扮还不是男家一句话吗?

白:

那就是说实际上做了两个谓词,简化成一个谓词是伪命题。而小词负载结构,只不过把两个谓词显性化而已。

我:

早早年的parsing,其原始定义记得是没有parse tree的表达的。什么都没有。就是一个合法非法的结论。所谓合法的结论,就是 parser 把那个句子从头到尾都吃进去了。

白:

判定问题

我:

后来的 tree representation 或其他的表达,全部是 parsing 过程留下的痕迹,或副作用。这样看parsing就明白了娶媳妇是核心,打扮媳妇是具有任意性和功利性的副产品。小词负载结构如果能在语义上表现出贡献,那么这种贡献可以等价地由 pattern 给出。换句话说,如果某种用小词作为枢纽来区别谓词的表达法,对于语义落地有益,那么没有人可以阻挡pattern的编写者,输出同样的表达。但实践中,我们知道,其实绝大多数时候,这些小词丢掉了,核心语义没啥损失。譬如 小词 “把”点名了宾语的所在,借助它表达出宾语的核心语义以后,“把”的使命也就完结了。

白:

“把”和述补结构连接,绝不是只有“宾语”这一个含义。参照“他把眼睛哭肿了。”

我:

小词负载结构的语义贡献注定是有限的小词的本质就是句法的显性形式,在句法走向逻辑语义的过程中,形式走向内容。表层走向深层。言语走向逻辑。这种趋向决定了小词负载结构基本是边缘的语义。换一个角度看这个问题,小词是 language specific 的,而语义的本质是人类共通,language-independent 的。language specific 的东西不会在语义里面唱主角。

30 年前,董老师提出,以人类共同的逻辑语义作为机器翻译的基础,而不是在句子表层实施转换。这样一来,不仅用了不同小词和词序的主动语态和被动语态被认为是相同的,而且动词与deverbal的名词也被认为是相同的。因为其 arg structure 的核心逻辑语义都是相同的。用它指导 MT 就是:

I translated A from B into C

== A is translated from B to C (by me)

== my translation of A from B to C

==> 我把A从B翻译成C

当时觉得董老师的做法的确抓到了要害,但也觉得表层的小词和细微差别(譬如语态)也不能就这么扔了。最后的体会和结论是: 在语义落地的时候(譬如MT),逻辑语义是主要的,表层结构是辅助的。做到了逻辑语义的转换,基本任务可以算是完成了。但是要想做得更好一点,还可以参照表层结构或features,再做一些细节上的调整。譬如 英语是被动态的,也许也翻译成被动态更合适(其实,由于两个语言的显性被动表达形式具有不同的使用频度,只能说,部分的被动态用汉语的显性被动为宜,其他的被动态可以用隐性的被动形式,最后还有一部分被动其实更合适用汉语的主动态来翻译,这个要细细研究的话,可以针对不同情形结合表层和深层结构写一大篇来)。

总而言之,小词和表层,顾不上来的话,扔掉了也没啥大不了的。这些边缘的语义色彩,对于语义落地的不同场景或许可以有参照作用,但不是核心。

白:

实际情况是,逻辑语义也是人参照表层写出来的。本族语表层研究不到位,就只好迁就着走。就好像grandma不知道是姥姥还是奶奶。并不是他们说英语的人逻辑上不能定义和区分爸爸的妈妈还是妈妈的妈妈。我们要高频率地使用,就不能绕着走。

我:

这样看也是一个角度,有其道理。

理论上,逻辑语义应该是参照多数的人类语言提出来。基本立足点就是,人类的概念和思维是共同的,理解也应该是共同的,只是表达的时候穿了不同的外衣。当然,语言对思维也有反作用,因此人类思维和理解的共同性,只可能是大同小异,而不可能是完全一致。

白:
共同性体现为外衣的并集

如果主要外衣缺失,就谈不上共同性了

【相关】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

【李白之15:白老师的秘密武器探幽】

【立委按】 白老师不动声色开始亮剑了:独创的自然语言的parsing法术,无需规则,无需带标数据,词典主义标注加无监督大数据以克服知识瓶颈。深度计算,句法语义交融,借力RNN,以平天下。小试牛刀,以中文难句为例。先睹为快,以飨同仁。

 

我:
省略 head 最可恨。从“的字结构”和what-clause始,恨的是 队员都在 头儿却跑了,缺少头就缺少了语义相谐的依据。what I read 的语义是 【book】,可是很难找到这个本体的入口点。语义计算和细线条深度parsing就犯难了。当然,可以转弯抹角通过 “read”的 HowNet 网络里面的 logic subcat 的逻辑宾语的标配,把这个语义节点挖出来,这多费劲啊。
白:
别拿“的”不当头儿
我:
“的” 与 what 一样,可以当头儿,但没有本体的底气。
白:
给它它就有
我:
我尝试过把 V 当头, 也尝试过拿 “的” 当头,都遇到这个本体的滑铁卢。V 麻烦更大一些,V 本身的本体在那儿添乱。理论上可以通过 V 询问 HowNet 去 retrieve 出来逻辑宾语的标配,然后赋值,并替代 V 的本体属性。Word 天,这不是人做的活儿。
我吃的 –》【food】
我看的 –》【ANY】
我修读的 –》【knowledge】
我parse的–》【language】
我干的 –【事业,or 勾当?】
白:
只需要指回来,不需要明确哪个坑。
的当头不是问题,当头的赋予什么subcat才要紧。谓词的坑不饱和不要紧,可以到坑里去挖。谓词的坑饱和了还要“凭空”憋出一个subcat来最麻烦了
我:
出去买外卖,路上冒出个英语打油:
What I read — is not a book
What I eat — is not food
What I do — is not a cause,
What I love, is you.
标配被形式推翻,哈。
白:
not a book, but newspapers; not food, but pills; not a cause, but fun.
看看我自己搞的parser的图:
我:
牛叉!看着就高大上。
what I love, is the girl:见过的都说漂亮的。
见过的都说漂亮的:有歌为证:“在那遥远的地方,有位好姑娘;人们走过她的帐房,都要回头留恋地张望。”  里面有两个 “的”字结构:
见过的 –》 【human】
都说漂亮的 –》【ANY】
前者是主语,后者是宾语,补全了就是: 见过的【人】都说【她】漂亮的【那个姑娘】
白:
tomita差远了,我这里没有规则只有词典。
sh移进;up升格;ma填坑;mo修饰
比图栈自动机简单,而且跟语义中间件查询一一对应。
我:
就四个操作?跟汇编似的。记得汇编就是两个字母做操作缩写。我自己没整过汇编,我领导当年整天就是汇编。
白:
还有一个me,合并,这个例子木有用到。
match,modify,merge,那么凑巧都是m打头,第二个跟不同的元音。
下划线义为“关闭”。五角星是关闭后又打开复用。
我:
SH 的缩写是?
白:
shift
我:
my bad, I thought it was shit
wondering why this naming
by the way, shit and crap are NOT negative in Oral English when used in NPs
白:
up含元音u,shift含元音i,这aeiou也算集齐了
shift:move to the next token
我:
we call it read head in FSA
白:
pda players like to call it that way.
但实际上我这也不是栈。
我:
能把姑娘那句串出来,真心不易。
我要是硬做也可以做,可是感觉不踏实,不知道哪天又断了。很多事儿是选择不做,因为没有鲁棒的把握,当然也因为不足够常见感觉不值。
match 是填坑,那就是 saturated 了。up 是升格,意思是?
白:
修饰语提升为被自己修饰的pos
坑有指标,填一个少一个
matcher就做这五个动作
我:
为了理解白老师的parsing机制,咱们对照上图来个walk-through吧:
“这” 是 N++,Up 了一下,就成了 N+ ?
白:
指示词,数词,都是N++
我:
Up 之前为什么 Shift?
白:
位置一开始-1,进入0就是shift
我:
Mo01 就是被吃掉了,N+ 就是往右边找 N,modifier 找 head,找到了 就自裁了。
白:
我:
可是这个 NP 看不出来是一个完整的有 det 的 NP,过了这村,痕迹也没留下的感觉。
白:
弧都在。每条边都是痕迹。
我:
Ma12 那是填坑了,带有 2N 的 “见”,saturate 了一个,成了 S/N,可是怎么知道是主语坑填了 还是宾语坑填了呢?
白:
不知道。也不care。
我:
所以 先吃掉一个再说。也不问问中间件?
白:
目前每步都问
我:
每一步都查相谐?
道理上不需要,只有出现歧义可能才需要查问和比对。
白:
两个如果有一个相谐,就锁定一个,再来只需查另一个。
我:
小词 “过” +S 是向左修饰谓语的,因此 Mo32 就把时态助词吃掉。
so far so good
可这时候没遇到 N,只遇到 “的”。“的” 很特别,谁都要
白:
的,左面吃一坨,吐一个定语N+
我:
X 来了就吃掉。
对 突出了一个 N+
白:
X是wildcard 以前说过的,不管S还是N,来者不拒
我:
Up 4 晕了
原地踏步就是 Up?
白:
定语升格为NP,实际是创建了一个虚节点,图上有
我:
Up 的原因是因为前后的路都堵死了,等于是默认操作?走不下去了,就 Up 一下。
白:
什么因素驱动什么操作,应该是最核心的东东了。
我:
Ma42 填的啥坑?“见” 还有一个没有填的 arg N。
白:
见,残留的坑。
因为是残留的坑,萝卜不占指标,依然可以它用。
残留的坑就灭了。
我:
哦,那是“的”没找到 head N,自我升格为 N 以后,去填了 “见” 的第二个坑。至此我们其实不知道“姑娘”和“的”各填的什么坑:如果的字结构中被省去的N是【非人】(东西),则“女孩”是主语;否则,“女孩”可能是宾语(也可以是主语),类似于说:
这女孩见过的【东西】
见过这女孩的【人】
其实在本例句“这女孩见过的都说漂亮”中,“女孩”是宾语,而的字结构指的是主语【人】。
不占指标的意思是,这个 V 做了定语从句,所以 V 全部saturated 了
白:
残留是指,head已经填坑去了
我们matcher是没有语言学知识的,只知道填坑去了,定语从句什么的,不知道。
另一面说,如果有其他情形导致残留的,也一样办理。
六亲不认。
我:
Ma42 结果 把 “见” /N 变成了_,关闭了,就是用 “的” 填进去的结果?语言学上对应于 “的”字结构 反填为子句里面的主语。
makes sense
反填不占指标,所以动词saturated,可“的”字还是 N,从这个 N 进一步取下一词 (Sh5) ?
白:
sh是先放着,看下一个
我:
入栈?
白:
不完全是栈,暂且理解为栈也将就
我:
小词 “都” S+ 往右找谓词做修饰(Mo56),于是吃掉了 “都”。
“说”有两个 args?一个是 N 主语,一个是 X 爱咋咋:NP宾语也好,宾语从句也好
这时候 的 N 可以填进去 (Ma46),后面的 A 作为第二个 X 也填进去,大功告成?
白:
要处理残留:谁漂亮
我:
Ma17 于是把“女孩”连上了“漂亮”,填坑。
白:
因为是残留,要在之前已经关闭的N里面找一个做兼职。不占名额。
我:
远距离逻辑关系 不能占句法关系的坑。
白:
_是关闭,五角星是再打开
我:
关闭是入栈,打开是 pop?
白:
好像不是
关闭是了结,打开是废物利用。
我:
这个游戏好玩。
parsing 是走通了,哪里看出怎么给标签?主谓宾等
白:
不给标签,只说谁跟谁有什么关系,留下来的arcs正好构成这么一幅图
我:
“什么”关系不就是标签吗?
MO 是修饰;MA 是填坑,但没说主语关系还是宾语关系
白:
水平的是修饰关系(红色),垂直的是填坑关系(蓝色),跨接是合并关系(橙色)。
我:
没看到跨接
白:
这句没有
不说没关系的,范围已经框死了
语义层面往下走接得住
我:
主语宾语怎么接得住?
主宾的区分往往是,相谐只是可能,句法才是决定。“老鼠爱大米” 填坑以后 相谐可以决定主宾,“张三爱李四” 呢?
白:
我们汉语可能要反过来,相谐如果搞定,不问语序;相谐搞不定的,再问语序。
语序的原始编号都在。
我:
至少对于此句,不问语序是对的。问了语序的话,“女孩”在主语位置,应该是定语从句的主语了,但其实是宾语。
白:
如果填坑时没有竞争者,也不用查中间件。
大部分情况只用相谐就搞得定。
三省吾身,用得妥妥的。
我:
有意思,太有意思了。
白:
当个玩具吧,希望尽快升格为不再是玩具。
我:
这可不是玩具 玩具哪里能搞定这样的句子。看得出来 小词很关键。实词一边有坑,一边有中间件。
白:
玩小词其乐无穷啊
我:
“的”字的玩法 令人惊诧。
白:
“圆圆地画一个圈”
这里要解决“伪状语”的问题。顺带考查一下小词“地”。
我:
洗一个痛快的澡
是伪定语,同理。
白:
这里,“圆”残留的/N,靠“圈”的废物利用搞定。二者之间的subcat不要太般配哦。
同理,“痛快”残留的/N,找到了subcat相谐的已关闭的“他N”。
我:
这句没看懂。
“圆” 一个坑,后来让 “圈” 填了。类似于 “痛快” 的坑 让 “他” 填。
白:
画的逻辑宾语坑是“图形”,圈的subcat也是图形,这不是般配是什么?
伟哥没看懂的是上海话吧……
不要太 means 太tm
我:
哦。
北方话就是王八绿豆对上眼了。
对上眼的是远距离的 “圆” 与 “圈” 啊,“画” 与 “圈” 哪里需要对上眼,那是句法绑定 父母包办:
v 了 一个 n
白:
父母包办的也送中间件里,无妨
我:
不需要。先婚后恋。不恋也成婚。
白:
圆圈也包办的
不过我还没处理成包办
需要磨
所谓包办,就是word embedding。自由恋爱,就是subcat-embedding。
我:
前者是强搭配?后者是搭配
强搭配在两个直接量之间进行:洗-澡;搭配可以在 subcats 之间
吃 -【food】
or【consume】-【food】
词对词:洗-澡 ==》 词对subcat: 吃-【food】 ==》 subcat 对 subcat:【consume】-【food】
HowNet 基本是后者,因为是概念之间。汉语词典里面有前者,因为有习惯表达法,language-specific。问题是,由于自然语言有多义,词到概念的映射不是一一对应的,除非存在一个完美的 WSD 支持。因此,subcat 对 subcat 的这个宇宙真理,尽管概括性和逻辑性强,但不好实施,容易走偏。除非有大数据做底,指望 WSD 不太现实。
白:
中间件看到的就是实例对实例、标签对实例、标签对标签(含标签它八辈儿祖宗)。
我:
我把 HowNet 的搭配搬过来以后,吃过亏。不过实例对实例,这个不需要大数据,拍脑袋也不会走偏。基本就是词典的记忆,脑袋里都有了,而且因为概括性弱,走偏的可能几乎没有:譬如 洗-澡。实例对标签 处于二者之间。
白:
WSD再怎么不完美也要分开,绝不能搅在一起。宁可分头完善去
我:
我从来不指望 WSD
默认假设是没有 WSD 怎么做 NLU 或落地。WSD 是其他过程的结果或副作用,而不是支持其他模块的前提。
白:
“洗”是万金油,“澡”是单打一。
一个固定搭配入口在哪很要紧,放在万金油那儿就惨了
我:
那是效率的问题。有不同的 indexing 的入口。“澡”作为入口 效率更好而已。
所谓 word driven 其中一个考量就是入口的驱动词的选择。传统的词典编纂也有这个考量。
白:
WSD和matcher工作时都要调用中间件
我:
一时想不出来 parsing 为什么要 WSD,有中间件就可以 parse 了。理论上 parse结果里面,词的节点应该是 WSD 过的概念。
白:
不存在独立于中间件之外的WSD
给Matcher的是单选的pos流,从多选到单选这一步是WSD做。再回到多选,就是休眠唤醒了。就是我说的,“纵向不确定性”WSD负责搞定;“横向不确定性”matcher负责搞定。二者都要借助中间件。
我:
多选到单选不是中间件吗?当然说这里面隐含了WSD也是不错的,因为所谓相谐就是两个节点的某一个 ws 与某一个 ws 对上了。从图上说,node 才有 wsd 的问题,arc 不是。
白:
义项的多选到单选,由WSD借助中间件做。parsing动作的多选到单选,由matcher借助中间件做。
“我想战胜AI的心,仅仅是为了作为棋手的尊严。”
“想战胜AI的心”,遇到“心”属不属于“那个小集合”的问题。可以人为设定“心”的一个属于那个小集合的新义项,(类似“心情、心愿”),在中间件里面靠“想、V、的”等捆绑,希望运行WSD时可以体现出来。目前资源太小,很多时候不顺手。
我:
我来推演一下:
parsing 到某个步骤,需要决定定语从句修饰的N,是不是应该反填子句谓语还未填的坑。如果 N 与坑的arg的要求相谐,则填,否则不填。如果 args 都已经 saturated 也没有填的问题。
“我想战胜AI的心”: “战胜”已经saturated,“心”不填。无需给心做 WSD
“想战胜AI的心”: 这时候,“战胜”还有一个主语的 arg 没有填,“心” 能不能填,决定于大数据中有没有 “心” 做 “战胜” 主语的历史积淀。应该是不相谐,没有积淀,因此不填。即便是那个“小集合”的典型案例,譬如“消息”,也有可能是相谐可填坑的:
他走漏的消息,很关键。
他走失的消息,很关键。
大数据搞定 “走漏-消息” 是肯定的。至于“走失” 与 “消息”,那应该是词典决定的标配,而不是大数据。换句话说,搭配是大数据的统计,不搭配则是默认。

白: 再看:

因为“碗”和“猪”不相谐,标红的这一步选择了Sh,而不是Mo

王:
白老师,这个句子最后一步match的是17,可以是47么?

Plus,“这女孩见过的都说漂亮”这个句子似乎有歧义?对比:“老祖宗讲过的都说有理”。

“女孩”在这个带“见”的的字结构里,可以当主语,也可以当宾语。

白:
对。这里只取了一种分析结果

我:

这姑娘见到的都说漂亮。
这小伙儿见到的都说英俊。
这小子见到的都说漂亮(因为他以前根本没遇到过漂亮的)。
这姑娘见到的都说英俊(因为她足不出户,见识太少)。
猪八戒见到的都说漂亮。
这傻瓜见到的都说奇妙。

结论,是 ”姑娘“ 与 ”漂亮“ 的高度相谐性,决定了姑娘与句法标配唱反调,做了 ”见到“的逻辑 宾语。甚至替换成同义词 ”英俊“,这种相谐性有所降低,就很难打败句法标配了。这也说明,语义中间件的相谐性不是好玩的游戏,非高手不能。甚至高手也会失手,过犹不及。

王:
操作有Shift, Modify, Match, Up, 还有这个句子里没用到的Merge,一共五种……

白老师,如何决定每一步用哪种操作呢?是在每一步都把五种操作全部轮一遍,看看哪个能用,然后继续,最后把成功parse全句的依存关系留下,没parse出全句的依存关系丢弃?

另外parsing以前做pos tagging的时候是不是也要把所有可能的pos序列全部给出来?

白:
这里面有大量无效的结合需要排除。算法的核心就体现在这个地方。

目前算法还没有面向所有歧义分析结果,取的是按照系统排序原则首先形成的第一个满足条件的分析结果。

另外不同的pos标记是靠WSD模块来选取的,每个词只有一个pos标记胜出。

如果做不下去了,又发现“里外勾结(甲词的首选pos和乙词的非首选pos类型相配)”,则启动翻盘。

我: 总结一哈。

优选的路径亮相的背后是大量的伪歧义,白老师怎么对付的呢?一个是基于训练出来的语义中间件的WSD,它负责提供每一个词的唯一而合适的pos供给 以 subcats 驱动的 parsing 去匹配。另一个就是 parsing 的算法,想来是糅合了某些语言学原则的,来决定操作的顺序。

这解答了我以前的一个疑问,为什么不可以绕过WSD做深度parsing?

在白老师,是绕不过去的,因为是基础支持。在我这儿,基本上是绕过去了。POS (可以看成是最粗线条的 WSD 的语法表现)我基本是绕过去做parsing的。见:【NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈】;【中文处理的迷思之二:词类标注是句法分析的前提】。

能绕不能绕,决定于算法。条条大道通罗马 of course

白老师算法的精炼和操作的简约,是建立在两个基础之上:一个是语言学标注丰富的词典,潜在的路径都藏在里面,就等 matcher去选秀。另一个就是要有一个大数据的语义中间件的有力支持。

我这边也要靠信息丰富的词典,词典的一头是语言学,词典的另一头是HowNet本体,前者是主,后者是辅。

另一个靠山就是规则,根据语言学原则和经验设计出来的支持多层parsing 模块的 hierarchical 的规则集。

多层、细线条规则,为绕过POS和绕过WSD施行对伪歧义免疫的高精度深度分析,提供了条件。parsing 本身的基本机制也很简单,但利用这个机制把语言学揉进去来组织多层,那就是可乐式秘方了。

白:

“貌似咱倆把天聊歪了”–隔壁群里的一句话,离合词活用经典。

我: 就此打住吧。

白:
我说,天好好的,没歪。

当规则寓于词典的时候,WSD不是传统含义,POS也不是。某种意义上说,此时选择义项就是在选择规则。也就是说,绕开彼WSD使用的技术,跟此WSD使用的技术是相通的。

我:
WSD 本来是一个独立的与结构分析不必交融的任务,譬如,bank 是选“银行”还是“河岸”的消歧问题。再如,this coach is believed to be tough 这是以前提过的 WSD 经典案例,说的是,利用语义相谐来做 WSD

coach 有n个义项 tough 也有 m 个,二者互谐的只有两个:
coach【human】:教练 ; tough【human feature】:严厉
coach 【vehicle】 :马车; tough 【object feature】:皮实

白:
这不影响结构啊,一个N,一个S/N。pos没有其他选择就不check

我:
这个案例不影响各自的POS,不影响结构,这是 WSD 原本要追求的目标,但不是 parsing 所需要的支持。

然而,如果相谐是需要check的一个条件,出现的情况就是:

1. 由于 sparse data,两个直接量在一起的机会不够,所以系统认为是不相谐: 就是说语义不及格,全靠句法了。如果句法无歧义,没关系。否则影响parsing的质量。

2. 如果数据超大量,不要依赖于 subcat 级别上的相谐,而是利用直接量的 touch 和 coach 就有足够的例证是互谐的,那么语义支持了二者的结合,哪怕这时候究竟是 【human】还是【non-human】仍然无解。

我要说的是,白老师的 WSD 模块不是通常意义的 WSD,而是针对结构歧义(structural disambiguation)而来的相谐的支持,是粗线条的,而且是调用 when needed 的。WSD 的本义不是这个,本义是 lexical disambiguation,是为了确定词义的。本义的 WSD 对 结构 parsing 理论上有帮助,实践中基本不需要。在结构 parsing 的时候,WSD 可以隐含(或成为结果,就是所谓 positive 的副作用),但不必是条件。

即便如此,白老师由于没有显式的多层的 pattern 规则,只有隐含在词典可以被 matcher激发的潜在规则种子,其结果是对所谓 WSD或POS 模块的依赖远远大于多层的规则系统。既然有休眠唤醒,白老师应该也引入了多层。但总体上,白老师的层次是少数的,仍然在传统 parsing 单层搜索空间的延长线上。因此理论上,伪歧义会成为极大的困扰。白老师的创新就在,层次虽然不多,但背靠两座大山。这两座大山,都是传统 parsing 不具备,或者严重不充分的。第一座大山是词典主义标注,这是一个巨大的语言学工作,特别对小词和 top 1000 的用法众多的实词。第二座大山就是大数据的语义相谐的训练。建造这两座山都不是简单的活儿,除了设计家的宏观规划外,牵扯的具体的数据工作和调试测试工作非常庞大。没本事建大山,也就无法克服传统parsing的伪歧义瓶颈。

【相关】

【李白之18:白老师的秘密武器再探】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

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

【立委按】世有李白者,精于语义,勤于计算,一敏一木,一弦一弹,无论魏晋,不知有汉。每日坐而论道,波澜不惊,各得其乐,天马空行。挥斥方遒,指点语言,和寡曲高,流水云天。有道是,一擎核弹一拨弦,不是冤家不上船。

【李白之22:兼语式的处置及其结构表达】

【李白之21:萝卜多坑不够咋办】

【李白之20:得字结构的处置及其结构表达】

【李白之19:三探白老师的秘密武器】

【李白之18:白老师的秘密武器再探】

【李白之17:“我的人回来了, 可心还在路上”】

【李白之16:小词负载结构与小词只参与模式条件之辩】

【李白之15:白老师的秘密武器探秘】

【李白之14:Chinese deep parsing,说的是 deep!】

【李白之13:所谓话题或大小主语的句式】

李白之12:修正乔老爷的保守派自由派之辨】

【李白之11:parser 的三省吾身】

【李白之10:白老师的麻烦不是白老师的】

【李白之九:语义破格的出口】

李白之八:有语义落地直通车的parser才是核武器

【李白之七:NLP 的 Components 及其关系】

【李白之六:如何学习和处置“打了一拳”】

【李白之五:你波你的波,我粒我的粒】

【李白之四:RNN 与语言学算法】

【李白之三:从“把手”谈起】

【李白之二:关于词类活用】

《李白隔空对话录:关于纯语义系统》

 

 

【相关】

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

【白硕 – 打回原形】

自然语言后学都应该看看白硕老师的“自然语言处理与人工智能”

【李白对话录:谁无知呢?】

《铿锵三人行:句法语义纠缠论》

泥沙龙笔记: 铿锵三人行

《铿锵众人行, parsing 可以颠覆关键词吗?》

【泥沙龙笔记:语义可以绕过句法吗】

《parsing 的休眠反悔机制》

【歧义parsing的休眠唤醒机制初探】

【结构歧义的休眠唤醒演义】

《跨层次结构歧义的识别表达痛点》

乔姆斯基批判

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

【理论家的围墙和工程师的私货】

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

立委科普:关键词革命

立委科普:关键词外传

骨灰级砖家一席谈,真伪结构歧义的对策(1/2)

骨灰级砖家一席谈,真伪结构歧义的对策(2/2)

中文处理

Parsing

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

《朝华午拾》总目录

 

【李白之14:Chinese deep parsing,说的是 deep!】

白:

“认错的人我原谅了”“认错的人原谅我了”
“这场雨来的不是时候”“这场雨来得不是时候”哪个对?
“这场雨来的不是时候”、“这场雨来得不是时候”,感觉前者说“来”不是时候,后者说“雨”不是时候。个人倾向前者。

我:


谁原谅谁,句式蛮普通的。这里面还有其他的 catch 吗?

白:
两个不同的“认错”:一个是承认错误,一个是认错人,负面sentiment在不同主体身上。原谅的方向不一样,可以反推是哪个“认错”

我:
我很木
没想到第二个认错(人)。

白:
在“认错”与“人”之间,至少一个S,一个O。

我:
两句都理解成“承认错误”不行吗?

白:
一个大概率,一个小概率
把后者标成O,都是大概率。

我:
明白了。(当然那是在受教以后在明白)

我的问题是,普罗百姓更多人跟我似的木,还是白老师一样敏锐?
第二个问题是,这种不影响句子大局(大结构)的微结构里面的hidden args:decode 出来或不理它,decode 对了或错了,对一般的语义落地目标影响多大?

白:每个都不大,加起来不小。

我:
下面这组更看不出区别了:

白:
的/得,对错别字再加点容忍度,肯定是你这结果

我:
这一组,几乎肯定老百姓对区别无感。
“得”、“的” 混用已经如此普遍,以至于正式文字里面也不少见了。
实践中的体会是,遇到 “得” 就遇到了救星,因为基本可以肯定,用 “得” 的人是有文化的,是有意为之。由于 “得” 的补语标志性很强烈,加上 “的” 用法太多,系统不用担心 “得”,但是对 “的” 不得不格外小心。无论怎么小心,也还常搞不定。现代汉语该死该诅咒的东西很多,“的” 肯定是 top 3 可以千刀万剐的。恨得不止咬牙。

白:
“他菜炒的不够熟练”“他菜炒得不够熟练”呢?前者说的“炒”不够熟练;后者说的“他”不够熟练。其实用哪个字倒在其次,关键是结构不同。不同的萝卜来填坑。

我:

其实第二句的离合词“炒菜”也抓着了,不过显示的时候与 “得字结构” 撞车,没显示出来,这是显示的bug,不是parser的bug。有意思的是,炒菜也可以是名词:

白:
“生的伟大死的光荣”还是“生得伟大死得光荣”?
我觉得谓词的体词化+comments谓词,和谓词与谓词共享坑,根本就是两个结构。
我其实想说,“圈画de圆”和“圈画de慢”是两个结构,不管用“的”还是“得”。
前者是双爹,后者是祖孙三代。
“坑挖de整齐”和“坑挖de突然”也是两个结构。

我:

后者是默认,不论。
前者很 tricky。

白:
这两个用不同字区分,有意义。

我:
没法教育普罗。语言实践中不可操作。

白:
受过教育的尽管都写“得”,其实很勉强。谓词名词化用“的”本来天经地义,为啥算错。
我觉得做区分也是“语文”的需要,并不是“语言学”的必然。所以有今天这样的混用局面
这个区分并不高明。

我:
因为的字过载,其中的 “的字结构” 已经很各别:一个子句突然变成一个 NP,
这已经很让人困扰了(英语的 what-clause 也有这种困扰,容后论),这时候大家在学 “的字结构” 的时候,尽量趋向于收紧。最常最先记住的 pattern 就是“我吃的”、“他读的”、“你扔掉的” 这类。现在突然来了倒装,又夹杂了分离词,别说普罗会懵,就是文化人能整明白的也在少数。

白:
所以我才只问填坑,不贴标签

我:
更主要的还是口语中读音一样,这种细致的语义区别,要想教育用文字区别,不可行。

白:
不说哪个是补语,填坑的方向自然说明一切
@wei 试试旅馆那个?
“这里的旅馆住过的都知道很脏。”
“这女孩见过的都说漂亮。”

这个例子的奇妙之处在于,一般的情态动词和它带的宾语动词具有同一个逻辑主语,但这里却不是。“住过的都知道”似乎像是一个插入语。但是parser怎么会知道这里是插入语?

“这女孩见过的都说漂亮。”

同理。撇开是不是插入语的事情,这就是“很脏”的坑谁来填的问题。有“住过的”和“旅馆”两个选项。为啥不是“住过的”?我之所以拿女孩漂亮的句子做补充,是想说明,这一选择与sentiment无关。

撇开是不是插入语的事情,这就是“很脏”的坑谁来填的问题。有“住过的”和“旅馆”两个选项。为啥不是“住过的”?我之所以拿女孩漂亮的句子做补充,是想说明,这一选择与sentiment无关。

我:


何年何月 肯定做过努力。至于努力的成效就不好说了。汗滴禾下土 有迹可循。弄巧成拙也在所难免。不遇到特别的句子还看不出来。

白:
“这里的旅馆 住旅馆过的”看样子是在容忍不确定性
两个S都指向这个集合,但回避了是否指同一个元素。我:

我:
这是智慧还是油滑?白硕:

白:
这种容忍不确定性又把不确定性圈住的做法,必须发扬光大。我:

我:
听上去像是表扬。白硕:

白:
当然
只是还不解渴
期待更多 更系统 更elegant

白:
是知道一个词这样,还是情态动词都这样?

“这个人大家都相信是无辜的”

似乎“相信”也是对的

我:

白:
“这只老虎尿过的都认为是自己的地盘。” 出现反例了。“尿”本是不及物动词,但是这时候要强制提拔一个编外的坑,给“尿”。处所,很幸运地被选中。

我:
还有:“这个小便池尿过的都说干净。”

计算语言学家的不能告诉我们,我们正在走向危险的边缘。句子越来越诡异,合法非法之间,更要命的是,感觉上不具有统计性:不好拿捏,不仅要费牛劲儿,而且做了白做。

见好就收。拉倒。

前面提到英语的 what-clause 也类似汉语的 的字结构 容易让人懵。因为看上去就是一个 wh子句,可用法上的绝大多数 却是 NP,等价于带定语从句但省略了 head 的NP。蛮操蛋的。结果呢, 遇到复杂情形,晕菜了。What you said is not what you did.

What you said is not what you did.

这个中规中矩,还好。

I don’t know what you did.
I don’t understand what you said.

前一句,是 NP 还是 wh-子句?其实两可。翻译过来就是:

我不知道你做的(事儿)。
我不知道你做了什么。

这种细微差别,老百姓是不管的,也管不了,大家也就打马虎眼抹平了,反正也差不太多。第二句呢,一般理解就是 NP:我不理解你说的(话儿)。

understand 与 know 近义词,但 subcats 有别。know 既可以带 NP 又可以到 wh-子句:

I don’t know who you are, but I know what you are
I also know where you live and how you got your permit.

understand 通常带NP,或比 know 对 NP 更青睐。

 

【相关】

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

 

【李白之13:所谓话题或大小主语的句式】

白:
“我讨厌那种窗户不透亮的房间”
“我喜欢家不在本地的女朋友”
“他期盼着进入一个放学不留作业的学校”
@崔佳悦 欢迎

我:

欢迎@崔佳悦 虽然词库目前未登录 好在 ne 还是对了。

1. “秦汉胡同学员作品展” 里切词有错,可是 NP 对了,应该不影响parsing该NP涉及到的句子大局;

2. “蒙太格” 不在词典,更甭提“蒙太格语法”这个术语了,但是 NP 还是没错;

3. “逻辑语义学研究”,初期 parse 成主语 S,到了语义中间件(不是白老师那种中间件,是句法后的语义模块)发现是逻辑宾语 O,但并未删除初始的主语结论(其实是有意为之,因为这个更新不是百分百把握,留下初始结果可以增加语义落地 recall,不过是一个儿子两个老子而已的可以容纳的 non-deterministic 的结果);

4. 从事的主语应该是【human】or 【institution】,现在错了,这个可以在语义模块更正的,如果磨细活的话。

5. 最后的话(怎么听上去像瞿秋白先烈就义前的心灵忏悔?): 所谓鲁棒,就是步步为营,不求完美。有知识就细柔一点,没知识就大老粗。

白:
“我不喜欢穿没有领子的毛衣。”

我:
人在外 领导血拼 估计没问题 等回家测试
人在外 == body 在外
不是领导ing shopping 而是陪领导 shopping
估计what没问题 等回家测试what
这个要问白老师 语义中间件搞不定。
估计【白句的测试结果】没问题 等回家测试【白句】
白句是what 问一问小冰
据说小冰是目前对discourse最能耐的妞儿了。

白:
窗户那个,看不出细节
如果“不透亮”一个坑,而且被“窗户”占了,而“房间”又不属于“那个小集合”,那么“房间”回填“不透亮”应该遭遇阻碍而且不能不了了之。不知道伟哥怎么摆平的。别告诉我就是不了了之了。

我:
做 sentiment 的 这个都摆不平 就完蛋了:窗户不透亮 是 negative 中最具情报价值的信息,我们叫做 actionable insights,比纯粹情绪的宣泄价值大太多

白:
“没有”两个坑,把问题掩盖了。再来:“我最喜欢吃皮儿薄的饺子。”
估计和窗户一样
毛衣、饺子、房间,都是俩爹。

我:


这个、这个 — 差强人意了点儿。
可毛主席说了,吕端大事不糊涂。大局不错。

白:
领子、窗户、皮儿,都有坑
在图上把俩爹找齐了才漂亮

我:
哪两个爹?
皮尔 是 薄 的 S, 也是 饺子 的 part?
part-of 关系可以作为支持,不必作为 output,因为这个在 ontology 已经预定了

白:
饺子,皮儿一个爹,吃一个爹。

我:
吃是爹,饺子是宾语儿子。
至于饺子与皮的关系,这是一种不易的本体知识,不是动态的语义,有何必要?HowNet 里面就给了这个关系,这是宇宙真理,放之四海而皆准。没有情报价值。

白:
句法层面不需要知道是part-of,只需要知道有坑

“这些饺子皮儿太厚”,饺子的爹是谁?
是“太厚”,不通。是“皮儿太厚”,违反了词负载结构的原则,答案只能是“皮儿”,而且人家俩的关系就摆在那里。

我:

一个大主语,一个小主语而已,层次不同。
做 sentiment 的,对于这样的描述: 皮儿太厚,非常敏感,因为请报价值大。这是一种抱怨,而且抱怨具有 actionable 情报。下次包饺子,就要注意擀皮儿的人了。

白:
我就是不满意这个大小主语的说法
本来可以做得更好,而且是举手之劳

我:
目前这个做法 很合理啊。
你看看 “皮” 虽然也是 S, “这些饺子” 也是 S,但两个 Ss 明显层次不同

白:
“张三不知怎么搞的亲戚那么多。”
亲戚不是part-of,但有坑的特点是一样的

我:
从短语结构即可看出:”皮”几乎就是词法 open morphology 而 “饺子”则是句法。

白:
亲戚也是词法?
sentiment里面所谓的aspect,在句法里都可以显性处理,不用走曲折道路。

一个性质,完全平行的句子,被处理成了不同样子。

我:


这些扩展的主谓结构,处于词法句法边缘地带,是句子一级的句法的一个单元。违反了词负载结构的原则,也没什么。

白:
硬盘也是?
这台机器不知怎么搞的硬盘总坏。

我:

说是 open morphology 也差不多:硬盘总坏;身体好;性格糟糕;屏幕太宽;价钱死贵 。。。。。。

白:
本来可以纯句法处理的,只要更新一下观念

我:
现在的处理办法, 经过太多的测试,一直感觉很顺溜
语义落地,特别是落地到 sentiment,真地是一顺百顺
展示这样的sentiment 的短语结构的结果 也很漂亮。容易理解,情报丰富。

白:
在句法上把坑显性化,只会做得更好

“硬盘总是坏的机器不要买”
“秘书过于漂亮的老板不好当”

我:
这个 这个 这个 。。。。这个 这个。。。

反正这样玩法,白老师铁心要玩残它。不过:
“硬盘总是坏的采购员不要买,好的采购员可以买”

白:
这个例子好。

问题是我有更好的方法

我:
白老师的问题不是我的问题,但白老师的麻烦却是我的问题。(哈,cf:【李白对话录之10:白老师的麻烦不是白老师的】

白:
有自由度了。中间件该出场了。
如果没有自由度,还轮不到中间件呢

我:
中间件是这样的:没有它 parser 一样行走,而且多数情况下走得还不错。
这就是 parser 第一步要做到的目标。
然后,随着中间件不断丰富,parsing 不断细化、语义逻辑化。这是 parsing 的第二步目标,是 semantic parsing 的终极目标,但不是语义落地的必要条件。

白:
当然。但句法不同,伪歧义表现不同,中间件出场的条件自然也不同。
伪歧义多点少点死不了人,断链子就不同了

我:
无论是 白老师的中间件的 integrated or call-on-the-fly 的做法,还是我的 pipeline 的语义模块的做法,本质是一样的。

白:
我在质疑句法本身,而不是parsing。

我:
现在的情况是,第一步目标几乎达到了,靠谱了。第二步还在断续补足中。
句法的目标只能是方便语义落地。如果较好地支持语义落地,那么就是一个好的句法(representation)。

白:
这里的“方便”往往夹杂着对软件和数据legacy的考量,着眼点不在“地”而在“落“
如果没有legacy,反而更容易着眼于“地”。成功是失败之母。因为任何一种成功都有固化自己的冲动。

我:
评判 syntax 是一个困难的事儿。譬如说吧 虽然我们可以批判 penn tree,抱怨它设计得糟糕透了。但是 换一个人制定标准 估计也好不了太多,我们还会批判它。我可以一口气数落 penn tree 的10大错,而且可以条条是道。所以,在认识到这种评判的困难以后,我们可以退一步说,至少我们评判一个 syntax 的表达,着眼点是多大程度 多么明显地 有助于或妨碍了 语义落地,而不是从一个句法算法的一致性与否的角度。

白:
还是那句话,落地是有潜台词的,站在什么legacy的山上唱什么歌。最后是legacy主导一切,落主导一切,地是啥反而可以不care了。

我:
那是。我是站在 sentiment,或 IE 的legacy 上。

白:
不对,IE/sentiment还是地,不是落。

我:
地 就是 IE (sentiment 也是 IE),落就是 subtree patterns 的 matching白硕:

白:
subtree自身的局限决定了落的局限
我大概4-5年前放弃subtree的。
我当时起名叫 ppt:partial parse tree

我:
结构匹配
聚焦就是这么来的。
叫不叫 tree 无所谓 实际是个 sub-graph,我们以前也叫 svo search or svo retrieval or svo matching,有了这个 老鼠爱大米 就可以挖掘出来了。

白:
“他死去多年的消息终于曝光了”“他死去多年的弟弟终于平反了”

我:

这个是经典 minimal pair 了
同位subcat

白:
“专家对这种方法的意见还是不靠谱。”
“还是”歧义了。

我:

“还是” 还不是问题,“对” 是个隐患。
【对 np 的 n】 ,np or pp?

谁的意见?
专家的。
什么意见?
对这种方法的意见
什么不靠谱?
意见不靠谱。
谈的 topic 是?
专家。

专家作为虚的 topic 和 实的 mod 都 decode 了,parser 也算兢兢业业了吧。
流氓耍到了这个境界,也可以立牌坊了,正所谓:功到雄奇即罪名,流氓耍尽成英雄。

【相关】

 

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

 

 

【李白之12:修正乔老爷的保守派自由派之辨】

白:
“他们把总裁开掉的人训了一顿。”“他们把总裁开掉的人吃了一顿。”

我:
总裁开掉的那些人吃了一顿。
把总裁开掉的那些人吃了一顿。

“他们把总裁开掉的人吃了一顿。”属于合法非法边缘,语感上别扭:“他们”与“人”coreference,很多人不接受。

白:
同位语

我:
觉得别扭。
这些句子真心难。
试一试 parser。别扭的说法出来了(第二句),顺溜的句法反而走歪了(第一句):

白:
吃的宾语相谐条件太明显不满足。

他们戴着大盖帽的人很强势
他们把子曰诗云挂在嘴边的人对民间俚语一点兴趣都没有。

我:

“他们戴着大盖帽的人很强势”这句稍微好一点,不过这类句子总体别扭是因为有更简约明了的说法在竞争:

他们戴着大盖帽的人很强势 –> 戴着大盖帽的人很强势
他们戴着大盖帽的那些人很强势 –> 戴着大盖帽的那些人很强势

这个“他们”不仅多此一举,而且平添理解困难。

白:
理解是不应该裁定是否别扭的
生成可以

我:
道理是。但是别扭决定了统计性弱,因此理解系统忽略它后果不严重,甚至总体更有利(减少了弄巧成拙的可能性)。可惜,我们目前坏在没有忽略它。因为 local SVO 很正,想忽略也不容易呢。即便想降低 recall,减少对罕见例子的鲁棒性,也不容易,除非费力刻意为之 。。。

白:
我是在探索方法论问题:不回头的matcher需要看多远。

我:
知道,这是”消息”类的延长线。不过这个同位复杂了,需要回头。不好办。弄巧成拙的可能很大。

白:
如果必须在一个阶段内将错就错,那么等trigger到来之际,强行上车的乘客挤掉之前在车上的哪个乘客,还会不会翻掉更早的盘。

代词相当于有个坑,虽然和谓词隔了一层,但毕竟和“信息”类不同。
非代词同位结构不能这样用。

我:
道理明白。
道理是道理。那什么是什么。

as expected,前一句虽然对了,对得不开心。歪打正着,这不是第一次遇到了。在非设计的成功里,设计者不可能开心。而这一路不好设计。

前句各就各位,一路通畅。正因为此,后者只好把“把”落到定语从句的 head N 身上,又因为“把”的句法强势,“。。。那些人”成了盘中餐。哈,荒诞不过如此,但parsing 的逻辑线条却是清晰的。

白:
这里有个逻辑顺序问题。“把”怎么摆布,是有余地的,“吃”做逻辑宾语的语义不相谐,却是没余地的。应该句法不到山穷水尽,语义不相谐的不要登场才是。

我:
这个说法实践中很容易把人带进坑的。
换句话说,白老师自己有一个路数,按照这个路数,这个说法没啥问题。可是 followers 如果不是那个路数,或不明白那类路数,把这个说法当原则去指导实践,九成以上就掉坑里了。比较容易 follow 而大面上不错的原则还是乔老爷的句法独立原则的修正:句法不到山穷水尽,语义相谐的不要登场才是。对比白老师原则:句法不到山穷水尽,语义不相谐的“不”要登场才是。

白:
实践中,语义不相谐又被采纳的基本是活用性质的修辞,它们都发生在“高确定性、低相谐度”那个区域。如果明明是活用性的修辞用法,但却发生在低确定性区域,只能证明句法本身出问题了。

我:
对啊。
“高确定性、低相谐度”那个区域是不小的一个区间。因此句法独立的做法也不是完全要推翻,适当使用还是有益的。

白:
@wei 这个乔老爷原则用在英语上。
汉语不灵。

我:
明白。但还是一个度的问题。
完全实行乔老爷,根本就没有语义相谐或不相谐的事儿,语义被句法踢得远远的,老死不相往来。Note 我的原则是对乔老爷的修正: 句法不到山穷水尽,语义相谐的不要登场才是。可见,在这个原则下,语义登场了,语义句法融合了。
白老师的原则也是融合,也是对乔老爷的修正或反叛。但一字之差,就是保守派和自由派之争。我的说法:作为原则,不到不得已不动用语义。不得不动用的话,动用相偕,而不是不相谐。这个说法是有一贯性的:(1)不到不得已不用语义,差不多就是让句法来主导,暂时不管谐不谐,这等于语义不谐但句法不错的已在网中,因此也就没有再查不相谐的必要了。毛姑姑,这样可以搞定英语的90%+,汉语的 80%+,那么剩下的句法搞不定的,句法出错的,就用语义相谐来细化(句法角色细化为逻辑语义:譬如 确定 agent 主语 vs instrument 主语)或修正(包括休眠唤醒)。这条路稳妥一些,至少感觉跌进坑的可能减少一些。

 

【相关】

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

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

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

【李白对话录之11:parser 的三省吾身】

【李白对话录之10:白老师的麻烦不是白老师的】

【李白对话录之九:语义破格的出口】

李白对话录之八:有语义落地直通车的parser才是核武器

【李白对话录之七:NLP 的 Components 及其关系】

【李白对话录之六:如何学习和处置“打了一拳”】

【李白对话录之五:你波你的波,我粒我的粒】

【李白对话录之四:RNN 与语言学算法】

【李白对话录之三:从“把手”谈起】

【李白隔空对话录之二:关于词类活用】

《李白对话录:关于纯语义系统》

中文处理

Parsing

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

《朝华午拾》总目录

 

【李白对话录之11:parser 的三省吾身】

我:
白老师有关于深度分析的名言曰:

parser三省吾身:有坑填乎?有盘翻乎?有subcat相谐乎?

填坑乃细线条句法,翻盘为语义重新计算,subcat 相谐引入本体常识。

宋老师提出的例子很有意思,属于语义翻盘:

Jogger’s nipple happens when a runner’s shirt rubs against his exposed chest.
google译为 慢跑者的乳头发生在跑步者的衬衫摩擦他暴露的胸部时。

宋老师说:其实,”Jogger’s nipple“应该译成“ 慢跑者乳头”,具有专指意义,可以看作临床医学的术语。汉语中,“慢跑者乳头”和“慢跑者的乳头”一字之差,决定了前者是术语,后者为普通的短语。但是,如果说“慢跑者乳头会被擦伤”时,只能理解成(慢跑者(乳头 会被擦伤))

这个一字之差 很合理啊。这与 hidden ambigity 同,是 context 强拆词典词。为了维持词典的优先或默认地位,这种强拆就是我们讨论过的休眠唤醒问题。这与 “难过” sad 被唤醒为 difficult to cross 是一个套路。可以用词驱动的方式 局部重新洗牌。

按照 “难过” 的处理思路 此例不难。大体是第一遍粗线条parsing的时候 不check语义限制条件,所以得出 这种疾病 会被擦伤 的逻辑动宾关系,大面上的 parse 是不错的,尽管不 make sense 因为疾病 与 擦伤 不搭。到后面的模块 或者是语义落地的模块,我们可以再做局部的 parsing 调整。正因为它有两种可能性,才使得词驱动的反悔策略可以成功。这个策略的成功已经在我的sentiment语义落地模块得到应用和证实。我专门有一篇博文,详细解说这种局部parsing反悔而使得语义正确落地,否则“难过”就是主观的负面情绪,可我的系统最终结论为客观的困难。“这条小河很难过” 于是不同于 “这个小孩很难过”。sentiment系统做到这个程度 没听说过第二家,但的的确确是可行的。它基于的机制就是与白老师讨论过好几回的休眠唤醒,而不是 nondeterministic 带着瓶瓶罐罐跑。原则上 只要是可以词驱动的这类现象 都可以做。

白:
方法论上,就是纵向不确定性(词汇歧义)和横向不确定性(填坑歧义)不要搅在一起。先撇开结构(但不排除非结构的各种信息包括subcat的使用)确定无歧义的词汇(WSD),再聚焦横向不确定性。当纵向自己冒出更加相谐的其他候选或者横向遭遇结构性不顺或者二者兼而有之的时候,启动WSD翻盘,即休眠唤醒。这里的潜台词是,随着填坑的进行,WSD一直在继续,类似阈下联想。但这种继续,只是横向填坑的结果单方面抛给纵向WSD,但是不到翻盘启动,WSD只不过瞎联想而已,并不反作用于横向填坑。

我:
白老师是哲学家 善于总结和抽象。

白:
段子就是这么产生的
包袱就是这么抖的
直到WSD的最后一根稻草打破僵局,启动翻盘

我:
人也是这么个理解过程,叫 恍然大悟。恍然前 其实在标配休眠。
所以说 以前很多人认为 hidden ambiguity 是中文分词的死穴、无解,那是因为误把分词当成了一个独立的死模块。 明明是 context parsing 的催眠唤醒的任务,硬要怪罪和强加给分词。现在清楚了 这个问题有解,但解不必在分词层面,解隐藏在词驱动规则里面,不到一定的时候 不 activate。这与以前的 exhaustive parsing 的方案虽然原理都是借助 parsing 之力,但却适应了 real life 系统多层模块化开发的需求。(我在博士论文中提过用 chart parsing 通过 exhaustive candidates 解决一切切词任务,包括 hidden ambiguity 的,是把切词看成 parsing 的一个有机成分,这个解决方案理论上可行,但难以 scale up。)

白:
parser三省吾身:有坑填乎?有盘翻乎?有subcat相谐乎?

我:
笑喷。差点喷在手机屏幕上

我:
说 subcat 是命根子 等价于说教科书上的 cat(POS)为基础的 grammar 太粗线条,很误导,只是 toy,无法对付真实语料。subcat 与词典主义是一致的。

白:
两个粒度
没得可选时,pos很给力。选择太多时,pos就是累赘了。

我:
hierarchy: literal — subcat — cat
subcat includes sub-sub-cat and hownet taxonomy

白:
沿上下位链条有一个统计分布,并不是任何一个节点的传播强度都相同。
非常有意思的一个问题

比如说到“猴子”,可能其典型的上位词是“灵长类”,而“哺乳动物”“动物”“生物”这些上位词就不那么典型。也不一定就是直接上位最典型。比如“豹子”,可能“猫科”并不典型,而“野兽”更加典型。如果要做无监督学习,典型性分布是一个必须解决的问题。典型性还会“条件化”。比如上下文中有“吃”,则“动物”上位就会强化。说“产卵”,则卵生上位会强化。

这样才能把词典中的subcat标签如所愿地变成非标注语料的自动标签。也就是说,实现正确的subcat embedding, subcat embedding是比word embedding意义重大很多的一件事,难度也不在一个数量级上。如果subcat embedding成功,意味着从此告别苦力,进入自动化标注时代。

我:
subcats (sets or clusters of words from any angles) or taxonomy 链条中的所谓典型 nodes,说到底,是作为语言特征,它是不是有区别性。

早早年做 MT 有个例子很有意思。说英语的 down 有一个用法和义项,与 along 同,翻译成汉语是 “沿着”。需要什么条件才翻译成 沿着 呢?研究了 data 发现,原来是它后面的名词都有一个特征,可以叫做“线条性”,于是这个特征就成为语言使用和理解中有意义的 feature 了:

down the street
down the line
down the pipe
down the corridor
etc

down + NP【线条性】 –》 沿着 NP

那么 along 呢? along 基本没有歧义,于是就不需要这个条件了:

along + NP –》 沿着 NP

生物学上的 taxonomy 不一定具有语言学上的区别性特征,其中的有的 nodes 典型,具有语言意义,有的 nodes 就没有语言学意义。人、鬼、神、妖 很不同的。但是语言使用上,其搭配关系大同小异。

白:
所以闭门造taxonomy是不管用的
标签造出来就是为了区别的
如果不知道谁对区别敏感,就吃力不讨好

我:
完全从大数据去 clustering,也不好说结果就好使;闭门造车拍脑袋也容易偏差。最好还是二者的某种结合。

回到那个【线条性】的区别性feature来。一旦总结出来,我们就可以穷尽词典,根据这个特征给每一个具有线条性的名词标注。从此就可以说 down 的这个用法,我们基本搞定了,没有 sparse data 的顾虑了。如果没有总结出这个 feature,并在词典里面穷尽它,SMT 和 NMT 能自己学出这个 feature 并对 sparse data 免疫吗?它能够从 down the street 举一反三到 down the line 吗?—- 假如后者是 sparse data,训练数据里面没见的话。

白:
等会儿,两个问题要分开。词典标“线条性”特征是一件事,写不写规则是另一件事。用学习的方式,学down 和“线条性”subcat之间的搭配,机器学习方法是没问题的。
走半步,做词典里的subcat标注,另半步交给机器,这很正常。

我:
有理。不过,难点在发现“线条性”是一个值得标注的东西。假设人已经词典标注了,机器学习出这种条件,是自然的。还有一种就是不管3721,把几万个能想到的 features 都标注上,然后让学习自动筛选区别性特征,选出 top 1000 features 其他的舍去。然后,词典维护的负担就大大减轻了,只要把注意力集中在 1000 个最具区别性的概念上就可以了。其实 1000 以外的 features 也没啥概括性了,经验告诉我们舍弃没问题。反正后面还有 literal 做底。literal 做底的就是我们说的强搭配。

白:
语言学家灵感所至,想出一个“线条性”来,当然是一个好的启发。但是对于学习来说,有好的启发就很好了,不需要语言学家干脏活累活调规则。所有工作集中到词典,剩下的交给机器。

我:
HowNet 和 WordNet 里面都有万以上的 features,我们都知道者万以上的 features 其实只有千这个量级的子集最有意义。具体是哪些有意义,目前是拍脑袋。这个选取工作应该是机器来做的。

白:
作用还不仅此。
有时一词多义,不是所有义项都有“线条性”含义,比如thread作为“线程”解,其“线条性”就很弱。string当弦乐器解的时候其实已经没有线条性。所以一个外部条件,可以只和词典里一部分义项勾搭,把另一些义项冷落在一边,形成事实上的WSD,就通过subcat做。WSD和用搭配筛选固化结构,一石二鸟。义项支持结构,结构支持义项,形成正反馈。环形支持,不是单边支持。

我:
“WSD和用搭配筛选固化结构,一石二鸟。”
这就是我以前说过的,为什么 IE 可以绕过 WSD,因为 parse 基础上的 IE 语义落地根本不需要独立的 WSD 模块作为支持,因为 WSD 在 IE 过程中自然实现了。当然前提是 deep parsing 支持的 IE,而不是主流那种没有结构支持的 IE。一般而言,一个词有多义不可怕,可怕的是多义没有结构去制约。如果对于最终的语义落地,总是以 parsing 作为跳板的话,这种多义的困扰就自然消失了。

白:
当然,也少不了反悔
有subcat干扰的反悔总是比较艰难的。只需三省吾身。

我:
实际上,IE 落地不仅可以容忍词多义(WSD),也可以容忍结构歧义。因为到了 IE 的份上,domain 已经聚焦到要落地的语义。这时候,词驱动因为聚焦变得可行。因为词驱动变得对于歧义可以容忍而不失精度,这就是 deep parsing 是语义落地核武器的奥秘所在。

自然语言最让人困扰的问题是歧义性。恰恰在这个最困扰的地方,parsing + IE聚焦 使得对于歧义可以免疫的词驱动的 approach 变得切实可行。 不少人因为只知道 IE 是学出来的,不需要句法和结构,无法理解 parsing 的核武器性质。结果是 今天的 IE 与明天的 IE 被看成是两个独立的任务,具有各自的知识瓶颈。但在 parsing + IE 的架构里面,这就不再是独立的任务了,而是80%+ 相交的任务了。说白了就是,结构不够(结构歧义)词来弥补,词不够(歧义)结构来制约。要恰好赶上词的多义与结构的多义在给定的IE语义落地任务中重合,并且这种重合影响到落地的质量,很不容易呢。换句话说,如果是两条腿走路,想出错都难,想质量不高都不容易。一条腿是结构,哪怕是歧义的结构。一条腿是词(nodes),哪怕是歧义的词(当然这词所代表的不仅仅是词,还有其上的 ontology)。两条腿走路踏空掉悬崖去的例子,学者研究过,不能说没有,但真实应用中完全不足为虑。

我的黄学长(Wilks 的门生黄秀铭)在他的 Prolog MT 的博士论文中特地举了这个两脚踏空的倒霉案例,为了彰显 Prolog 回溯消歧的本领:tough coach, 第一条腿是结构:定中关系,很幸运这条腿本身没有结构歧义。第二条腿是词义,两边都是常用词,义项比较多。结果是,加上了结构以后,还留下了两个语义相谐(ontologically appropriate)的可能性,不能完全WSD消歧:  1. 严厉的教练;2. 牢固的马车。 原则上在这个 local 结构的 context 里面,这个罕见的多义案例是无解的,需要更大的上下文来消歧。要我说,拉倒吧,难得一错,认栽吧,否则不像是人造的 intelligence 呢。

白:
大数据说谁就是谁了
哪有那么纠结

我:
那倒是,不就是个 bigram 嘛。类似的例子如果远距离,不知道大数据会不会稀疏到不能定夺。譬如:The coach that has been there for years is known to be really tough.

白:
我理解WSD和分析器使用语义中间件是个动态递进的过程:随着分析的进展,原来远距离的会拉近,原来WSD的结论也会翻盘。

【相关】

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

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

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

 

【李白对话录系列】

中文处理

Parsing

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

《朝华午拾》总目录

 

 

【研发心得:sentiment 的诡异】

我:
domain 很有意思,今天 study 客服的数据,发现我们现系统 tag “loyal customer” as positive,但实际上几乎总是 negative 抱怨。因为很多人(包括我自己,譬如跟电话公司打交道的时候)的抱怨总是这样开始:
I am your loyal customer for n years, blah blah [complaints: how can u treat me like that]

还有一些有意思的发现:new 这个词并不是啥褒义词,第一即便原义有一丝褒,但太弱,用得也太多。更重要的是,这个词最常出现在 promotion 的广告里面。客户情报里面很少用它表示褒义。那么 brand-new 呢?似乎稍微褒一些,但也很灰色,放过它可能更好。还有一个词 叫 available,以前以为是好话,其实用起来很 tricky:说 no Pepsi available, 不是说的 Pepsi 的坏话,很可能是说的好话 ,抱怨的是这么好的东西怎么没提供呢。诸如此类,不看 data 不知道。

白:
这么好的数据,不神经,糟蹋了

我:
大而言之,语义是泥坑;具体到 sentiment,几乎就是粪坑了。跳进去不仅可能被淹死,还会被呛死。

我等着神经在shentiment上来一个绝活。

目前为止,对手的 sentiment 全部用的学习,用没用 神经 就不知道了,但他们的 data quality 实在不敢恭维。

还有就是: I would kill for Pepsi,这样的说法是强烈的褒义:NND 为了 Pepsi 让我杀人都可以。这个倒不难逮住,无论是 pattern 去拿它,还是数据够了去训练出来它。

白:
可怜的米国人

我:
记得还有这么一句: Hell no man, pepsi or die. 这是对 pepsi 的极度褒扬:没 Pepsi 毋宁死(与自由同价: 不自由 毋宁死)宋柔:

宋:
@wei 可见,要做情感分析,对于所处理的语言必须有相当强的语感。国内的人做英语的情感分析恐怕不容易。

我:
昨天说了 sentiment data 的貌似诡异的事儿,明明说的是正面的词“loyal customer”,却几乎总是抱怨,至少是客服领域:原来人在表达情绪的时候,不仅会正话反说,而且还会先退一步。

今天再说一个案例:care about(关心) 一般认为是正面的动词,甚至关心钱财,从正面角度也可以说明这个企业懂得为 stake holders 创造价值,可能是一个兢兢业业的好企业吧。但是在客服领域,绝大多数场合,这却是抱怨的开始。

“All AT&T cares about is money. Worst service ever.”
AT&T is one of the most GREEDY companies I have ever saw. All they care about is the $$$$$.
“there aledged customer service is beyond ridiculous, they seem to care more about being paid than helping there customers”

等于说:你他妈只认钱,贪得无厌。

顺便一提,我也是 AT&T 很多年的“loyal”customer,完全认同上面的抱怨。看这家公司的账单,那真是跟天书一样,变着法儿跟你要钱。昨天来账单,我的电视涨了近30元,原来是 promotion 到期了,我就 call 他们,说,我们基本不看电视,时间和视屏都耗在网上了,不过是多年的习惯而已,你怎么一个月 charge 我 80 多刀,比互联网的 70 多刀的 charge 还大?你不给 discount,我就掐了电视算了。不过真要掐电视,领导怕不同意,如今的乐视盒子小米盒子啥的,节目虽多,还是不那么灵光,有时连不上。

结果客服说,现下没有新的 promotion 可以提供 discount,不过不久会有。说你要是电视少看,那就降一级吧,从 TV-family 降级为 TV-basic,那个才 19 块钱,来 20多个频道,你们也该够了。于是,我就降级了,然后一查看,说是TV 19 块,其实是 50 多块。什么 HD 费10快,receiver 费 15 块,录像费,等等等等。这种企业真该死。可是美国电信企业,好人不多,也就懒得挪动了。互联网+++ 再发达一些,这 cable TV 就该自生自灭了。

【相关】

舆情挖掘

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

《朝华午拾》总目录

【语义计算:没有语言学的计算语言学,NLP的亚健康现状】

我:
大而言之,实词(对应概念)之间,只要发生句法关系,逻辑语义上就有个说法。
作为总原则去操作,句法标签总带着一个逻辑语义标签的做法,是有益无害的(最多是逻辑语义那边不增加新的信息,给个 dummy 的逻辑符号,assuming 句法标签对于语义落地足够了)。
但反过来,我们都知道,有不少逻辑语义是建立在没有句法直接联系的实词之间的 所谓 hidden args, 语义中间件的主要任务就是挖掘出这些 hidden 的逻辑语义关系来。
还有一个突出的区别:对于句法 dependency,大体上要遵循一个老子的原则。而对于逻辑 dependency,这一条就废了:一个儿子有多个老子,对于逻辑是天经地义。因此这树形图也就变得诡异了。

白:
定语从句就是多个老子,用坑的话说,就是填一送一

我:
定语从句的老子儿子相互循环,直接对抗 acyclic 的天条,那是 DG(Dependency Grammar) 的 formalism 引起的。DG 有一万个好,在这一点上还是露出了皮袍下面的“小”来。不过虽然君臣父子乱套,看上去挺窝心的,实际操作使用上也无大碍。要是单单为了这一点就采纳了叠床架屋的短语结构,不值得。

白:
我不认为树或者DAG是动不得的天条。语义那头已经是这样了,句法why not

我:
我无异议。不过多数语言学家和逻辑学家看不惯乱伦。

白:
而且我现在的填坑体系里根本就没有树。天生允许多爹,允许loop

我:
总得有个数据结构 某种 internal representation 作为 output。我的老印搭档在实现这个 graph 的时候,遇到 loop,以前是 error,系统罢工。后来改成 warning。实践中我发现,这个 warning 对于 debug 还是有用的。遇到定语从句这种 loop by design 就忽略警告。但很多时候,那个警告帮助指出了多层规则系统的不合理之处。人的脑子蛮可怜,再有经验的语言学家,也看不过三步。因此在编码规则的时候,容易陷入局部思维。看到 warning 时候“回溯”,往往恍然大悟,原来全局上看,有些东西是不合理的,需要协调。

biao:
哥儿几个在这死磕语法似乎很难看到什么时候是出头之日。

liang:
据说,我们都是乘着“计算”这趟历史快车。跟着时代走。

白:
做股票可不是这样说哦,都是在讲“抄底”。

这要回归到一个老问题,状态机的学习。从非确定有限状态自动机到RNN只有半步之遥。从正则表达式直接编译到RNN的路径是畅通的。所以,规则和学习两条路都可以到达RNN。说得清的用规则,说不清的用学习,谁也不碍着谁。

我:
有数据的用学习 缺乏数据的用规则。

另外 说语法没有出头之日 是小看了咱语言学家。等到 dl 先打败我的 parser 再说不迟。想起奥巴马与希拉里当年党内初选,希拉里老说奥巴马做副手不赖,可以与她搭档跟共和党竞争。奥巴马笑说,你一路输在我后面,说什么呢?当然,这些与潮流相左的话没人当真。一律当成妄人或民科的鼓噪而已。好在在应用现场,最终还是系统说话。

白:
对标注来说,上量,和自洽,是同一个问题的两面。

我:
我信服dl的power 但文本标注和domain化的挑战 貌似没看到根本的突破。知识瓶颈 kills a cat。

白:
对我来说不存在两条路线竞赛不竞赛的问题。那个东西该长什么样是更重要的,这点一旦定下来,怎么弄成那个样都行。比如说,肯定不是树。所以树库再庞大也那个。

我:
端对端的理念是不要那个:不要结构 不要语言学。

白:
那只是表象 只不过把问题转化为中间黑盒子长什么样而已。

我:
问题是 结构的目的 是帮助克服domain化的挑战。没有结构 每一个nlp的应用就是一个独立的问题,就需要无止境的带标数据,到哪里去克服这个知识瓶颈呢?一千个应用需要一千种带标大数据。在我这里不需要 因为结构化了;我只要少量的数据样本 让我知道任务的定义即可。专家天生懂得举一反n,谁叫我们是人呢,linguists,domain specialists ……

白:
这真的是表象
因为黑盒子不是仅仅学习可以得到,对规则进行编译一样可以得到。

张:
李白的discourse 省略太多,求Wei的分析

白:
所以关键是黑盒子本质上有没有容纳结构的能力。黑盒子长的模样不对,容纳结构就不力。之所以一任务一标注一训练,是因为不了解黑盒子容纳结构的通用能力。
也是因为这样拆分有利于持续发论文

wang:
白老师今天高见,“句法关系不是树结构”,领教!但是常规大部分句子,用树结构表示还是可以表达清晰的,除非您列出的那些刁钻的句子。我认为那是语言学家功课还没有做好,这些看似异类的句子(其实是现实合法句),还没有语言学家的事先分类归属。我现在的观点(也许以后会改变),句法处理过程中可以不是树结构,但是最终结果还是树,而不能出现环。

我:
无所谓啦。
社会网络里 任何人都可能与任何人发生关系 何况语词?

白:
环必然会出现
定语从句在汉语中是个并非偏门的表达方式

我:
他喜欢的女孩
什么女孩? — 他喜欢的女孩
他喜欢谁? — 喜欢女孩

白:
这个环形结构的思想大约在1998年就形成了。当时是在范畴语法的框架内表述的。后来一直想把范畴语法发展成可用的mechanism,遇到诸多困难。最近几年才转向,把当时的一些精华嫁接到依存语法中来,弄了个不伦不类没名没姓的坑论。@梁 @赵 都有涉及这项工作。看到伟哥也果断打破树结构,拥抱俩爹,非常欣慰!董老师的框架,箭头方向和我一致:萝卜指向坑,修饰语指向被修饰语。伟哥的方向,随依存体系,反过来的。伟哥省略了小词。而在我的坑论里面,小词负载很重要的结构,“的”是构成定语从句环路的最核心节点。不仅“的”,像“地”、“得”之类也负载结构,也挖坑。

wang:
看来白老师这是深酿多年的酒了哈!希望这理论能取个好听的名字。更希望早日形成系统,发挥应有力量。

我:
【坑论】,不蛮好?
环形不明白的 问利鹏 。他自从解雇了小蜜 就聘了自家领导做手下,并与新手下约法三章:一切服从领导。

我:
说到填坑,HPSG 里面有个说法:
对于 args,当然是 head 挖坑(subcat),期待(expect)那些 args 填坑。是 head 找 args。但对于 mods,一切反过来,不是 head 找 mods,而是 mod 去找 head。
所以对于词例化的 HPSG,修饰语的词也挖坑 挖的是让 head 去填的坑。

刘:
为什么mod不能做head而把动词作为arg?

我:
但实际上我自己在 parsing 的操作中,两条路线都走过:
做过 head 去找 mods,大不了多几层,或来个循环。也做过 mod 去找 head。

mod 做 head 从语义表达上,是本末倒置吧,至少人看着不舒服。真要做,也可以做,可是 mods 是数量不定的,除非是短语结构,一层一层嵌套上来,让最远的 mod 做总 head。否则 怎么表达多 mods 对于同一个 vp 的填坑要求呢?能想到的办法就是让同一个 vp 或 s 可以有 n 个 mods 的老子(说的是依存关系的表达)。总之,一般认为还是 谓词 做 head,既做 args 的 head 构成 arg structure 作为语义核心,也做 mods 的 head,表达边缘的语义(修饰限定)。

白:
这里有模糊地带。
比如,马上种树,必然种树,肯定种树,会种树。
副词和情态动词的边界 情态动词就被认为是动词填情态动词的坑

范畴语法就是mod做head,比如形容词是n/n,你喂给它一个n,它吐给你一个经过修饰了的n。

副词就被认为是给核心动词戴帽子。我曾经坚持了很长时间喂一个吐一个的思路处理修饰词,后来证明有害无益。后来把方向扭过来了。

我:
喂一个吐一个的做法 早早年我导师刘老师就是这么做的。所谓名词组抱团(就是我们说的 chunking),就是从head N 开始往左一个一个的吃。情态动词与副词 有类似也有不同。说情态动词是 head 后面的动词是 dependent,这种处理有其优点。主要是情态动词与主语往往有一致关系,而且也常带有谓语的时体信息
但副词不同,让副词做 head 就有些反客为主了。

白:
这个地方是范畴语法和依存语法的重大差别。

我:
情态动词与后面动词,谁主谁副,很有说头。从句法上,情态动词做主,因为上述理由,最合适。从语义上(谓词的ontology),当然是后面的动词,因为情态动词是功能词,反映的是语法意义,概念意义很虚。当主语与谓语需要check语法上的一致关系的时候, 应该 check 情态动词。而当主语与谓语需要 check 语义一致关系(最典型的是主谓搭配关系)的时候,就必须 check 后面的动词。这是两个矛盾的要求。一般都在一个体系内部协调解决,确保情态动词与后面动词的 acessibility,适应不同的需求。

有时候想,白老师这个群里交流的这些体会、经验、理论和实践,算不算 CL 和 NLP 方面的学问呢?要说是学问吧,好像这种学问没处发表。(语言学的刊物那边或许有一些 room,但掌管语言学的学者,对语义计算好奇多于了解和欣赏。)计算语言学这边吧,一律的学习啊学习,或者深度啊神经,根本没人拿这个学问当回事儿,或者也听不懂。

这真是一个有意思的怪象。
所以我说岂止是隔行如隔山 同行也隔山。锤子不同,虽然做的是同一个事儿,也还是隔锤如隔山。白老师这样两边都不隔的,绝对是熊猫。

这种亚健康状态,终有一天会被领域认识到。

【相关】

科学网—计算语言学的尴尬

【语义计算:从神经机器翻译谈起】

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

【科普随笔:NLP主流最大的偏见,规则系统的手工性】

【NLP主流的反思:Church – 钟摆摆得太远(1):历史回顾】

【Church – 钟摆摆得太远(5):现状与结论】

中文处理

Parsing

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

《朝华午拾》总目录

【从V个P到抓取邮电地址看 clear patterns 如何抵御 sparse data】

前几天的例子:V个P (挣个毛、挣个求、挣个妹,等)
P={P,屁,头,鸟,吊,jiba,妹,鬼,……}
可以看到,小数据为依据的规则系统,有时候比大数据训练的系统,可能更加有效:更精准,更能对抗 sparse data 从而提高 recall(具有 clear patterns 性质的语言现象,可以一网打尽,完全没有 sparse data 的困扰),模拟语言现象更加直接,因此也更加容易debug和维护。

在 IE 历史上,直到 MUC-7,当时表现最牛的 NE 系统 NetOwl 就是基于 pattern rules 的,几乎所有的统计对手都拿它作为拼杀的对象。NetOwl 从 SRA spinoff 出去想以 NE 为技术基础,进行商业运作,一开始在分类广告业拿下了一些业务,终究不能持续赚钱,后来被 SRA 收回,逐渐销声匿迹了。后来追随潮流,系统里面也混杂了机器学习的模块。

从此在学界就再也见不到规则系统了,哪怕是对于规则非常适用的某些 NE 任务:譬如 时间,数量结构,等。可见潮流之厉害,貌似所向披靡。但事物的本质和本性并没有改变,对于自然语言中的具有 clear patterns 的现象,依据小数据,经过人脑的归纳,行数据驱动去开发规则系统,仍然是如上述高效而高质量:工业界默默实行的人、团队和系统并不鲜见,只不过大家心知肚明,只做不说而已。

相对应,发动群众去标注大数据,然后用大数据训练一个系统如何?这是主流的默认、honored 的方法。如果数据足够大,其质量的确可以接近或匹敌规则系统。当数据量不理想的时候,就捉襟见肘了: 或者 underkill (由于 sparse data,漏掉很多统计性稍弱的变体)伤害 recall,或者 overkill (smoothing 过度,把不该抓的现象抓进),影响了precision。

什么叫有 clear pattern 的语言现象呢?举个例子,抓取邮政地址,这个工作我自己作为一个 fun project 做过。美国地址大体是 门牌、街道、城市、州、邮政编码,最后是国名,patterns 相当地 clear,可你可能无法想象上述 pattern 的构件变体之多,有些变体绝对是 long tails,再大的数据量也难涵盖其组合爆炸的本性。

如果你收集了一个巨大的美国地址库作为训练集(大数据),你完全可以设计一个学习系统来做这件事儿。而另一边,虽然也是 data driven,但只需要小数据样本,然后经过人的大脑去举一反三进行开发,最后到 raw data 的大数据中去验证反馈。可以拍胸脯的是,后一种办法做出来的系统绝对是高质量易维护,几乎天生地具有 sparse data 的免疫性。

云:
@wei , 地址parsing属于reg expressions就能搞定的事,我们大数据分析经常要做的事。这个和NLP没有多大的关系。 这是一个context free的grammer, 相对简单。

我: finite state, 是 regex 就搞定,但不少人还是训练。这是其一。
其二是,自然语言复杂性比起相对简单的地址识别,不过是多了几层而已。都可以 finite.  譬如,subcat 说需要 主语、宾语,还要一个宾语补足语,这与地址说需要一个街名、城市名和州名,也差不多。

云:
不一样的,
1. 街名
2. 城市
3. 州名
各自独立,互不依赖。
而主谓宾相互有上下文关系

我:
比喻都是跛脚的。anyway 二者都是 finite 装置可以搞定。地址由于其组件的独立性,利用 macros 调用,可以一层搞定,也可以不利用 macros 多层搞定。NL 通常要多层 finite 装置搞定。

其实我要说的是,自然语言看上去千丝万缕,复杂无比,但本性上、大面上是背后具有 clear patterns 的 monster。为什么自然语言有 clear patterns (所谓句法)在背后?乔姆斯基归结为 UG,是从娘胎里带出来的。有意思的是,语言学家看自然语言,看到的是章法,甭管这个章法多么地扑朔迷离。而没多少语言学训练的NLP工作者,往往看到的是一团纠缠不清的迷雾。

 

【相关】

中文处理

Parsing

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

《朝华午拾》总目录

【从IBM沃森平台的云服务谈AI热门中的热门 bots】

我:
哥仨老革命在去 IBM 的 traffic 中 去大名鼎鼎的沃森(Watson)系统探秘

洪:
讲者是这位印度籍女士:http://researcher.watson.ibm.com/researcher/view.php?person=us-vibha.sinha:

郭:
比较有意思的是她后面讲的三点:

1. LSTM based intent recognition and entity extraction

2. “tone” recognition
这里tone指的是从一句话(书面语)反应出的说话人的喜怒哀乐和处事方式等

3. personality recognition
主要基于心理学的分类,用200到2000条tweets训练


她重点强调的是,通过增加tone和personality的识别,人机对话可以有更高的可接受度。

我:
唐老师 诸位 汇报一下昨天的听闻。上面 郭老师也总结了几条,很好。我再说几点。
话说三位老革命慕名而去,这个 meet-up 一共才来了20几位听众吧 大概湾区此类活动甚多 marketing 不够的话 也难。据说北京的 AI 沙龙,弄个花哨一点的题目 往往门庭若市。

1. 没有什么 surprises 但参加沙龙的好处是可以问问题和可以听别人问问题,而主讲人常常在回答的时候给出一些书面没有的数据和细节。否则的话,各种资料都在网上(最后的 slide 给了链接),要写利人似的调研报告,只要不怕苦,有的是资料。

听讲的另一个好处是,主讲人事先已经组织好材料讲解,可以快速了解一个项目的概貌。

2. 特地替唐老师问了他钟情的 Prolog,问你们有用吗,在什么模块用。主讲人说,没有用。我说有报道说有用到。她说,她没听说,至少在她主讲的已经产品化的这个沃森 chatbot 的组建 toolkit 里面没有 Prolog。当然她不排除某个小组或个人 在沃森的某个项目或模块用到。IBM 对 AI 的投入增大,在沃森的名号下的各种研究项目和小组很多。

马:
我问过了IBM中国的,在沃森参加电视节目版本中没有用prolog,但是后续的版本中,确实用到了prolog

陈:
它是很多services构成,用不会奇怪,尤其是某些既有系统

我:

3. 现在不少巨头都在 offer 这样的 toolkit,问微软 offer 的 cortana 的 toolkit 与你们沃森的这套有啥不同。回答是,非常类似,不过她自认为沃森质量更好。亚马逊也有类似的 offer。

所以回来路上,我们就谈到这个 bots 遍地开花的场景。郭老师说,现如今谁要想做一个领域内的 bot,或自己的 app 做一个 bot 接口,根本就不需要编程。只要准备好领域的 experts,把数据准备好,用这些巨头的工具箱就可以构建一个出来。也一样可以 deploy 到 messenger 或嵌入其他场景,这几乎是一条龙的云服务。

当然 用这些服务是要交钱的,但主讲人说很便宜很便宜的,郭兄说,真用上了,其实也不便宜。便宜与否放一边,至少现如今,bots 的门槛很低,需要的不是软件人才,而是领域数据的人。于是,我看到一种前景,以前毕业即失业的语言学家、图书馆业人士,将来可能成为 AI 的主力,只有对数据和细节敏感的人,最终才是 AI 接口的血肉构筑者,反正架构是现成通用的。这个细想想是有道理的。这是沃森 API calls 的价格。

我:
这就回到我们以前议论过的话题。AI 创业,如果做平台或工具箱,初创公司怎么敌得过巨头呢?我觉得几乎是死路。

大而言之 做平台和工具箱创业的,历史上就没见过什么成功案例(不排除做了被收购那种,那也是“成功”,如果你的技术有幸被巨头看中:其实昨晚介绍的沃森系统的一个重要组件 AlchomyLanguage 就是收购的,洪爷知道收购的来路和细节)。

白:
麦当劳玩法,方便,质量可控,但绝非美食,虽然是“美”食。

我:
不错,这些巨头的 offerring 都是麦当劳式的流程。创业的空间,从工具角度,可以是中华料理的配方辅助工具之类。不过,还是那句话,最好绕过平台本身创业的思维,而是用巨头的工具或者自家建造匕首去做领域的 AI,这样的创业应该具有更大的空间和更多的可能性。

对于 NLP(AI之一种) 我写过 n 篇博文强调,所有的 offshelf 的平台和toolkit(譬如 历史悠久的GATE),甚至一个小插件(譬如 Brill Tagger or some Chinese word segmenter)都不好用。可以 prototyping 但如果稍微有点长期观点 要建一个大规模的NLP的应用,还是一切自家建造为好。当然,自家建造的门槛很高,多数人造不起,也没这个 architect 来指挥。但最终是,自家建造的胜出,从质量上说(质量包括速度、鲁棒性、精度广度、领域的可适应性等关键综合指标)。

巨头的工具箱的产品 offers 一开始也不赚钱,但他们的研发积累已经做了,且还在不断投入,不产品化成工具箱不是傻瓜吗,赚多少算多少。如果真到了AI bots 遍地开花的时候,他们凭借巨大的平台优势,赚钱也是可能的。小公司这条路没门吧。如果你的 offer 的确 unique,譬如是中华料理,譬如是伟哥的 parsing,你可能会吸引一批使用者。但想赚钱必须有规模,而 component tech 或平台工具之类,在小公司的环境中,是成不了规模的。所以不要想赚钱的事儿。

赚钱靠的是产品,而不是工具,这是AI创业铁律。

当然,通过平台或工具打出影响,做 marketing,曲线救国创业,另当别论。
回到 meet-up:

4. bots 构建的核心当然是 conversations 的训练工具。IBM沃森的工具用的是深度神经。

对于 bots,input 是确定的,就是用 bots 的人的输入。自然语言的语音也好 文字也好,语音反正也要转化为文字 所以我们面对的就是人机接口中的“人话”,理论上无止境 千变万化。

bots 的 output 呢?

在目前的框架里,在绝大多数实际场景,这个 output 都是以极为有限的集合
最典型的案例是为 apps(天气、股票、时间之类) 做 bots 作为 apps 的人机接口,
其 output 就是 app 里面的 commands 集合。于是 bot 产品定义为从无限到有限的映射,这是一个典型的分类场景。于是沃森提供这个深度学习为基础的工具帮助你训练你所需要的 classifiers,这是标准做法 无甚新意。

数据越多,分类质量越好。千变万化的死敌是稀疏数据。好在对于 bots,数据的收集会是一个边使用边加强的过程。如果你的 bots 开始有用户,你就形成了正循环,数据源源而来,你不断打磨、训练,这些都是可以 streamline 的流水作业,就越来越好。Siri 如此,Echo 也如此。

白:
分类本身是不带参数的,而bots的应对必须是带参数的,这是硬伤。
拿分类来做对话是看得到天花板的。

我:
I cannot agree more :=)

这里其实是有历史渊源的。IBM 做问答,一直是把问题简化为分类。18 年前我们在第一次 QA 竞赛(TREC-8)中交流 就是如此,这么多年这个核心做法一直不变。当时我们的QA成绩最好,得分66%,沃森的系统印象是40%左右,他们的组长就追在后面问,我们思路差不多呀,都是 question intents(我们叫 asking points,比多数 intents 其实更聚焦),外加 Named Entity 的support。我说我们还用到了语言结构啊。

直到今天他们仍然是没有句法分析,更甭提深度分析。他们当年的 QA 就是基于两点:
1. 问句分类:试图了解 intents;2. NE。有了这两条,通过 keywords 检索作为 context,在大数据中寻找答案,对于 factoid questions 是不难的(见【立委科普:问答系统的前生今世】)。这就是沃森打败人类的基本原理,一点也不奥秘,从来没有根本改变。现在这一套继续体现在其 bots 工具箱 offering 里面。

洪:

昨晚Watson讲座听,
今早广告已跟进。
IBM可真下本,
今天我试Bluemix云。

我:
2.  因此 conversations 训练,其核心就是两条:一个是 intents classification (这个 intents 是根据 output 的需求来定义的),一个 NE,不过 NE 是他们已经训练好的模块(NE有一定的domain独立性),用户只是做一些微调和增强而已。

顺便插一句,这几天一直在想,AI 现在的主打就是深度神经,所有的希望都寄托在神经上。但无论怎么神经,都不改 supervised learning 的本性:所以,我的问题是:你怎么克服缺乏带标大数据的知识瓶颈?

ok 你把机器翻译玩转了。因为 MT 有几乎无限的 “自然” 带标数据(其实也不是自然了,也是人工,幸运的是这些人力是历史的积累,是人类翻译活动的副产品,是不需要开发者花钱的 free ride)。可其他的 ai 和 nlp 应用呢,你还可以像 MT 这样幸运 这样享用免费午餐吗?

现在想,紧接着 MT 的具有大数据的热门应用是什么?非 bots 莫属。
对于 bots,数据已经有一定的积累了,其最大的特点在于,bots 的使用过程,数据就会源源而来。问题是 这些数据是对路的,real life data from the field,但还是不带标啊。所以,bots 的前景就是玩的跟数据打仗:可以雇佣人去没完没了地给数据做标注。这是一个很像卓别林的【摩登时代】的AI工厂的场景,或者是列宁同志攻打冬宫的人海战术。看上去很笨,但可以确定的是,bots 会越来越“智能”,应对的场景也越来越多。应了那句老话,有多少人工,就有多少智能。然而,这不是、也不应该是 唯一的克服知识瓶颈的做法。

毛:
嗯,有多少人工,就有多少智能。这话说得好。

我:
但这个景象成为常规 也不错 至少是帮助解决了一些白领就业。是用高级的专家知识去编写规则来提高系统质量,还是利用普罗标注去提高质量,从帮助就业和维稳角度看,几乎蛮力似的深度神经对于标注大数据的无休止的渴望和胃口,对于社会似乎更为有利。为了社会稳定和世界和平,我们该看好这种蛮力。我们做深度分析和理解的专家,试图尽可能逼真地去模拟人的智能过程,但对蛮力也应该起一份敬意。

将来的AI,什么人都可做:1. 你发现一个领域的 AI 需求; 2. 你雇佣一个对这个需求可以形式化定义的设计家; 3. 你调用巨头的一个通用的 AI 工具箱(譬如 TensorFlow) 或面向专项产品的工具箱(譬如 bot 的沃森工具箱) 4 你雇佣一批失业但受过教育的普罗,像富士康一样训练他们在流水线上去根据设计家的定义去标注数据、测试系统,你于是通过 AI 创造了价值,不排除你的产品会火。因为产品火不火已经不是技术了,而是你满足需求的产品角度。

3. 但是 正如白老师说的 这种用分类来简化问题的 AI 产品化,走不远。它可能满足一些特定领域的特定的需求 但是后劲不足是显然的。其中一个痛点或挑战就是,这种东西走不出三步,三步以上就抓瞎。如果你的应用可以在三步之内就基本满足需求,没问题。

bots 最显然的有利可图的应用场景是客服。一般而言,bots 取代和补充客服是大势所趋,因为客服的知识资源和记忆,根本没法与我们可以灌输给 bots 的知识来相比。利用知识去回答客户疑问,人不如机,是可以想见的。但是 观察一个好的客服与客户的交互 可以发现,三步的交流模型是远远无法满足稍微复杂一点的场景的。三步的说法是一个比喻,总之是目前的工具箱,对于较长时期的对话,还是束手无策。

bots 对用户话语的理解简化为 classification,以此为基础对用户的回答就不是那么简单了。目前提供的做法是:因为 intents 是有限的集合,是 classification 的结果,那么对于每一个 intent 可以预知答案(存在数据库的 hand-crafted text snippet)或回应(譬如展示一个图,譬如天气app的今日天气图表)。 这些预制的答案,听上去非常自然、生动甚至诙谐,它们都是领域专家的作品。且不说这些预制的 snippets,如何根据classification hierarchy 本身需要做不同组装,在存于数据库里面的核心应答的预制以外,还可以加上情感的维度,还可以加上 personalized 的维度,这些都可以使得对话更加人性化、自然化,但每加一个维度就意味着我们开始接近组装式策略的组合爆炸后果。三步、三维以上就无法收拾。

我问主讲人,你的这些预先制定好的应答片段,按照你的工具的组装方式,不就是一个 decision tree 吗?回答是,的确,就是一个 decision tree 的做法。然后她说,有不少研究想突破这种应答模式,但都是在探索,没有到可以产品化工具化的阶段。

郭老师说,谁要是有本事把人机的 “自然对话”能够延长到 20 分钟,换句话说 就是突破图灵测试,谁就是 AI bots 的真正破局者。如果你证明你能做到,巨头会抢着来高价收购你的。这是所有做 bots 的所面临的共同挑战。

据说小冰最高记录是与单一的人谈了九个小时的心。但那不是真正的突破,那是遇到了一个异常人类。正常的人,我的体会是两分钟定律,你与小冰谈话 超不过两分钟。我试过多次,到了两分钟,它所露出来的破绽就让你无法忍受,除非自己铁心要自我折磨。其实 工业界要求的连续对话,不是小冰这种闲扯。而是针对一个稍微复杂一点的任务场景(譬如订票)如何用自然对话的假象去把相关的信息收集全,来最大限度地满足客户需求。

累了,先笔记和评论如上。其余还有一些有趣的点儿可以讨论,以后再说。这是交给我们唐老师的作业。

郭:
Amazon’s $2.5M ‘Alexa Prize’ seeks chatbot that can converse intelligently for 20 minutes

洪:
亚马逊正设大奖,
chatbot赛悬赏。
对话若超廿分长,
两半米粒到手上。// 2.5M

【相关】

立委科普:问答系统的前生今世

Amazon’s $2.5M ‘Alexa Prize’ seeks chatbot that can converse intelligently for 20 minutes

微软小冰,两分钟定律

中文处理

Parsing

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

《朝华午拾》总目录

【语义计算:从神经机器翻译谈起】

我:
机器翻译所蕴含的厚重和神圣,在新一代是不可理解的

刚入行的时候做的是外汉机器翻译,一直不大敢碰汉外,原因是汉语语法不好形式 化,感觉太难了,当时想,这辈子怕都没指望了。 现如今,汉语语法还真没有见到多少大规模形式化能实用的,按照以前的路子,那汉外机器翻译必然寸步难行,因为汉语分析是前提,然后才是转换和生成。

可谁能想到,机器学习越来越牛,人工翻译的双语资料作为人类活动的副产品,几乎“天然地”源源不断而来,这就成就了深度神经机器翻译。什么分析,什么生成,统统绕过去,端对端直接施行转换。Google Translate 因此可以在同一个模型架构下,支持几十种语言的互译。这简直就是神迹。可却是技术的事实。尤其不可思议的是,以前认为最难的的汉外翻译,反而进步最大(至少汉英是如此)。 译文再不济,也给你个大概齐,不仅立等可取,而且还完全免费。比你学两年外语,带上词典死磕还一头雾水要强多少。除了天堂,天下哪里有这样的美事?

机器翻译(MT)是自然语言处理(NLP)领域历史最悠久的应用方向,从上 个世纪50年代初发轫,承载了中外几代不知道多少人的青春和梦想,也包括青年时代的立委。如今,梦想化为现实,嵌入式机器翻译在互联网无孔不入,已经成为普罗大众手中招之即来挥之即去的便捷工具,每时每刻在默默服务着千百万互联网用户。女儿学汉语用它,学西班牙语用它,去日本动漫网页也用它,用到对它熟视无睹,把机器翻译视为理所当然。只在翻译错得离谱的时候才意识到它的存在,不时报以嘲讽:真笨。可机器翻译呢,谦谦君子,玉树临风,虚怀若谷,无怨无悔。对于已经天然成为女儿这代人生活一部分的机器翻译,我满腹机器翻译的历史和掌故,却不知如何给她诉说。耳濡目染,她从我断续的话语中似乎隐隐觉得机器翻译对于她父亲的一生具有特别的意义,可是我还是无法象对同辈人那样娓娓道来,如数家珍,传达出我内心深处的机器翻译所蕴含的那份厚重和神圣。不仅仅是代沟,是技术的跨越式发展造成了两代人迥然不同的视角,令人感慨。 from 【机器翻译万岁

刘:
@wei 深有同感。科学技术的发展真是出人意料,做梦也想不到机器翻译能到现在这个程度。我一个刚入门不久的学生跑NMT,轻松超过Moses十几个点,仅几年前,这还是天方夜谭,要是超出Moses五个点绝对可以发最高等级的论文、拿博士学位了。
而且现在用现有的深度学习工具编NMT程序,代码量跟SMT相比都很小,不像写一个SMT程序,要花大量时间处理小的细节。深度学习的工具本身太强大了。同一套工具,稍加修改,既可以做机器翻译,也可以做语言识别、图像识别。
深度学习并没有解决所有问题,但为我们解决一些难题提供了全新的框架,带来了新的希望,潜力还远远没有挖掘完,这给我们这些搞研究的也带来了巨大的机会

我:
很羡慕ing @刘 那天与讯飞的院长谈这事儿,他也是超级兴奋,说以前以为大约四五年会有全方位的大突破,神经在大系统大应用上全面开花。现在他确信只要2-3年就可以了,到时候很多事情会超出我们的想象。他是这样描述的,非常由衷。感觉是作为一线领航者,他看到一种排山倒海的科学潜力正在转化为技术力量,面对巨大机会忍不住激动。这很感染人。这种心态我可以体会。

biao:
@wei  所以,哥儿几个在这死磕语法似乎很难看到什么时候是出头之日。

科大讯飞的确有过人之处。起码它的语音输入可以让你节约大量时间。
前几天有人在这里抱怨说输入码字太累。实际上现在语音输入完全可以帮助你非常轻松的输入,而且效果很好。
上面这两段话完全是讯飞语音输入的。一个字没有改,十几秒钟搞定,非常轻松。

刘:
我不敢预测哪些问题能解决哪些不能,但总体的进步是可预期的

我:
说语法没有出头之日 是小看了咱语言学家 等到dl打败我的 parser 再说不迟。
事实是 迄今全世界最牛的 dl syntaxnet 仍然是我手下败将
另一个事实是 迄今没有sentiment系统在 open domain social media 这个几乎最难的 space,能赶上我们。Not even close :the margin is almost 20 percentage points apart

所以我跟讯飞院长说 你我是同一类人。不过你在舞台中央 我在野。但是论信心和对nlp的展望 心态和世界观惊人的一致。要不咱们互补、合作、合流,要不咱们就来个友谊赛,我就不自量力一哈。反正论年龄 我输得起 你们输不起 =)
(我输了 就钓鱼去 乐见ai一统天下于dl if they truly deliver as well as nmt did
可是 nmt 有data 而大多数 nlp 没有那么多clean labeled data 啊)

biao:
语法分析最大的问题是不灵活。鲜活的语言千变万化。一句话稍微变个说法,语法分析就抓狂了。

我:
根本不是这回事 你的理解有误

白:
死守固定语序才这样 但语法分析死守固定语序已经是老黄历了
你变个说法给伟哥试试 他会告诉你一个robust的句法分析器能做到什么

从“计算”角度说,黑盒子容纳结构的能力是最本质的。从“语言”角度说,结构应该长什么样,比其他的事情更值得关注。
两栖人

biao:
先分析一个名句:
”其为人也孝悌而好犯上者鲜矣。”

我:
如果变个说法 语法就抓狂 要这劳什子干嘛。语法的目的不就是为了对付变体吗

白:
大战风车,其乐无穷

我:
你弄句文言做啥?这个 sublanguage 里面没钱,开发他有卵用。
“卵” 属于 P 系列:是现代汉语口语的脏字否定限定词,== fucking no,社会媒体口语的这个 sublanguage 我们倒是对付了,不妨试试。

biao:
你的机器怎么知道它是文言文,半文言文,还是白话文?他们都是中文。

我:
不在一个频道 算了

biao:
“工欲善其事,必先利其器”。这是文言文还是白话文?大量的成语是文言文还是白话文?金庸的小说是文言文还是白话文?四大名著,是文言文还是白话文?鲁迅的文章是文言文还是白话文?
这些都是在现实生活中大量遇到的语言素材。绕是绕不开的。

白:
高频小体量,适合死记硬背。文言文句法上并不比白话文更难处理,某种程度上还容易。文言文没有白话文里那种NP、VP串烧。有词类活用,但有规律可循。

我:
文言文长句 相对少。排比 平行用法普遍 也是形式痕迹。还有些非常固定的文言句式 用到特定的文言虚字 可以借力。等退休以后 玩玩文言文应该是一个不错 time killer。文言词汇量大大减小,字基本就是词,但每个字的用法 包括活用或引申用法 就多一些。

白:
关键看WSD一选出错率会不会增大?

我:
有不小比例的wsd,等价于pos,pos搞定 就搞定:老吾老。及物动词的“老”是一个活用义项,词典可以绑架为“尊崇”、“孝顺”之列,与作为形容词的“老(old)”的本义,以及作为名词的“老(the old,senior,parents)”都不同。
文言处理也少了切词错误的干扰 基本没可切之词。字驱动的路子,有很多字典工作可做

白:
有些歧义是简化字造成,之前古籍并无。比如后,简化之前就有这个字,就是皇后的意思。以后的后,之前是“後”。做pos也好wsd也好,要考虑文本的基准。

我:
所谓更多的活用,可以在字典假想如果处于某种活用,它义项是什么,然后绑架,倒也便利。另外,现代汉语对虚词的省略 似乎大于文言中虚字的省略,这也是文言处理的便利,虚字的频繁使用,给确定句子成分的边界创造了条件。

weidong:
娱乐一下:陈亢问于伯鱼曰子亦有异闻乎对曰未也尝独立鲤趋而过庭曰学诗乎对曰未也不学诗无以言鲤退而学诗他日又独立鲤趋而过庭曰学礼乎对曰未也不学礼无以立鲤退而学礼闻斯二者陈亢退而喜曰问一得三闻诗闻礼又闻君子之远其子也
标点断句先

我:
试了一下我的 parser,满篇都是 Next ;=)

weidong:
没有引号连话到哪儿结束都猜半天

我:
索性也试试前面要求的测试


其为人Next 也孝悌,而好犯上者 Next 鲜矣。

以前学美国之音英语900句,都说有900句,英语的基本句型就搞定了。这些年,我都 unit tested 近两万句了。是不是差不多该搞定了?最近翻阅以前内部论坛的帖子,有这么一贴,好玩:

池子里说说无妨,万一明年中文核弹爆了,你们可以作证立委就是钱学森。
作者: 立委 (*)
日期: 2012/04/18 23:13:13
不说的话,将来被代笔,说中文核弹不是我的作品 ,找个旁证都找不到。 

换句话说,各路身怀绝技的侠客剑法可能不同,但有个共识:就是我们面临技术核弹大爆炸的前夕。至于AI泡沫,那是商业上的炒作,技术的发展与成熟只是给了它一个炒作的话题而已。

 

【相关】

机器翻译万岁

【语义计算:没有语言学的计算语言学,NLP的亚健康现状】

中文处理

Parsing

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

《朝华午拾》总目录

 

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

细说起来有两类句型分类:一类是逻辑上的,一类是语言上的。二者相互呼应,前者是内容(output 目标,也隐含了语义条件),后者是形式(input 的句法条件)。

逻辑上说,一个谓词需要几个 arguments,是由这个谓词的意义决定的,譬如 “哭/笑” 这样的谓词概念,需要一个施事 argument 来表达谁哭了笑了,所谓不及物谓词。

“爱/恨” 这样的谓词需要两个 arguments (所谓及物谓词),表达 谁 爱/恨 谁了。
“给/赠与” 这样的谓词,需要三个 arguments,表达 谁 把 什么 给 谁 了。
“认为/声明” 这样的谓词,需要两个 arguments,其中一个是实体,表达谁的认为/声明,第二个 argument 要求一个 statement (嵌套的谓词结构),表达认为/声明的内容。

这种逻辑上的谓词子类的区分是语言通用的,因为它的根基是概念及其意义的完整性(谓词加上arguments就是所谓的argument structure,表达的是一个 statement)。

逻辑工作方面的集大成者就是董老师的 HowNet。

以上的逻辑谓词子类表现在不同语言,就是语言学上的 verb subcategories 及其 patterns。到了语言这个层次,辞典中一个动词的动词句型子类可以标示以下的subcategorization 的信息(及物不及物只是其简化标识,vt/vi, 牛津词典曾经用20多个子类标注每个词条的subcat,v1,v2, ..v21,…):

1. 能带几个 arguments
2. 这些 arguments 要求处于什么形态(主格,宾格,要什么介词,处于什么位置)

词典中这种子类信息的标注直接决定了一个parser的质量,是非常关键的预示信息。对于学习英语,熟悉这些句型信息也非常有用。我以前教英语的时候,经常要求学生看牛津词典或者朗曼词典后面的句型附录(朗曼的分类略有不同,印象是分了30多子类),务必熟悉这些句型的概念,然后在翻阅词典时候注意其标注。 一个词经常分成n个义项,每个义项下的subcat分类标注往往不同,回去翻翻词典就看到了。

这后一步的工作,英语和中文我一直在做,n年了。董老师的中文系统目前也在做。只做不说的白老师或其团队也一定在做。subcat 是 quality parsing 的命根子。大家具体做法可能不同,但大而言之,还是差不多的。就是我们以前说的句法词典化。

 

【相关】

中文处理

Parsing

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

《朝华午拾》总目录

 

【一日一parsing:自然语言太难了吗?】

今天微博同仁圈子里盛传下面这个年末搞笑的帖子,标题是 #自然语言理解太难了#,其实一点不难,可见即便是圈子内人,如果没深入做过parsing,有时也被表象迷惑。

#自然语言理解太难了# 转发段子:今年基本已经结束了,我刚在群里问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,简直奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我碰见一朋友,问今年挣了吗?他望着天空喃喃自语:挣个鸟!
看吧,只要肯努力,什么都能挣到[坏笑]

liu:
乐呵乐呵,语言理解很不易啊。

白:
真心不难
基本上可穷尽

liu:
“挣”后面的惯常搭配和选择限制反而简单?

我:
早已解决

liu:
但是,“挣一辆车”就是它本身的含义了。

我:
简单确定的pattern 有限的词汇可填充项 这是 pattern 的拿手好戏

liu:
这倒是的,它的“能产性”不高。

我:
如果训练 有可能漏掉低频率填充项 sparse data
但对于确定性的 patterns 规则可以一网打尽。

liu:
蕴含、推理方面的理解反而是重要的?

我:
一辆车 走通则
屁屎鸟、妹妈奶奶等 走特定规则
我们做社会媒体分析的 这类玩意儿早涵盖了

白:
“规则+例外”的总描述长度最短,就踩到点儿上了。高频用变量泛化,低频用实例枚举。

我:
parse results

图上只是显示这个结构被抓着了,没有显示系统“理解”这种用法的内部表达:实际上这个 chunk 抓住时,系统也就知道头词是动词“挣”,也知道这是一个口语化的动宾否定式,用了脏字,模式匹配规则“绑架”了这一切。

WD:
放个屁 长个毛 真歧义

白:
不是只针对这些话,是一般性的philosophy
这件事跟“挣”关联弱,跟“个”关联强。

WD:
鬼都挣不着
跟”什么女人“类似,有所谓元语否定用法
就是拒绝前一句话的陈述恰当性 负面评价功能
什么一流大学=什么破大学
甲:挣了不少吧。乙:挣什么屁钱啊,都……

我:
“屁”“鸟”之类 有一个英语 no 的用法,是汉语的np 否定式。一般认为汉语没有 否定限定词 no,其实汉语有 不过汉语的 no 混杂着 负面情绪 用的是脏字。而英语的 no 很单纯。
屁事儿: Nothing
没见屁人。在 “没” 后 脏字成了 any,避免double negative 吧,英语也有:
Ain’t see nobody == didn’t see anybody

从这个例子说开去:“v个P”,P={P,屁,头,鸟,吊,jiba,妹,鬼,……}
从类似的现象可以看到,小数据为依据的规则系统,有时候比大数据训练的系统,更为有效:更加精准,更加能对抗 sparse data 因此而提高 recall(具有 clear patterns 性质的语言现象,可以一网打尽,完全没有 sparse data 的困扰),模拟语言现象更加直接,因此也更加容易debug和维护。

在 IE 历史上,直到 MUC-7,当时表现最牛的 NE 系统 NetOwl 就是基于 pattern rules 的,几乎所有的统计对手都拿它作为拼杀的对象。NetOwl 从 SRA spinoff 出去想以 NE 为技术基础,进行商业运作,一开始在分类广告业拿下了一些业务,终究不能持续赚钱,后来被 SRA 收回,逐渐销声匿迹了。后来追随潮流,系统里面也混杂了机器学习的模块。https://www.netowl.com/our-story/

从此在学界就再也见不到规则系统了,哪怕是对于规则非常适用的某些 NE 任务:譬如 时间,数量结构,等。可见潮流之厉害。反潮流者不得食,发不了论文,拿不到 grants,带不了学生,自然自生自灭。

但事物的本质和本性并没有改变,尤其是对于自然语言中的具有 clear patterns 的现象,依据小数据,经过人脑的归纳,数据驱动去开发规则系统,仍然是如上述,具有高效高质量。工业界默默实行的这类人、团队和系统并不鲜见,只不过大家心知肚明,只做不说而已。犯不着顶风作案。相对应,发动群众去标注大数据,然后用大数据训练一个系统如何?这是主流的默认 honored 的方法。如果数据足够大,其质量的确可以接近或匹敌规则系统。当数据量不理想的时候,就捉襟见肘了: 或者 underkill (由于 sparse data,漏掉很多统计性稍弱的变体)伤害 recall,或者 overkill (smoothing 过度,把不该抓的现象抓进),影响了precision

什么叫有 clear pattern 的语言现象呢?举个例子,抓取邮政地址,这个工作我自己作为一个 fun 做过。出来的系统请邮局员工测试过,他们啧啧称奇。美国地址大体是 门牌 街道 城市 州 邮政编码 最后是 国名,patterns 相当地 clear ,可你可能无法想象上述 pattern 构件的变体之多,有些变体绝对是 long tails 再大的数据量也不可能涵盖其组合爆炸的本性。如果你收集了一个巨大的美国地址库作为训练集(大数据),你完全可以设计一个学习系统来做这件事儿。而另一边,虽然也是 data driven,但只需要小数据样本,然后经过人的大脑去举一反三进行开发。可以拍胸脯的是,后一种办法做出来的系统绝对是高质量易维护,天生地具有 sparse data 的免疫性。

 

自然语言的并列: preference semantics at its worst

NLU、NLP 多年来还有一个公认的难点,就是并列结构(conjoined structure)。并列在思维逻辑里没有地位,它是语言表达的产物。并列是语言学中最不讲道理的程咬金,它总是横插一刀,而且任性,在任一层次。一切的 subcat arg structures 或 mod-head patterns 都必须为它让道,否则就堵塞交通,让 parsing 的路线断链。然而,如果没有并列,自然语言就会难以容忍地单调枯燥,尽失精简。

举个简单例子:

1027a

这句话逻辑上展开以后怎么样呢?

颈椎间盘突出症的最常见和最典型表现是一侧颈肩部及上肢的酸痛
==>
颈椎间盘突出症的最常见表现是一侧颈肩部的酸痛
颈椎间盘突出症的最典型表现是一侧颈肩部的酸痛
颈椎间盘突出症的最常见表现是上肢的酸痛
颈椎间盘突出症的最典型表现是上肢的酸痛

这才牵涉两个并列,一个句子出现五六个甚至上十个并列, 并不鲜见。语言不是逻辑。没有并列,语言面临组合爆炸式啰嗦。很难想象,传统的单层 parsing 系统,譬如教科书上经典的乔姆斯基式 CFG-based chart parsing,可以把各种并列处理妥帖。

Conjoin can be so f* hierarchical, even for a very deep, multi-level parsing system: conjoin remains a challenge if not very carefully/skillfully handled by a very experienced linguist ’cause the boundaries are tough to identify and they just appear at any levels at will.  The conjoined elements are semantically parallel but the parallelness, which ideally should be used as conditions to help identify the conjoined structure and its scope, is unfortunately in practice all relative and fuzzy, which can hardly be enforced. food can be conjoined with food, of course, but look at this:

我喜欢肥肉和哲学。

food and knowledge, totally different monsters of semantics, can also be conjoined, it is preference semantics at its worst.

OK, I am not going to elaborate on solutions, which should be a long article by itself.  This post serves as an introduction of this linguistic monster, to arouse the awareness of linguistic challenges in natural language parsing.

 

【相关】

中文处理

Parsing

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

《朝华午拾》总目录

 

【立委科普:如何自动区分同一批词表达的不同意义?】

这是上一篇自然语言理解(NLU)博客【如何自动识别同一个意思千变万化的表达】的姐妹篇。看上去似乎是同一个语言理解问题的两面,但实际上这个问题在自然语言领域的产生,很大程度上是因为一袋子词(bag of words)方法的流行引发的。此话怎讲?

本来,同一批词表达不同的意义是自然语言作为人类表达手段的题中应有之意。举个简单至极的例子:张三,李四,爱。是张三爱李四呢,还是李四爱张三呢?同一批词显然可以表达不同的意思。再如,用 “好”、“喝”、“酒” 造句,结果发现六种排列组合都是地道的汉语,表达了不同的意义:

好喝酒: love drinking alcohol
好酒喝: good alcohol to drink
酒好喝: the alcohol tastes good for drcinking
酒喝好: drink your alcohol to your satisfaction
喝好酒: drink good alcohol
喝酒好: drinking alcohol is good

好 (good/love/verymuch)、喝酒(分离词),两个词,三个字,四个义项,各种纠缠,不同语义。

大而言之,人类语言的词汇是相当有限的,表达日常用语99%+ 的词汇不过在万这个量级,而利用这些词来表达的不同意义是无限的。这种有限材料表达无限语义的本事就是所谓语言能力,这种能力的核心机制早已不再是谜,就是大大小小的文法(grammar)规则。自然语言深度分析(deep parsing)和理解,乃是利用词汇和文法去解析(decoding)语句的语义,区分不同意义蕴含在语义解析之内。主流机器学习的路线与传统的符号逻辑路线(又叫规则路线)的不同之处在于对词汇和文法资源的利用不同。前者最流行的一袋子词的模型利用了词汇,其对文法规则的模拟靠的则是粗鄙简陋的ngram近似(譬如,bigram 的“I love” 间接反映了主谓规则,“love you”则模型了动宾规则)。正因为主流的近似方法对于语言结构的模型太过粗鄙简陋,这才导致了不少主流系统难以区分“同一批词表达的不同意义”,这是所有一袋子词为基础的模型的命门。而这个问题在符号逻辑路线的 deep parsing 这边,从一开始就是直接的目标,一切 deep parsing 规则的建立都是直接模型人的语言理解过程。换句话说,主流的一袋子词技术虽然可以对文本的粗线条分类有效果,但面对同一批词的不同意义却容易捉襟见肘。而传统的规则路线利用 deep parsing,在这个问题面前显示了核弹般的威力。

好,我们撇开没有语言结构的一袋子词模型来看这事儿,问题于是简化为自然语言的经典问题:如何自动消歧?在讨论自然语言歧义的时候,我们总是预设的是同一批词或同一个词(某些消歧在中国老一辈NLPers,我的导师辈中因此也叫“同形区分”),因为不同词及其组合的意义不同是天然的,没有消歧的问题。

消歧的话题以前陆续谈过很多,大体的要点总结如下:

1.  同一种表达可能产生歧义是自然语言区别于计算机语言的重要特点,也是自然语言分析理解的难点所在。

2. 自然语言歧义一般分为两大类,所谓表达的多义就是这两类歧义的交织。一类是用词的多义(WSD,word sense disambiguation),一类是结构歧义(典型的结构歧义包括所谓 PP-attachement,譬如英语文句中的宾语后面的介词短语既可能是宾语的定语,也可能是谓语的状语)。

3. 结构歧义不难识别(identify),但消歧却不易,有时需要动用语言外知识,包括常识等。

4. 比较成熟的结构歧义的应对方法包括:(i)parser 通过 enriched subcat 的手段, 把某些关键的常识及其ontology暗度陈仓引进,在parsing过程中消歧; (ii)parser 只识别歧义,输出非限定性结构(non-deterministic structures),消歧留待语义中间件模块,甚或等到领域的语义落地模块再进行(很多时候这个消歧任务自行消解,没必要进行,因为歧义空间不在语义落地的聚焦雷达上);(iii)parser 采取默认路径,歧义的可能先行休眠,让词驱动的encoding埋下种子,等到后面的模块在一定的条件下唤醒。

5. 词汇消歧 WSD 是 NLU 的一个难点,但好在它总体上不影响 parsing,建议不在 parsing 和语义中间件时期做,可以留到语义落地的阶段,这样处理的好处是绝大多数 WSD 都不需要做功,因为他们不在语义落地的聚焦雷达上。

6. 留在聚焦雷达上的 WSD 任务,往往可以与语义落地手段融合起来同时解决,这个 practice 至少对信息抽取的语义落地有效。

累了,也差不多扯完了。年底了,觉得有文债似的,自己跟自己过不去,赶着跑着写这些劳什子,既充不了论文,也评不了教授。人真是奇怪的动物,骨子里都有雷锋的基因。Happy reading,不枉我辛苦码字。

 

【相关】

【立委科普:如何自动识别同一个意思千变万化的表达?】

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

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

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

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

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

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

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

NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈

中文处理

Parsing

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

《朝华午拾》总目录

 

【语言学家妄论深度学习和AI,旨在 invite questions】

与董老师调侃AI泡沫,不过泡沫归泡沫,这次ai热让我们看清了几点:

第一是 大数据里面有名堂 不全是虚的。

第二是 长远一点看 ai 和 nlp 在领域里可以解决实际问题
譬如 我们做的客户情报产品 虽然发现市场没有预想的那么大 但价值是确认了

第三是 深度神经是技术突破 真东西 虽然目前被神话了。至少在 nmt 中 我们看到了以前达不到的质量。语音方面已经提升了整个产业的水平。

第四是 nlp 与大数据结合 让我们看到很多可能。虽然并不是每一种可能都可以满足某种社会刚需 但nlp大规模实用的大门已经开启 就看谁的市场角度对路了。

有一位风头正健冲在世界最前沿的深度学习大牛好友,看了我最新的博文如何自动识别同一个意思千变万化的表达】, 回说:李老师你还没有理解深度学习啊,深度学习做这件事儿(识别一个 statement 的千变万化的语言表达)其实比较简单。

我不懂深度学习,那是肯定的。说这件事儿很简单,我有点存疑。至少目前所有做 bots 和问答系统的人,都在 fight 这个挑战,不能说已经完美解决。当然,Siri 这类显示了在 apps 上的应用,令人印象深刻。

Anyway,我的回答是,我们属于同类,心态和世界观是一样的。手里有把得心应手的锤子,世界就变成了钉子。区别只是锤子的不同,我不懂你的锤子,你也未必使得了我的锤子。术业有专攻,隔锤如隔山。但我确认,我的锤子可以对付这个钉子。

咱们还是来个友谊赛吧,否则这个世界多么单调。

无监督学习除了 clustering 在某些特定场景可以得到应用外,基本还是 research 的探索性质吧,没人指望它能大规模应用。clustering 到 classification 还有不小的距离,总得有某种监督或人参与才靠谱吧。那天我说,学习界啥时把机器放到raw data 的语言大海里,机器就跟小孩一样学会了语言,那才是牛逼翻天了。否则的话,你有你的知识瓶颈(巨量带标数据),我有我的知识瓶颈(专家经验),谁的瓶颈更大难说着呢。

深度神经学习前,semi-supervised 的研究很热。至少从研究角度,那个领域是令人兴奋和期待的。说的是以最少的监督(种子啥的少量带标数据,或者人工的规则做引子),结合 raw data 去试图引导系统按照指定的方向做事儿。听上去在轨道上,至少不是所谓完全的无监督那种让人觉得不靠谱。还有就是白老师的语义计算主张,不必用带标数据,但要用丰富的词典信息,结合 raw data 做 parsing,也用到深度学习模型RNN啥的,听上去也是可行的。这是因为词典信息里面已经隐含了深入的人工监督(语言学知识和用法),各种 expectations 譬如 subcat,然后到大数据里面去定位。

微博上有人问除了图像和语音,文本NLP方面,深度学习有突破吗?我的记忆中,至少n月前,相当普遍有说,深度神经在文本遭遇瓶颈(by 看到瓶子有一半是空的人),或文本有待突破(by 看到瓶子有一半是满的人)。由于DL乐观主义流行加上全世界的CL牛人都憋足了劲儿地攻关努力,据说最近收到的答案是:文本也很突破了。

于是我正面反面各问了一下,拷贝于下,在此一并求教方家:

谁能给个神经在文本NLP中突破的清单就好了, 看 so far 到底哪些是真突破,哪些仍是瓶颈?先起个头,突破似乎表现在:

1 NMT,例如谷歌翻译,特别是中到英,的确突破性发展了(百度声称更早神经了,但翻译质量远不如谷歌NMT令人印象深刻,虽然在前神经时代,百度的中文方面的SMT比谷歌强);

2 SyntaxNet 至少在新闻正规文本上,parsing 比前突破了,已经达到 94%,虽然离应用还远,虽然不是声称的世界第一

关于神经在文本NLP上的瓶颈或缺陷也抛块砖:

1. 迄今的突破都是 supervised 的,倚赖的是 insatiable 的巨量带标数据: 带标数据于是成为知识瓶颈;

2 对于众多领域和文体,神经系统基本没有适应性,除非假设有海量领域数据可以重新训练成功;

3 几乎所有 unsupervised 尝试都是研究性质,离应用还远;

4 模型庞大带来的costs:训练和运行对计算资源的高要求

5. 迄今的端对端系统的神经应用,未见用到语言结构或理解,隐含层里的葫芦据说人也解不透;

6.  貌似黑箱子,有说 debug 不易(统计模型黑箱子不易debug的毛病以前是公认的痛点,不过最近有深度学习大牛一再强调,这个箱子一点也不黑,debug 也容易,此瓶颈存疑);

端对端除了 NMT,还有哪些投入大规模应用的文本处理系统?似乎还在探索中,成熟的不多。在IE和QA领域,不久应该会有某种突破,因为这两个领域的系统基本是端对端,只要somehow(人海战术?)得到了大量的带标数据,突破是可以期待的。不过,在这些方面,高明的规则系统已经有了很好很快的解决方案。不信,可以到时候拉出来遛遛。

 

【相关】

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

【李白对话录之八:有语义落地直通车的parser才是核武器】

【谷歌NMT,见证奇迹的时刻】

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

【新智元笔记:两条路线上的NLP数据制导】

《立委随笔:语言自动分析的两个路子》

Comparison of Pros and Cons of Two NLP Approaches

中文处理

Parsing

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

《朝华午拾》总目录

 

【立委科普:如何自动识别同一个意思千变万化的表达?】

自然语言理解(NLU)的很多应用需要找到解答下列问题的算法:如何自动识别同一个意思千变万化的表达?譬如,问答系统或自然语言的任何人机接口,第一个问题就是如何理解不同用户千变万化的问题,以便从某个库里检索出合适的答案来。主流流行的做法仍然是绕过结构和理解,根据关键词、ngram以及 some word expansion,建立一个模型来计算不同问句的相似度。这种显然是偏离人类理解,最多可算是近似的做法被认为是理所当然,甚或唯一的算法,因为符号逻辑和语言规则那一套貌似模拟人类理解语言的做法早已从学界退出了历史舞台:学习界要竞争连对手都没有,只能自己跟自己玩。

以我骨灰级计算语言学家的身份,本篇就来专门谈谈这个问题的符号逻辑。都说语言学家迂腐得可以,云山雾罩,对牛弹琴。不信这个邪,你就是工程或学习的大牛,今儿个我也要把语言学的琴给你弹明白,不明白不收钱。(当然,明白了也没打算收钱。有心给小费的话,请转而打赏给任何公益项目为荷。)

我们把上述问题分解如下,更复杂的 cases 大多是这些部件的不同组合而已。

(1) 同一个意思的不同表达主要体现在用词的不同上,例如:

我没钱。
我很穷。
我买不起。
我就是个屌丝。
我银子不够。
我手头很紧。

(2)同一个意思的不同表达主要体现在结构的不同上,例如:

我没有那么多钱
钱我没有那么多
我钱没有那么多

同一个意思的不同表达所用的词不同结构也不同也是有的,那不过是上述两种情形的交织而已。任它千变万化,所牵涉到的变量是可以映射的。以上述场景为例,变量是:【human】【lack】【money】。其底层结构是:【lack】(【human】,【money】)。词典级的映射是:

【money】:钱,银子,美钞,RMB,¥,$ ……
【lack】:缺乏,没有,缺少,不够
【human】:我,你,他,人,…..
【lack】(,【money】):穷,穷酸,买不起,手头+紧,……
【lack】(“人”,【money】):屌丝

以底层结构为起点反推(乔姆斯基所谓生成),以上面的词典信息为驱动,加上一些简单的句法约束,包括容忍 optional 的随机成分(譬如加入程度“很”或强调“的确”,时态“已”等等),符号逻辑可以用计算文法(computational grammar)一网打尽语言的不同用词或结构的千变万化,不是清晰可见了吗?

一网打尽的前提是起点是一个定义明确的 logical statement,如果起点不确定,我们面对的是语言海洋,那就不好说了。因此,我一直跟人说,对于领域的问答系统,譬如,起点是 Q&A 的档案或者起点是一个 app 的可能的 commands,利用符号逻辑的自然语言理解技术,建造一个几乎一网打尽的自然语言接口,是完全靠谱,可以拍胸脯的事儿。

这里面的原理就在语言海洋的千变万化被聚焦了(据说深度学习也有了类似的时髦概念 叫 attention,在 IE 领域,这个概念已经有 20 多年的历史了,IE 本身就是 NLU 的聚焦)。聚焦以后仍然有很多变式,让人眼花缭乱的不同说法,但是这些变化逃不过如来佛的手掌。聚焦的最大特点是 vocabulary 急剧浓缩,加上语言学文法的约束(此篇省略其细节,明眼人自可想象,这绝对是 tractable 的任务),貌似的千变万化于是被一张无形的符号逻辑网罩住。

顺便一提:很喜欢张学友一首歌,叫【一张无边无际的网】,说的是情网,用来代表文法也很贴切。文法就是NL的无边无际的网。我们做计算文法的人 为什么乐此不疲,因为是在编织这张无边无际的网。尽管如此,仍然需要语义聚焦,才好最佳落地。

 

【相关】

立委科普:问答系统的前生今世

【deep parsing,deep learning 以及在对话和问答系统中的应用】

中文处理

Parsing

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

《朝华午拾》总目录

 

 

【泥沙龙笔记:弃暗投明,明在何方】

我:
just had a small talk with Tanya on US election, she was super angry and there was a big demonstration against Trump in her school too

行:
@wei
在我们这个群里,我们都见证了立委清晰的预测了川普对希拉里的领先优势。与传统媒体相比,这次社交网络所反映的民意更准确。也许更为重要的是分析整个选举过程中与时间相关的一些关键变量。
不过有一个问题和缺点,这个分析没有反映美国的选举人制度,事实上希拉里克林顿所取得的选票高于川普。如果能有回缩的地域分析,特别是,摇摆州的地域分析,比如说佛罗里达等的回溯

我:
是的。这次其实是千载难逢的机会,因为太多人关注,太多人 bet,应该认真当成一个项目去做,精心设计。

利:
不光是美国人关注,我们在国内也非常关注

行:
证明了新工具的力量。这也是这次川普当选的最正面的事件。

我:
我这种票友性质地玩,只是显示了大数据里面的确有名堂
但不是震撼性的。

利:
我跟美国的朋友们说:不管谁赢得了总统,都是大数据分析赢了

行:
等我有钱了,我来投你。

毛:
对,我也想过这个事,难点恐怕在于网上的信息恐怕难以分清出自何地?

我:
票友性质不是说的技术:技术是deep,靠谱和专业的,我从来都不小看自己;票友是说我对 domain (政治、大选)是票友 ,到现在对选举人制度还是模模糊糊,它到底怎么工作的

行:
lP地址不是相对能反映地域吗?

我:
推特是最大最动态的数据源,我们有推特的地理,应该大体足够从地理上区分了
我们也有种族,还有年龄和性别等信息。

行:
强烈建议回溯一下摇摆州。挖矿!非常值得进一步挖掘。

我:
没那个精力和兴趣了,公司缩水,也没有几个兵了,日常的琐务也要做
大数据不好赚钱。烧钱倒是哗哗的。

行:
需要设计出一个能赚钱的商业模式。技术是根本,但不是全部。

毛:
如果能把地理年龄这些结合进去,那你的系统大有前景。

Nick:
同意,伟哥可以写本书:
how is a presidential election won or stolen?把选举人票考虑进去

我:
有兵的时候,鸡毛蒜皮我不管,我爱怎么玩怎么玩, 到头来连兵都保不住,还玩个球啊。一个教训,不要把技术开发得过头。小公司的构建内,任何一个部门都不宜超前太多,超前了,就意味着末路的来临。

Nick:
@wei 早就叫你弃暗投明

我:
弃暗投明倒有个明啊 一厢情愿哪里行。

技术并不是越深入越先进越好,by nature 作为科学家,我们总是想越深越好
结果是产品来不及消化,技术总吃不饱,最后最先裁剪的就是技术 呵呵 反正也消化不了全部,你再优秀也没价值 其实是有前车之鉴的:《朝华午拾 – 水牛风云》
十几年再来一次,仿佛时光倒转。

一个机构作为一个整体,必须保证大体相称的发展水平,才可相谐。一个部门太出色,overperforming,其他部门无法消化,也就成了目标。譬如研发,要质量我给你最好的质量,超过“世界第一”,要广度我给你整出20个世界主要语言的深度分析 (deep parsing),cover 语言数据的 90+%,要领域化可以在两周内 deliver 一个 domain 所需的情报单位(一种关系,或一个事件),只要定义明确,产品的情报挖掘的瓶颈永远不在这个自然语言研发部门。结果呢,部门需要为部门的太好表现付出代价。这个世界就是这样诡异。

话说回来,一套技术在同一个公司挥洒了10年还没走人,对我这样害怕变动的人,公司也已经相当不易了。对得起我,我也对得起它了。当年没有我的技术,公司早死翘翘了。如今有了技术不能起飞,也怪不得我,公司从上到下,在这一点是共识:论技术和由此而来的数据质量,我们绝对领先对手。市场做不起来,打败不了对手,是技术以外的因由,我无能为力。另一方面也可以说,市场不成熟,技术变钱不是那么简单 market economy 决定的。

白:
NLP部门因为表现太好而不受欢迎,听起来是天方夜谭,如果不是伟哥亲历,谁信呀……

我:
反正我信。
我们吃不饱有日子了。一直都是我们催产品经理,而不是相反:求求你,给我们一个任务吧。产品经理说:就根据客户反馈小修小补吧。我们的数据质量已经行业领先很久了,一直是领先。

白:
用嘴投票还是用脚投票,这是一个问题

我:
新的 specs,或者出不来,或者出来了,我们 deliver 了,产品却实施不了。

严:
@wei 还是觉得公司产品方向太窄了,这么好的技术被局限在这么窄的应用范围。董事会老是要Focus。

邓:
听起来CEO应该负很大的责任啊

我:
据说是市场太小了,或饱和了。产品在一个 niche market,这个社会媒体大数据挖掘的market一度被疯狂追捧和夸大。几年下来发现,价值得到验证,市场也确实存在,但是就是不够大。拓展其他 market 需要有眼光的产品老总。对于“高新技术”,有眼光的产品老总比熊猫还稀少。高新技术比较适合做大公司的花瓶,其价值在于花瓶的股市效应。或者,适合一个巨大平台,帮助连接顾客和厂家: 这个可以产生真正的价值,譬如 Facebook。高新技术对于创业其实很难,第一缺乏资源(不能吃一辈子VC),第二缺乏平台(连大数据都要花大价钱购买,更甭提顾客与厂家的network了),第三缺乏熊猫。好不容易都凑齐了,最佳的出路也就是有幸被巨头看重收购了事。这个概率不到十分之一吧。也就是说,你哪怕有再牛的技术,你这辈子活过了三个人的寿命,有机会创业10次,你可能创业成功,如果成功是以被收购作为标准的话。如果成功是以上市成为独角兽作为标准,那么你需要的机会数是下一个量级,五年一个轮回,你大概需要活500岁才可撞上狗屎运。

老总的眼光各有自己的局限,譬如,原来一直做 b2b saas 的 就一直沿着以前的经验和熟悉的领域想技术的用场。超出经验领域之外 是很难的。产品创新不再是技术的创新,而是产品层面不断加 features,越加越多。为了讨好不同的客户。结果是 90% features 基本没人用,产品也因此变得让人眼花缭乱了。为什么 agency 喜欢这样的产品?因为他们是 power users, features 越多,他们越爽。其他客户面对众多 features,只会晕菜,反而起反作用。

NLP 的真正威力是把数据转为情报,如果一个产品只需要一种情报,譬如舆情,无法消化其他可能有用的情报,NLP 就处于语义落地吃不饱的地位。你吃不饱,你的价值就丧失。

我:
洪诗人有空可以为nlp写一首挽歌,为nlp超出产品一叹。

悟:
李氏唐朝西游记
维度无穷NLP录
立宪定法三权六
委身侍主天地合
@wei 我先抛砖引玉, 见笑了

我:
这砖抛的,狂赞。
【相关】

Final Update of Social Media Sentiment Statistics Before Election

Trump sucks in social media big data in Spanish

Did Trump’s Gettysburg speech enable the support rate to soar as claimed?

Pulse:tracking US election, live feed,real time!

【大数据跟踪美大选每日更新,希拉里成功反击,拉川普下水】

【社煤挖掘:大数据告诉我们,希拉里选情告急】

【社煤挖掘:川普的葛底斯堡演讲使支持率飙升了吗?】

【社煤挖掘:为什么要选ta而不是ta做总统?】

Big data mining shows clear social rating decline of Trump last month

Clinton, 5 years ago. How time flies …

【社媒挖掘:川大叔喜大妈谁长出了总统样?】

【川普和希拉里的幽默竞赛】

【大数据舆情挖掘:希拉里川普最近一个月的形象消长】

欧阳峰:论保守派该投票克林顿

【立委科普:自动民调】

【关于舆情挖掘】

《朝华午拾》总目录

【语义计算沙龙:坐而论道 on 中文 parsing】

董:
刺死前妻男友男子获刑5年 死者系酒醉持刀上门 — 百度新闻
Stabbed her boyfriend man jailed for 5 years, the drunken knife door –百度翻译
Stabbed his ex-boyfriend boyfriend was sentenced to death for 5 years the Department of drunken knife door — 谷歌翻译
不知道这样结果是什么智能? — 人工?鬼工?骗工?

白:
也是醉了

董:
我主要是要探讨“连动”–酒醉,持刀,上门。这三个动词在知网词典里都是有的。 酒醉 — {dizzy|昏迷:cause={drink|喝:patient={drinks|饮品:{addict|嗜好:patient={~}}}}}
持刀 — {hold|拿:aspect={Vgoingon|进展},patient={tool|用具:{cut|切削:instrument={~}},{split|破开:instrument={~}}}}
上门 — {visit|看望}
酒醉的上位可达:“状态”;持刀的上位可达“行动”,但它与“拿”不同,它是“拿着”,所以定义描述里多了“aspect=Vgoningon”;最后是“上门” 它是“行动”。于是我试下面的规则:
DefineVP1 0712 CN[*pos==`verb`,*def_h=={act|行动},*syl==`2`];L1[*pos==`verb`,*def_h=={act|行动},*def_s==`aspect={Vgoingon|进展}`,*syl==`2`]$L1[*log==`preceding`]@chunk(CN,L1)# // 酒醉持刀上门;
DefineVP1 0722 CN[*pos==`verb`,*def_h=={act|行动},*syl==`2`];L1[*pos==`verb`,*def_h=={state|状态},*syl==`2`]$L1[*log==`preceding`]@chunk(CN,L1)# // 酒醉持刀上门;
心里还是不踏实,因为没有大数据的支持。想听你们的意见。其他例子如:骑车上街买菜遇到一个老同学;

白:
直观感觉,状态的标签不是太好贴。比如,拿着刀子砍人,拿着是状态;抡起斧子砍人,抡起就不是状态?隔着玻璃射击,隔着是状态;打开窗户通风,打开算不算状态 ?
买菜和遇到老同学,谁是前景,谁是背景?谁是主线谁是旁岔,很难说。像伟哥这样一律next最省事。
打开保险射击,打开保险就不是状态

我:
伟哥于是成为懒汉的同义语 。工业界呆久了 想不懒都不成。我曾经多么勤勉地一条道走到黑啊。Next 的好处是拖延决策 或者无需决策。可以拖延到语义中间件,有时也可以一直拖延到语义落地。更多的时候 拖延到不了了之 这就是无需决策的情形。

白:
董老师说的就是语义落地啊。花五毛钱打酱油,花五毛钱打醋。花五毛钱该贴啥标签?
要不是语义落地谁费这事儿。

我:
花 money vp
这个是 subcat 可以预测的模式。凡是subcat可明确预测的句型 通常都不是事儿。给标签于是成为 system internal 的内部协调。

白:
关键是不知道该有多少标签,如何通过粒度筛选、领域筛选、时空背景筛选,快速拿到最有用的标签。

我:
通常的给法是:money 是 o (object),vp 是 c (complement),这是句法。
句法之上这几个节点如何标签逻辑语义 也可以由 subcat 输出端强行给定。譬如 可以给 vp 一个【结果】的标签,vp 是 “花钱” 的结果。
subcat 的实质就是定义输入端的线性模式匹配 并 指明如何 map 到输出端的句法和逻辑语义的结构。这种词典化的subcat驱动简化了分析算法 而且包容了语义甚至常识。

董:
我是因为首先要解决句法关系引起的。例如:欢迎参观;争取投资,就是VO关系,而不是参观游览。也就是说,两个或更多的动词连着时,如何排除歧义?试着只给两个标签:动宾、连动。

我:
一般而言 动宾 是动决定的,连动可以是第一个动决定, 也可以是随机的组合。后者有一个与conjoin区分的问题。
“欢迎” 在词典subcat 中决定了可以带 “参观” 这样的宾语,就事论事 这个“欢迎-参观”的关系几乎是强搭配,与 “洗-澡” 类似。
连动也有词典 subcat 决定的,譬如 “去” vp,“驱车” vp,“出门” vp。
词典决定的东西 没有排除歧义的问题 就是词典绑架 通过 subcat。只有随机组合才有歧义区分的问题。而动宾的本质是不随机,原则上不存在歧义 一律是强盗逻辑 本质就是记忆。可以假设 人的动宾关系是死记在词典预测(expectation)里的,预测实现了 动宾就构建了 这符合 arg structure 的词典主义原则。

董:
负责挖坑,负责浇水,负责填土。。。动宾关系;

我:
负责 vp
为 vp 负责
后者是变式

董:
这么看来,动宾还是连动还是修饰(限定),都由词典解决了。统统做进词典里,就可以了。明白了。

我:
词典主义。随机度太大的组合比较难做进词典。所以一方面尽量做进词典,另一方面 来几条非词典化的规则 兜个底。
随机性而言 似乎 修饰大于连动 连动大于动宾。

白:
如果只有这三个标签,当然做进词典是首选,就怕落地时要的不止这三个。

董:
33724688194454877

这是我刚才试的一个句子。我们为每个节点预留10个子节点。动词与动词也得包括这些。

我:
进不进词典 主要不是有几个标签 而是这个标签的性质。
语言学的理论比较文科,说的东西有些模糊,但大体还是有影子的。
语言学理论中一个最基本的概念区分就是 complement vs adjunct,这是句法的术语,对应到较深的层面 就是 argument vs modifier。一般而言,arguments or complements 都是词典的主导词可以 subcat 预测的。HowNet 从语义层面对 args 已经做了预测。语言学词典(譬如英语的计算词典,汉语的计算词典等)就是要相应地从具体语言的句法表达方式的角度把 subcat 预测的 complements 定义出来。至于 modifier 和 adjuncts,他们的组合性随机,词典就难以尽收。最典型的就是普世的时间地点状语等。世界上的所有事件都是在时间和地点中进行。

白:
跑步去公园,去公园跑步。前者去公园的路上都在跑步,两个事件在时间上重合;后者只有到了公园才开始跑步,在时间上只是先后衔接。
如果语义落地需要对此作出区分,该有什么标签?怎么词典化?
动词为其他动词挖坑的情况都不难处理,难的是压根儿没有标配的坑。这是从ontology的事件根结点继承下来的。

我:
跑步去公园,去公园跑步。
先说第二句:【去 + NP + VP】 这是可以词典预测的,万一预测不准,可以 fine-tune 条件,譬如:【去 + 地点 + 动作】,总之是词典预测的。既然词典预测了,那么该给什么标签就不是问题了。给什么都可以,要什么给什么。
再看第一句:跑步去公园。
去公园 不是问题 这是一个动宾 VP 是词典预测的:【去 + NP】 或 【去 + 地点】。
问题于是就成为 “跑步” 与 VP(人类动作)之间的关系。 这种关系在哪里处理,词典可以不可以预测?

白:
吃口饭去单位,又是接续关系不是重叠关系了

我:
这个的确有些 tricky 但不是无迹可寻。

白:
跑会儿步去公园,也是接续关系了。

我:
偷懒的办法就是有一条非辞典化的模糊的规则 Next 连接二者。
费劲的办法也有:一个是 “跑步去” 词典化 作为“去”的变体,“跑步”是对“去”的方式限定。

白:
现在的问题是,句法上承认next,语义上细化next

我:
另一个词典化的做法是,在“跑步”词条下,预测 movement 的动词 VP, 【去NP】 、【来NP】 、【到达NP】 等等 都符合条件,可以跟在“跑步”后面。

白:
为啥跑步加了时态,限定就失效?

我:
这个预测的subcat里面的句法规定是:
1. 本词不许有显性时态,不许分离;
2. 后面的 VP 必须是 movement;
3. 输出端:本词作为后一个 VP 的限定方式(句法叫方式状语:adverbial of manner)。
Binggo!
至于为啥?这个问题,系统可以不回答,系统可以是数据驱动的。
系统背后的语言学家可以一直为了 “为啥” 去争论下去,系统不必听见。总之是让 “跑会儿步去公园” 不能在此预测pattern中实现。词典化实现不了,那就只好找兜底的规则了,于是 Next 了。【限定】与【接续】的区别由此实现。前者是词典强盗,后者是句法标配。

白:
在词典之外搞几个标签模版也不难,句法上都对着next,只不过依据前后subcat细化了,这有多困难,而且清爽。

我:
亦无不可。差不多是一回事儿。一碗豆腐,豆腐一碗,就是先扣条件还是后补条件的区别而已。无论前后,总之是要用到词典信息,细线条的词典信息。

白:
看上去不那么流氓

我:
先耍流氓【注1】,还是先门当户对,是两个策略。
很多年前跟刘倬老师做专家词典。他是老一代无产阶级革命家,谆谆教导的是不能耍流氓,要门当户对,理想一致了才能结合成为革命伴侣。后来到了美国闹革命,开始转变策略,总是先耍了流氓再重新做人。其实都是有道理的。

白:
@董 跑步和上班是先后关系,跑步和去是同时关系。

董:
这句分析后,有两个“preceding”,不符合我们理想的结果。我们要的是“跑步”是“去上班”的manner 才好。因为我们要准备用户提出更多的信息要求。例如:系统要告诉用户,我平时是HOW去上班的。

我:
刘老师做系统是在科学院殿堂里面,可以数年磨一剑,we can afford to 不耍流氓。来美国闹革命拿的是风投的钱,恨不能你明天就造出语言理解机器人出来,鞭子在上,不耍流氓出不了活。形势比人强,不养童养媳成不了亲,不抓壮丁打不了仗,于是先霸王,然后有闲再甄别。

董:
是的,我们现在连科学院殿堂都不是,而是家庭作坊,可以慢慢磨。其实已经磨了20多年了。

我:
我还记得当年我们为了一个不足100句的英语sample,翻来覆去磨剑磨了两三年,反复地磨平台、磨算法和磨规则。当时的董老师已经大数据(现在看也不是大数据了)开放集测试“科研一号”【注:中国MT划时代的第一款工业产品“译星”的前身】了。

董:
我们给我们的现在开发的中文分析的目标是:看看能最大限度地挖掘出多少信息。

我:
董老师20年磨出的 HowNet 打下了语言分析的牢固基础。现在是把普世的 HowNet 细化为具体语言的句法规定。路线上是一脉相承的。换个角度看,董老师在 HowNet 中已经把普世的 Subcat 的输出端统一定义了,现在是要反过来再进一步去定义具体语言的句法表达形式,也就是输入端的pattern和条件,然后把二者的映射关系搭上,大功即告成。先深层结构 和 UG,然后回过头来应对每个语言的鸡零狗碎的形式。

董:
这倒是的,我们这个中文系统还没到半年,就有点模样了。词典22万义项,规则近4000条。当然,要真正交给用户,那还有一段磨的。

我:
蛮 impressive。我们开发四年多了,但绝对没有 8x 的规则量。

董:
这回我们不做中英翻译,因为英语生成我们做不起,又没有大数据的。其实做出来也只是给别人添砖加瓦,多一个陪着玩的。这种事情我们不玩的。

我:
对,MT 从大面上就拱手相让吧,数据为王。 符号逻辑和规则路线现在的切入点就是应对数据不足的情境:其实数据不足比人们想象的要严重得多,领域、文体等等,大数据人工标注根本玩不起。不带标的 raw 数据哪里都不缺 但那比垃圾也好不了多少。

宋:
“中国对蒙出口产品开始加征费用”

白:
这个哪里特殊?

宋:
中国对(蒙出口产品)开始加征费用, (中国对蒙)出口产品开始加征费用

白:
进口出口,应该站在自己立场吧

宋:
出口是自己的立场,但也有两种解读:蒙古出口,中国对蒙古出口。我一开始理解为后者,看了内容才知道是前者。

我:
这个 tricky,在争抢同一个介词“对”:对 np 征税;对 n 出口。
远距离赢。

白:
常识是保护自己一方的出口,限制非自己一方的进口

我:
远距离原则有逻辑 scope 的根据。但是具体看 很难说 因为汉语的介词常常省略。scope 的起点用零形式 并不鲜见。
“对阔人征税” 可以减省为 “阔人征税”;“对牛肉征税” 可以简化为 “牛肉征税”。但 “对蒙古出口”,不可简化为 “蒙古出口”。本来也可以简化的,但赶上了 “出口” ,逻辑主语相谐。“牛肉” 与 “征税” 没有这种逻辑主谓的可能,于是“对”可省 而NP的逻辑语义不变。

白:
势均力敌时,常识是关键一票

宋:
这个例子在我所看到的语境下是远距离赢,在别的语境下则不一定。因此,分析器是否应当给出两个结果,然后在进一步的处理中再筛选?

我:
给两个结果 原则上没难度,但后去还是麻烦。

白:
其实关键是什么时候定结果,几个倒在其次

我:
“中国对蒙出口产品开始被加征费用”

加了一个 被 字 哈哈 可能是蒙古对中国的反制。

白:
两个对,有一个和被不兼容

【注1】所谓parsing耍流氓,指的是在邻近的短语之间,虽然他们之间句法语义关系的条件和性质尚不清晰,parser 先行把他们勾搭上,给个 Next 或 Topic 之类的虚标签,类似未婚同居,后去或确认具体关系,明媒正娶,或红杏出墙,另攀高枝,或划清界限,分手拉倒。

 

中文处理

Parsing

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

《朝华午拾》总目录

【李白对话录之10:白老师的麻烦不是白老师的】

我:

突然想起一句话 怕忘了 写在这:

“白老师的麻烦是 他懂的 我不懂 我懂的 他懂。”

谁的麻烦?

乔姆斯基说 麻烦是白老师的

菲尔默说 麻烦是我的

后一种语义深度分析的结论是如何得出的?

语义要多茁壮 才能敌得过句法的标配啊。

而且这种语义的蛛丝马迹并非每个人都有捕捉的能力 它远远超出语言学 与一个人的背景知识和领悟力有关

遇到这种极深度的人工智慧 目前能想出来的形式化途径 还是词驱动比较靠谱 如果真想较真探索的话

“麻烦 问题 毛病” 这类词有两个与【human】有关的坑

一个是标配 表达的是所有关系 possessive

另一个是 about 要求填坑的是 【event】或【entity】 后者自然也包括 【human】

白:

“他的教训我一辈子忘不了”

谁被教训?

我: 哈。

回到前面, 近水楼台的 【human】 “白老师” 是标配。

另一条词驱动的可能路径自然休眠。因为词驱动 也就埋下来唤醒的种子。

上下文中遇到另一个 【human】 candidate “我”,加上其他一时也整不清楚但终究可能抓到的蛛丝马迹, 于是休眠唤醒 了。

白:

好像sentiment在休眠唤醒中起比较重要的作用

我:

此句是一例 本来是褒 可不唤醒就是贬了。

白:

标配的麻烦,把负面情感赋与那谁,等到后面说的都是正面,纠结了,另一个human就有空子钻了。

我:

对对对

这个 trick 我们做了n年 sentiment 摸索出来了就在用。典型案例是: “Thank you for misleading me”

Thank 里表达的抽象的褒 由于遭遇了 misleading 的较为具体的贬 而转化为讽刺。

还有:“你做的好事儿 great”。这里 great 的讽刺也是有迹可寻的。

白:

more specific expressions承载的sentiment优先

我:

遇到过两次记者采访,两次都被问到 你们教给机器 sentiment,机器可以理解正话反说 和 讽刺 吗?

我的回答是:这是一个挑战 但其中的一些常见的讽刺说法 是可以形式化 可以捕捉到的。举例就是上面。

白:

具体override抽象。

我:

yes yes yes

白:

如果二者纠结,具体承载的sentiment才是基调,抽象的反向sentiment不是抵消而是修辞手法的开关。

我:

我一直在强调,sentiment 的世界里面,主要是两类东西:一类是情绪的表达,一类是情绪背后的理由。

有些人只表达情绪,但有些人为了说服或影响别人,好恶表态的前后,会说一通理由:you make a point,then you need to support your point with arguments

所谓 sentiment analysis 很长一段时间 领域里面以为那是一个简单的分类问题:thumbs up thumbs down。这个浅陋而流行的观点只是针对的情绪,而面对情绪背后千变万化的理由 就有些抓瞎了。可是没有后者,那个sentiment就没啥特别的价值。

所谓讽刺,只是情绪的转向,正话反说。具体的理由是不能转向的,否则人类的交流就没有一个 protocol 而可以相互理解了。褒贬里面具体的东西 我们叫 pros and cons, 那个东西因为其具体,所以语义是恒定的,不会轻易改变。

情绪却不同。人是一个奇怪的动物,爱极而恨,恨极而爱,都有。甚至很多时候 爱恨交织 自己都搞不清楚。表达为语言,就更诡异善变。

英语口语中 sick 是强烈的褒义情绪,shit 和 crap 等词也不是贬义,bad ass is very positive too:

“The inside of a prius is bad ass no lie.” 是非常正面的褒奖。

人类在情绪表达中说反话,或者由于反话说常了 community 都理解成正话了,这种情形也屡见不鲜。

关键词的褒贬分类系统遇到这种东西不傻眼才怪:当然如果input很长,可以 assume 这类现象只是杂音,整个关键词分类还可以靠谱。但一旦是社会媒体的短消息,这种语言模型比丢硬币好不了多少。

汉语中 老婆太喜欢老公了 喜欢到不知道怎么好了 就说 杀千刀的。

再举一个今天遇到的 sentiment 实际案例:
@Monster47_eNd nah, you have no idea how bad I would kill to eat taco bell or any kind of shit like that.
瞧瞧里面的 sentiment triggers: bad;kill;shit 三个都是强烈的 negative triggers
谈论的 topic 是 Taco Bell,一家流行的墨西哥快餐连锁品牌。
这条短消息通篇没有褒义词出现,因此没有理解、缺乏结构的关键词系统只能得出贬义的结论。但这句话其实是对 Taco Bell 异乎寻常的褒奖 用的是完全草根普罗的用语。

谷歌的神经翻译遇到口语化的句子也基本抓瞎,训练的数据严重口语不足(那是因为双语语料质量过得去的来源大多是正规文档,组织人力去标注口语,做地道的口语翻译,是一个浩大的工程,巨头也无能为力吧):
@ Monster47_eNd nah,你不知道我會殺了多少吃塔可鐘或任何種類的狗屎。

尝试“人工”翻译一哈:
@ Monster47_eNd nah,你不知道为了能吃上Taco Bell 的东东,我會怎样不惜代价(哪怕让我杀人都行)。

简单的译法是:
想吃 Taco Bell 这样的垃圾,我他妈都想疯了。

谁要再说 sentiment 好做,我TM跟他急。这无疑是 NLP 中最艰涩的果子之一。
【相关】

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

【立委科普:基于关键词的舆情分类系统面临挑战】

【立委科普:舆情挖掘的背后】

【李白对话录之九:语义破格的出口】 

李白对话录之八:有语义落地直通车的parser才是核武器

【李白对话录之七:NLP 的 Components 及其关系】

【李白对话录之六:如何学习和处置“打了一拳”】

【李白对话录之五:你波你的波,我粒我的粒】

【李白对话录之四:RNN 与语言学算法】

【李白对话录之三:从“把手”谈起】

【李白隔空对话录之二:关于词类活用】

《李白对话录:关于纯语义系统》

中文处理

Parsing

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

《朝华午拾》总目录