宋:
We believe the contents of your iPhone are none of our business. 我们确信你手机里存了什么,跟我们没有半毛钱的关系。
我们确信,你手机里存了什么跟我们没有半毛钱的关系。
标点的问题。 @wei 能不能再看一下英文的结果?
我: 可以。
宋: 英语的分析很好,汉语还有点问题,关键是英语的NP(Subj) 到了汉语译文中成了主谓结构。
我: 这句英语比较简单。今天CNN头条的一个新闻,随机测试两句较长一些的句子,看里面的结构parse成什么:
英语开发时间长,早就成熟了,好久不动它了,没多少油水可榨了。 基本达到人的分析水平了。
张: 威武
我: 常有人问我看过这个parser,那个parser 没有,我老实说一般都懒得看。都琢磨了一辈子了,曾经沧海难为水。 关键是,在用 parser 做事儿的时候,就会发现,凡是 offshelf 的,都不好用。不仅仅是树的问题,树上只看到了 arcs,看不到的是 nodes。没有对nodes的语义接口和掌控,句法树也就是一道风景,也做不了事儿。
我: @白硕 谈辖域,离不开并列结构和省略现象。 并列结构被公认是 parsing 的拦路虎,痛点之一。它打破了依存关系的日常秩序, 是个难缠的东西。
梁: 白老师说的“辖域”是指什么呢,能具体点儿吗?在这句话里: “这顿饭的吃与不吃,都左右不了选举的结局。”
梁: 挺好的,很多细节都处理得好。只是大结构没有抓住,中心词应是“改变”,A 改变不了B.核心动词应是“左右不了”。
我: 加上了,这下你该满意了?
白: “吃饭”搭配呢?
我: 白老师真心眼毒。搭配与并列还没协调好,你容我喘口气儿
我: binggo!原来只是一个很小的词典问题。
哈哈,“仰天大笑闭门编,我辈岂止码农民”。工具顺手了,调系统就是个玩儿。 与大学生玩游戏上瘾类似,调试系统很 addictive 的。 据说机器学习可以代替语言学码农,剥夺我们的乐趣, 第一我们语言码农是不会答应的,第二它也代替不了。 能代替的都是低级劳动,高级劳动的自动编码还有日子吧,或者根本就是科学幻想。
梁: 不是说机器学习是根据输入输出学习规则吗? 也就是学习自动编码,对吧?
我: 机器学习的本质是自动编程,属于自动编程的一个分支。但在AI和NLP历史上, 它被视为理所当然高于领域码农的高级算法。这个观点本身没有问题,这是高一阶的算法,自然是高级的。但是这一切成立的基础是,领域算法和formalism已经清晰,可模拟。领域指的是语言学,of course。但实际情形完全不是这样,这个 assumption 只在浅层、单一语言学现象上, 是成立的。
白: 自动编程和基于示例的编程不是一个概念。自动编程是以spec为输入,以相应程序为输出。基于示例编程是以输入输出pairs为输入,以相应程序为输出。
我: 白老师说的不错,(有监督)机器学习的根基是示例, 语言处理本身是黑箱子,一切被认为完全可以用输入输出完善表达。在错综复杂的自然语言问题领域,这个思路有问题。譬如,并列现象与依存现象的错综复杂的纠缠,本来是需要精细周到的语言学算法去应对的(参见:【立委科普:语言学算法是 deep NLP 绕不过去的坎儿】 )。但是现在被认为是,只要请语言学家标注出一大批树,这些领域算法, 就可以绕过去,然后机器自动学习出一种合适的处置来。我始终不信服。无法信服。里面饶了那么多弯儿呢,怎么可能全部自动学出来?语言学家也是专门家,他们就那么容易被机器复制、取代? 梁: “自动编程是以spec为输入,以相应程序为输出” 是 Specification ?
我: specs 本身的定义,其实不排除用案例,或 labeled data。我们产品经理找我提供NLP支持的时候,他给我的 specs 就是以案例为主:说只要是这样的 input,你给我抽取出这样的 insights,就ok了。软件中的不少 specs 是难以精确逻辑定义的,只好辅以 labeled data,这就与NLP中的机器学习面对的“specs”同质了。
我: 重要的话说n遍,QUOTE: 手工编制(hand-crafted)怎么了, 怎么到了NLP领域, 突然就成了带有原罪的贬义词了呢。这是因为在NLP领域, 代表主流的精算师们由于他们在NLP某些任务上的非凡成功, 使得他们居功自傲,把成功无限推广和夸大, 给这个community 施行了集体催眠术,让人相信机器学习是万能的。换句话说, 批判手工编制的劣根性,其隐含的前提是机器学习是万能的, 有效的,首选的。而实际情况是,面对自然语言的复杂性, 机器学习只是划过了语言学的冰山一角, 远远没有到主流们自觉和不自觉吹嘘的如入无人之地的万能境界。 催眠的结果是不独不少语言学家以及NLP相关利益方(stake holders,如投资人和用户)被他们洗脑了, 连他们自己也逐渐相信了自己编制的神话。
古有鲁班,现有码师(coding master)。这些码工谁不靠手工编制代码作为立足之本呢? 没听说一位明星工程师因为编制代码的手工性质而被贬损。 同是软件工程, 为什么计算语言学家手工编制NLP代码与其他工程师手工编制软件 代码遭遇如此不同的对待。难道NLP应用比其他应用简单? 恰恰相反,自然语言的很多应用比起大多数应用 更加复杂和艰难。 解释这种不同遭遇的唯一理由就是, 作为大环境的软件领域没有NLP主流的小环境里面那么多的傲慢和 偏见。 软件领域的大牛们还没有狂妄到以为可以靠自动编程取代手工编程。 他们在手工编程的基础建设(编程语言、架构和开发环境)上下功夫, 而不是把希望寄托在自动编程的万能上。也许在未来的某一天, 一些简单的应用可以用代码自动化来实现, 但是复杂任务的全自动化从目前来看是遥遥无期的。 不管从什么标准来看, 非浅层的自然语言分析和理解都是复杂任务的一种。因此, 机器学习作为自动编程的一个体现是几乎不可能取代手工代码的。 规则系统的NLP应用价值会长期存在。
自动是一个动听的词汇。如果一切人工智能都是自动学习的,前景该有多么美妙。机器学习因为与自动连接在一起,显得那么高高在上,让人仰视。它承载着人类对未来世界的幻想。这一切理应激励自动学习专家不断创新,而绝不该成为其傲慢和偏见的理由 。
(摘自: 【科普随笔:NLP主流最大的偏见,规则系统的手工性】 )
转载本文请联系原作者获取授权,同时请注明本文来自李维科学网博客。 链接地址: https://blog.sciencenet.cn/blog-362400-958663.html
上一篇:
【李白对话录:从“把手”谈起】 下一篇:
【李白对话录:RNN 与语言学算法】