【NLP答问2:实体语义和逻辑语义】

新人:
就是觉得自己的问题有些太外行了,不太好意思随便问

答:
外行内行,都是一个过程,只要有兴趣就好。《李白对话》 天马行空,属老人促膝恳谈; 也可以来一些答问对话,为缩小代沟做点实事。

嗨,上篇《NLP答问》刚贴到微博不到两小时,就2.4万阅读量了哈。可见答问的话题还是很符合公众兴趣点,人工智能教授马少平老师等有推荐和评论:https://weibo.com/2316531634/profile?topnav=1&wvr=6&is_all=1

你们说得都对//@南大周志华:目标代码吧,不是数据结构 //@马少平THU:用计算机实现不这样还能怎样?//@第五逻辑:所有的场景应用都是转化为计算机可执行的一种数据结构,这就是现阶段所谓的AI
@立委_米拉【NLP答问:关于parsing 和自然语言理解】 
立委_米拉
7分钟前 来自 微博 weibo.com
不争论 不争论。小平连大是大非姓社姓资都不争论,咱数据结构和目标代码有啥争论的。重要的是面对冰冷的现实,“这就是现阶段所谓的AI”,与自主机器人或机器智能没有一毛钱的关系,都是人类自己跟自己玩,机器不过就是玩具(或者也是吹牛的道具)而已。没霍金之流吹得那么高大上。

新人:
目标代码和数据结构不是一体的吗?

答:
CS的标准说法是: 程序(目标代码)= 数据结构+算法

我们在讨论的时候,侧重点是“理解”的表达形式(representations),就是结构树(tree),或图谱(graph),强调的是数据结构的一面。“理解”作为(智能性)动词,当然有算法的一面。所以周教授说是目标代码,才全面。

新人:
这样啊,受教了

答:
数据本身不一定是可执行的代码。结构树不过是“理解”的一种内部表达,无论是达成这个理解的过程(parsing),还是利用这个理解去落地到应用(semantic grounding to applications),都有一个NL算法的事儿。

前者(parsing)在我这里就是 cascaded FSA++ 的实现算法,后者(落地到信息抽取和数据挖掘场景)就是一个 subtree matching 的算法。这是就关涉算法的机制(formalism)而言,其实利用这个算法机制对系统各个模块以及模块中问题的处理过程,也还有个语言学算法的思路在内,不仅仅是在多层系统里面先做什么后做什么,还有各种数据流接口的设计等,如何防止错误放大,如何协调共性和个性,都与算法有关。

新人:
结构树是“理解”的一种内部表达,这个内部表达中已经包含语义的部分了吗?还是说语义包含在另一种内部表达的形式里,多种结构组成了“理解”的形式?

答:
结构本身就是最重要的语义部分。这是语言学的常识,也是多数计算语言学家的共识:学界术语叫 semantic labeling,在中国的NLP界,由于董振东前辈30年前的创新研究,这个语义被命名和普遍接受为“逻辑语义”。理解了一句话,最关键的就是要搞清楚一句话里面的那些语词概念的逻辑语义角色:【谁】(逻辑主语,施事)【对谁】(对象补足语)【做了】(谓语)【什么】(逻辑宾语,受事),【何时】(时间状语),【何地】(地点状语),【如何】(方式状语),【为什么】(原因状语)等等。

深度解析(deep parsing)所建立的结构树或图,就是要填写这些逻辑语义角色,填写好了也就是达成了语言理解的核心。

新人:
实体语义对于理解一个句子不重要吗?好像绕回了之前说的WSD那篇…(【NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈】

答:
什么叫实体语义?实体对应的是NE或NP,在句子中就是一个元素。在知识图谱里面,表达成一个画像(profile),uniquely 对应了真实世界的一个实体。

实体语义的重要是在领域落地的时候,而在领域独立的语句分析阶段,只要知道类别就好了,实体的语义或歧义(如果有歧义的话)可以先绕过去的。譬如,“约翰”这个实体,知道他是一个人名(NE)就够了,至于他究竟指的现实世界哪个实体,对于理解一个里面提到“约翰”的那个句子,并不重要。

但是如果要建立领域的知识图谱,实体语义就重要了,否则描述这个约翰的事件,张冠李戴到另一个约翰头上,语义落地的偏差就会把领域知识图谱(事件场景以及个人画像的语义网络)搞砸。

我这篇【NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈】)文的本义是说:WSD 一般来说不是 parsing 的瓶颈,而是可以推后到落地的时候去做区分。

新人:
是,想了下,只有在具体场景下,才能讨论实体语义。

答:
换句话说,语言学意义的理解首先看到的是结构和角色(“项链”),然后才是角色里面的每颗“珍珠”。所以说 deep parsing 是自然语言理解的皇冠和核心,是自然语言落地的核武器。

新人:
感觉清晰了很多。终于不纠结实体了…

答:
关键是,实体的歧义通常不影响结构和角色定位(即逻辑语义),而一个语句与其他语句的语义区分,主要就是结构和角色定位。这里面细究的话,逻辑语义结构里面有核心和边缘的区分。核心就是所谓 argument structure,这是以谓词为核心挖的几个“坑”,需要实体参与者(萝卜)来填坑的的结构,表达的是语义主干:【who】 DID 【what】 【to whom】这类。边缘的语义主要是可有可无的状语,可分为一二十种,表达的是语义的细节:时间,地点,条件,原因,让步,结果,程度,等等。

新人:
昨天插入语的那个badcase,是不是属于边缘的语义的部分?

答:
插入语当然是边缘语义,非常的边缘,提供某种语气。

新人:
感谢您愿意回答我这些基础的问题。我得赶紧补补课

答:
不必拘束。在你这个年龄段,保持好奇心和兴趣最重要,不要怕吃苦,一头扎进去几年,才能真正体味。我有个n万小时定律(《聊聊 NLP 工业研发的掌故》),虽然夸张了一点,但说的就是必须要有足够历练,才能一览众山小。

 

【相关】

【NLP答问:关于parsing 和自然语言理解】

NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈】

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

《朝华午拾》总目录

发布者

liweinlp

立委博士,自然语言处理(NLP)资深架构师,Principle Scientist, jd-valley, Netbase前首席科学家,期间指挥团队研发了18种语言的理解和应用系统。特别是汉语和英语,具有世界一流的分析(parsing)精度,并且做到鲁棒、线速,scale up to 大数据,语义落地到数据挖掘和问答产品。Cymfony前研发副总,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个美国国防部的信息抽取项目(PI for 17 SBIRs)。立委NLP工作的应用方向包括大数据舆情挖掘、客户情报、信息抽取、知识图谱、问答系统、智能助理、语义搜索等等。

发表评论