科学网

 找回密码
  注册

tag 标签: 自然语言理解

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

【NLP答问:关于parsing 和自然语言理解】
liwei999 2018-1-26 17:08
【立委按】人工智能热潮下,进入自然语言领域的新人也随之增多。新人的好处是喜欢问问题。于是有了答问。 新人: 读过您的parsing方面的系列博文,parsing 及其落地应用的种种,很有意思的领域。把 parsing 这一块做好就非常 exciting 了,能落地就更棒啦 答: 必须落地。否则站不住脚。parsing 做好根本不是问题,已经做了N次了,been there done that,NLP 是个力气活,但不是看不到头的活儿。达到接近专家的水平是验证过的。落地有所不同,落地需要找到切入点,需要有一套领域化的有效方法。 力气活指的是迭代:就是不断的迭代,每天迭代10次,一年就是3600次。设计思想和框架机制对路了,剩下的就是不断地根据数据制导,去修正系统,保证走在正路上,避免或尽可能减少 regressions,终会达到彼岸。 新人: 力气活是真的,我之前做 NLU badcase 分析,后来能看到准确率确实在上升。我相信迭代的力量。 现在的 parser 已经足够好了吗?您博客中提到的休眠唤醒机制,世界知识的引入,非确定性表达的问题都已经解决得差不多了吗? 答: 还没有,时间和人力的投入不够,一切重起炉灶,系统架构更加合理科学,但血肉不足。没关系,目标导向,急用先做。有些来不及做的,先放在那里。 新人: 想起您博客中各种奇怪的例子 答: 那是刁难系统的,多是语言现象的犄角旮旯,其实不值得太花力气。古怪的句子的好处是测试鲁棒性(robustness)或者测试有没有补救措施(backoff),主要精力还是应该花在统计性强的常用句子身上,不能被长尾牵着鼻子走。 做中文 parsing 特别让人兴奋,比做英语等 要有意思多了,后者太缺乏挑战性了。 新人: 嗯,中文本身很有魅力 答: 看上去一个字符串 人看着都头晕,如果能自动 parse 出结构来,很让人开心的。 新人: “看上去一个字符串 人看着都头晕”这句感觉对 parsing 挺难的? 答: 不妨试试: 这个当然有问题,但很容易修正。现在的序列是:NP,CL,AP,这个 CL 是一个插入语,最后的结果应该是在NP与AP之间建立主谓关系,把插入语附加上,就完美了。(CL 是 clause,M 是定语,R 是状语。)修改后的结果: 这个结果还合理吧? 新人: 是不是把“看上去”作为RP,就能fix之前的问题了? 答: 主要还是带有插入语性质的 “NP人看着(都)AP,插入语“人看着”是 RP(副词性短语),“看上去”也是RP,但在句首,好办。 新人: 如果去掉“看上去”,整个句子是“一个字符串 人看着都头晕”,改之前的 parser 能解析正确吗? 答: 不能,因为没有处理好这个插入语。与“看上去”无关。插入语在语言中是很有限的表达法,迟早可以穷尽,原则上不是问题。你以前做过什么parsing有关的工作?遇到过什么挑战? 新人: 之前做parser的离合词这一块。例如“吃了一顿饭”这样的结构,可以从语料中很容易统计到,例如“吃不吃饭”这样的就相对少,只能靠观察。当时是这么做的。首先从研究离合词的论文里找出一个两个字的离合词列表,例如'AB'。然后用'A.*B'在语料中筛选句子,对选出的句子做pos,然后统计'A.*B'中间'.*'的部分的pos组合,但是“吃不吃饭”这样的结构在词性标注的时候就没法搞定了。 答: 这不是简单的离合,而是夹杂重叠。A不AB,是一个相当普遍现象,对于所有 V+N 离合词都有效的。退一步,V不V 也是一个确定的选择疑问句式。 “对选出的句子做pos,然后统计'A.*B'中间'.*'的部分的pos组合” 做POS 后,你在统计什么? 新人: 当时的需求是,判断AxxxB是不是词“AB”的离合现象。因为想提高泛化能力,所以想从语料里产生词性级别的pattern,比如“吃了一顿饭”对应的pattern是“v u mq n”(限定 v 和 n 是单字)。比如“吃不吃饭”词性标注的结果是“吃_v 不_d 吃饭_v”,从词性的层面就不能用“v d v”来匹配了 答: 那两个v是重叠,需要unification机制的,单看POS,根本没戏。如果只是统计 POS-序列,没有什么意义, 新人: 做完了才发现,确实没什么意义。。 答: 是啊,因为就是一个动宾结构,这个 POS 序列,与 NP 序列中的修饰语应该一致。 新人: 当时就我一个人在瞎做,都是我拍脑袋想的方法,比较挫 答: 这个不用做统计,就可以想见的。 新人: 能想出来的是有限的呀,肯定有想不到的情况。。 答: 离合词不难处理,它是搭配的一种。搭配现象的本质都是词典的搭配规定与规则的实例化(instantiation)的机制,就是词典与句法需要平台机制上有一个灵活的接口。英语的短语动词 take NP off;put NP on;subcat 句型中对 PP 的 P 的要求(borrow sth from sb),汉语中量词与名词,这些都是搭配现象。 能想出来的是有限的呀,肯定有想不到的情况。 但那不是离合词的问题,那是 NP 的问题。NP 当然有很多种组合可能,拍脑袋是想不全的。所以要数据制导,要迭代。类似你上面的语言调查,也是一种。所有的语言现象,不仅仅是NP,都需要数据制导。都有想不到的序列。不过从 POS 序列着手,是远远不够的。POS 太粗,根据 POS 做 NP 或做其他现象,最后都是窟窿。 新人: 是的,最后做了个 字+pos 的规则 答: 字 太细,POS 太粗,加在一起,抓了两头的确会好很多。但是 从字 到 POS 中间还有很多,譬如 【human】以及类似的一整套的本体概念网络(ontology)可以利用。 新人: 【human】是什么意思? 答: 譬如 “演员”,“总统”,“那家伙”,。。。。就是语义概念标签。【human】是最常用到的标签了,比 N 细线条一些,比 “演员”这些关键词是粗线条了。所以说,一个系统不能光靠最粗的POS分类,也不能光靠最细的关键词,还需要语义概念的 ontology。 新人: 引入语义造成的歧义问题,是用句法来解决吗?比如“演员”是一首歌名 答: 引入并不造成歧义。要是有歧义,那个词不引入也还是歧义的。与引入无关。引入语义只会增加词的信息量,多一些可利用的手段。不是因为引入,所以需要消歧。歧义如果需要解决,也是那个词本身需要这么做。但很多时候,歧义是不需要解决的。 {演员 N},这里有两个信息:(1)演员(2)N。{演员 N 【human】【song】},这里多了两个信息。原来没引入之前,我们根本不知道 “演员” 是什么,不是什么。现在引入语义以后,我们至少知道了 “演员”不是人就是歌。它不可能是其他的1000种可能性,譬如 起码,演员 不是 【furniture】,不是【sentiment】,不是【location】。所以引入新的信息不是增加歧义了,而是大大缩小了歧义的可能性。 新人: 明白了 答: 至于区分歌与人,那个任务叫 WSD,很多应用可以绕过去不做。我写过一篇,说的就是 WSD 很难,但绝大多数应用不需要做(【 NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈】 )。 新人: 说实话我不是对 parsing 感兴趣,是对自然语言理解感兴趣,我想知道通用自然语言理解的道路在哪里,但是也不知道往哪个方向发力。 答: parsing 与 自然语言理解 有什么不同?为什么对后者有兴趣,对前者无所谓?什么叫理解呢? 新人: 以前我一直觉得 parsing 和分词一样,是一种基础的组件。然后我觉得常识才是自然语言理解的核心。不过看了您讲文法和常识的那篇博客(【 立委科普:自然语言理解当然是文法为主,常识为辅 】),最近也在重新思考这个问题 答: parsing 强调的是对语言结构的理解,WSD 强调的是对词的理解。粗略的说,语言理解至少包括这两个大的方面。既要知道这个词对应的是什么概念,也要知道这些概念在句子中表达怎样的关系。其实后者更重要。纲举目张啊。做一条项链光有珍珠不成,更需要的是串子,好把散落的珍珠连起来。 新人: 我说下我对自然语言理解的粗浅的想法啊。比如“我喜欢吃苹果”。从句法上很容易就能解析出来,但是计算机通过什么方式才能理解“我喜欢吃苹果”和“我讨厌吃苹果”的区别?虽然能通过词典知道“喜欢”和“讨厌”是不同的概念,那么要怎么这两个概念有什么方向什么程度的不同?然后要怎么表示这种不同? 答: 然后怎样呢?你前面的话没说完啊 新人: 我也不知道要怎么理解这种不同啊。确实,没有句法是不行的。 答: 1 计算机根本没有什么理解不理解。 2. 所谓自然语言理解,那只是一个比喻的说法,千万不要以为电脑能自主“理解”人类语言了 3. 所以,自然语言理解的本质就是把语言表达成一个内部的数据结构,根据这个结构,比较容易地落地到应用所需要的方向去。譬如 情感分析的应用 需要区分正面情绪(如 “喜欢”)和反面情绪(譬如 “厌恶”)。 4. 换句话说,所谓理解,不过是人跟人自己在玩,与电脑智能没一毛钱的关系。 5. 既然是人自己跟自己玩,那就要看一个系统的内部表达(所谓理解)的设计能不能用有限的表达和逻辑,去捕捉无限的语言表达方式;能不能根据这个表达和逻辑,达到(或模拟)人在理解了语言之后所产生的那些效应。譬如人看了一句话 可以判断是什么情感,情感的强烈程度,谁对什么产生的情感,等等,因此可以得出舆情分析的结论,计算机可以不可以也达到类似的分析效果? 6 因此 脱离应用(理解以后的效应)谈理解,很难。应该通过应用来验证所谓理解。 7 所谓端到端的系统,就是直接模拟应用:里面的过程是黑箱子,叫不叫理解无所谓。 8 符号逻辑派的先理解后应用,不过是用人可以理解的方式把这个理解到应用的过程,透明化。透明化的好处,比较好 debug,可以针对性解决问题。这是黑箱子系统的短板。如果有海量带标(应用效果的标注)数据,黑箱子的好处是可以很快训练一个看上去很不错的系统。如果没有,标注数据就是一个令人生畏的知识瓶颈。 新人: 我是一直从类似微软小冰那种对话系统来考虑自然语言理解,所以不太能接受seq2seq的对话生成系统… 答: 闲聊系统,因为人的对话无时无刻不在进行,理论上有无穷的带标数据,其实可以训练出很好的以假乱真的闲聊机器人的。一个 MT , 一个 闲聊,这两个应用具有天然的海量数据,是少有的知识瓶颈不严重的应用方向。多数NLU应用没有这么幸运。所以不得不组织成千的标注队伍,还是赶不上应用现场的变化中的需求。 新人: MT 感觉和闲聊机器人还是不一样?闲聊机器人的系统在单轮的时候可以以假乱真,但是在多轮的时候基本都不能维持对话的连续性。 答: 多轮的挑战可能还是源于稀疏数据,这是因为虽然对话的数据是海量的,但是从 discourse 的角度看一个完整的对话篇章,数据就可能很稀疏了。每个对话都是一个特定的话题,以及围绕这个话题的对谈序列。从话题和对谈序列的角度来看,数据就不再是海量的了。突破口应该在对于不同对话序列从篇章脉络角度做有效的抽象,来克服稀疏数据的短板,学会篇章的应对技巧,easier said than done,这个显然有相当的挑战性。篇章(discourse)向来是计算语言学中最不容易形式化的部分。 新人: 我个人觉得如果是通用/闲聊场景,即使有海量数据,对话的话题和序列还是很可能大部分和可获得的数据集的不一致。 答: 那自然,组合就会爆炸。爆炸了 当然数据就稀疏了。 新人: 很多场景还是有办法细分成小的垂直场景,然后通过在系统设计上做一些功夫来达到一个比较好的效果的吧? 答: 垂直当然有利多了。 【相关】 【 NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈】 【 立委科普:自然语言理解当然是文法为主,常识为辅 】 【语义计算:李白对话录系列】 【置顶:立委NLP博文一览】 《朝华午拾》总目录
个人分类: 立委科普|3642 次阅读|0 个评论
自然语言理解与形式化处理不能停留于现象
geneculture 2017-10-7 03:11
语言和言语的区分(索绪尔)产生了普通语言学。句子=名词性短语+动词性短语(乔姆斯基)又产生了形式文法。对象语言与解释语言即元语言的区分(塔斯基和卡尔纳普)还产生了形式语义学。言和语的区分(邹晓辉)产生了广义翻译学即广义双语学乃至广义语言学。其中,前人的第一条形式化路径或进路与本人的第二条形式化路径或进路的发现相隔,超过了半个世纪。两大类形式化方略与双语信息处理方法及原理,提示了新一轮的自然语言理解与形式化处理和专家知识获取与形式化表达这对人工智能的超级难题的三大系统工程(它整合并超越了以往语言、知识和软件三大工程)给我们带来了新的希望。其特点不仅限于已有的三大工程可做到的,而且还着重于系统工程可化解以往的三大工程分别都做不到的瓶颈(含认知与行为两方面的局限)。--邹晓辉Geneculture 附录: 【为什么自然语言理解很难?其本质原因是语言是一种复杂的现象。 自然语言有5个重要特点,使得计算机实现自然语言处理很困难: (1)语言是不完全有规律的,规律是错综复杂的。有一定的规律,也有很多例外。因为语言是经过上万年的时间发明的,这一过程类似于建立维基百科。因此,一定会出现功能冗余、逻辑不一致等现象。但是语言依旧有一定的规律,若不遵循一定的规范,交流会比较困难; (2)语言是可以组合的。语言的重要特点是能够将词语组合起来形成句子,能够组成复杂的语言表达; (3)语言是一个开放的集合。我们可以任意地发明创造一些新的表达。比如,微信中“潜水”的表达就是一种比喻。一旦形成之后,大家都会使用,形成固定说法。语言本质的发明创造就是通过比喻扩展出来的; (4)语言需要联系到实践知识; (5)语言的使用要基于环境。在人与人之间的互动中被使用。如果在外语的语言环境里去学习外语,人们就会学习得非常快,理解得非常深。】
个人分类: 学术研究|69 次阅读|2 个评论
【李白邢65:“着”字VP的处置】
liwei999 2017-8-8 07:50
【立委按】 世界上很多事物都有不同的角度,对于一个现象的处理也有不同的考量。到了NLP,这就成了不同策略的优劣之争。对于老革命,战略和战术辩论的好处是各自说明白背后的理由,多数时候并不指望谁说服谁,更非争个高下。对于看客,行内人自可各自体会,根据自己的理解择优而行。对于行外人,看热闹之余可能得到的一个启示就是,世界往往就是,公说公有理,婆说婆有理。 白: 开着窗户睡觉,开着窗户是状语吗? “砍了一刀没死”,砍了一刀是状语吗? 邢: 我理解您的分析方法中,是不是没有主语、谓语的概念,而是以动词为核心为其填坑,填坑的萝卜与其在句子中的位置关系不是很大,而与其在语义上的搭配关系更大。 白: @邢 是的 邢: 还有“掌声欢迎”中的“掌声”是状语修饰欢迎,那“鼓掌欢迎”是否也可以理解为“鼓掌”修饰“欢迎”呢? 白: “掌声欢迎”是“(用)掌声欢迎”,有一个隐含介词。所以可以把掌声这个N降格为S+,做状语。“鼓掌欢迎”句法上是两个S的合并,至于语义上是什么,留给语义去处理。合并不是修饰,句法上“鼓掌”不是状语。 邢: 如何实现“降格”这个操作呢?是否也需要大语料的统计做支持 白: 不需要 邢: 那如何区分“同学欢迎”和“掌声欢迎”呢? 白: 欢迎的标配坑有human,没有sound。检查subcat相谐性可以区分。 邢: subcat确实非常重要,谢谢您! 白: 鼓掌欢迎,列队欢迎都是合并。夹道欢迎,其中的“夹道”已经成了专用副词了,不在其列。 邢: 我理解合并是有前提的,首先合并词都是动词,同时合并词共享某个坑 白: 对 述补、并列、连动、兼语、某些缩合复句,都是合并关系。 邢: 很受教,谢谢您! 白: 名词和名词也可以合并 邢: 是的,至少并列结构的词语都可以合并,无论属于何种词类。 李: 为什么不说省略了“用”呢: (用)鼓掌欢迎 (用)列队欢迎 动词也好 名词也好 都是用某种方式,核心还是 欢迎。 “鼓掌欢迎” 与 “掌声欢迎” ,看不出实质区别来。 都有大数据相谐的证据。其实已经接近合成词了。 白: 在句法层面定核心,和在语义层面定核心,是两件事情。 开着窗户睡觉,也是有核心的,但是在句法层面就定,太早了 李: 不早,至少对于这句,句法痕迹还是很明显的。 白: 早不早,这是体系问题。 李: 带“着”的动词做伴随情况的状语,修饰紧跟其后的核心动词。这是一个合适的句法和语义一致的路线。 白: 没必要 李: 英语的 ing 作为伴随情况状语也是如此:He came here running,有某种语言共通性 白: 知道他俩有关系,句法上就够了。 李: “ 走进来” “ 说” “ 恳求他” 这个形式痕迹不用白不用,看不出来推后的理由。需要或必须推后给语义的,是句法上缺乏形式痕迹。句法有形式的,自然是早做强过晚做。 白: 不一样,谁带,谁恳求,这里面首先有坑的共享问题。修饰语出现坑的共享,这是给修饰语找麻烦。 李: 修饰语是第一位的,坑是第二位的。修饰语里面的坑不坑 其实无关大局。从理解和语用看,语义重点不再是补全修饰语里面的萝卜(真要补也可以补,但语用和落地需要它的情形不多)。 白: 放下筷子骂娘 拿起筷子吃肉 开着窗户睡觉 穿了衣服出门 这些都是平行的。光处理“着”,只是图一时痛快。 李: 核心突出了,哪怕只是部分现象,总是好的。 白: 不同性质 李: 其他的句子其实核心开始模糊了,但带“着”的句子,核心基本是明确无误的。 白: 共享坑在机制上要更根本,有没有核心,在其次。共同的机制先放在一起处理,到里面再分道扬镳。不存在不处理或者处理错的问题。 李: 直感上,合并这把伞太大了,罩着太多的不同结构。 白: 这才好,说明共享坑足够根本。 李: 在后一个语义模块的解析策略不太明确的时候,很难判断这样处理的 pros and cons。区分或理解这些不同结构对于多数落地,是绕不过去的。而填坑对于落地有时候反而可以绕过去。 白: 语义上具有向心性,和句法上的修饰关系,是两个概念 李: 譬如说 MT,“着”字动词做状语 可以平移到英语,不填坑也可以平移。 白: MT能绕的不止这些 那都不是事儿 李: 这种语义落地场景就表明 坑里没有萝卜也可以的。可是核心的识别 却是不可或缺的。 白: 不是没有,是两种语言的共享坑机制一致,这不是问题的重点。 李: 一般原则还是,句法管形式,形式不充分的留给语义。为什么介词短语做状语呢?因为有介词这个形式。同理,为什么“着字VP”可以做状语呢?因为有“着”这个形式。 这并不是说,没有介词没有“着”的就不可以做状语。而是说有了这些形式,可以放松对语义相谐的要求,不需要“意合”,也不需要大数据 ,就是根据形态(包括小词)基本就可以确定。 白: 后者可以不叫状语,叫连谓结构 李: “好”的句法,应该把这些形式用到极限。这就好比有格变的语言,要尽量通过词尾格变确定句法关系。只有在格变有歧义的时候,句法确定歧义的边界,然后才把负担留给语义模块去选择。放着形式不用,先用大数据、常识或其他的模糊条件,是舍近求远。 白: 坑也是形式 李: 对,subcat 属于隐性形式。 白: 了和着在形式上也有诸多平行性。一个地方不平行,完全可以揣在兜里,到属于它的角落,掏出来该干啥干啥。那些有平行性的,大家共用高速公路。另外,进入这个车道的“着”,状语的标签已经是鸡肋,在这个形式下可以直接定位到“背景-前景”语义关系 带上水路上喝,带着水路上喝,带了水路上喝。 真的只有第二个才有形式么?每一个都带有形式,都带有时间标签。一旦确定相应的标签,回头再看“状语”这个大而无当的筐,算个啥? 带上干粮饿了吃,带着干粮饿了吃,带了干粮饿了吃。 “墙上挂着画显得很有雅兴。” “墙上挂着画还是仿制品。” “墙上挂着画居然上下颠倒了。” 这三个例子里,“墙上挂着画”都不能说是状语。“这种场合戴着帽子不够严肃。”当中的“戴着帽子”也不是状语。 李: 这些特地选出来的例句 的确具有强烈的平行性。但这只是语言事实的一部分。当我们说 “着VP”可以做状语 指的是另一批现象。“笑着说” 与 “笑了说” 并不平行,前者是【伴随状语】(adverbial of attendant circumstance),后者是【接续】,在“笑了”与“说”之间其实有个停顿或标点。再看,“带着干粮饿了吃” 与 “带了干粮饿了吃” 的确平行。但 “带着干粮去上访” 与 “带了干粮去上访” 就不必然平行。总之,的确有相当部分的“着VP”是做伴随状语(也可以说是做核心动词的背景 都是一个意思)。而这部分现象是可以在句法阶段搞定的。 处理的重要形式依据是 “着”,但也可能需要再附加一些制约做微调。事实上,我们系统有几条带“着”做状语的规则在句法有时日了,经过长时期的考验,发现很管用, 出状况的时候很少。几乎与 PP 做状语的规则一样好用。 汉语的痛点之一就是 动词成串 难分主次 搞不清核心。这与欧洲语言对比强烈 :欧洲语言有 finite (谓语动词)和非谓动词(不定式、分词之类)的形式区分。谓语中心很容易确定 句子骨架一目了然。既然是汉语的痛点,分而治之就是解决繁难痛点的一个不错的策略:各个击破。 自然语言另一个比较普遍的痛点是并列结构,我们起初总想毕其功于一役,但总搞不定。后来探索出来的有效策略也还是分而治之各个击破。 白: 伴随关系(前景-背景关系)是时间关系的一种。接续关系是另一种。目的关系,可以看成未然的或可触发的接续关系。平行上路,平行落地。人家自己完全井然有序,用不着这个状语标签分了一块去再横插一杠子。充其量只能说,在这一批从时间内在结构角度而言从句法到语义都充满了平行性的关系当中,伴随关系“碰巧”具有了向心性。但是在这么本质的语义关系都揭示出来的情况下,坑哧吭哧跑过来宣布谁谁是状语,不觉得蛇足么。就好像从集体婚礼中拽出一对儿,然后宣布,这俩是山东人,差不多。 笑着说,笑的区间包含说的区间;笑了说,笑的始点位于说的区间左边(笑的终点不确定)。怎么不平行? 语义计算里面,时间结构是重要的一块。有些动作的时间结构不是区间而是点状的,对其不能用“着”,比如“死”“开除”,这也是一种形式上的旁证。点状的时间结构不能包含区间状的时间结构,正如0不能做分母。 【相关】 【语义计算:李白对话录系列】 中文处理 Parsing 【置顶:立委NLP博文一览】 《朝华午拾》总目录
个人分类: 立委科普|3964 次阅读|0 个评论
字本位与中文信息处理【精品推荐-doc】字本位与汉语形式化
geneculture 2017-7-4 05:34
字本位与中文信息处理 【精品推荐-doc】 http://www.doc88.com/p-674124611841.html http://www.doc88.com/p-9425499517224.html http://blog.sina.com.cn/s/blog_65197d9301010mgx.html (专家们的推荐和评语) 字本位与汉语形式化 http://www.chinadmd.com/file/ce6soairws6iu6vxepcasvez_1.html http://3y.uu456.com/bp_26avk8ex1f0h1lk029vg_1.html 融智学导论 http://3y.uu456.com/bp_6himu4yeki6ksx798r6n_1.html 一种知识信息数据处理方法及产品 http://blog.sina.com.cn/s/blog_65197d930100z1q8.html (获奖证书和美国的翻译引用) http://survivor99.com/pscience/zxh/zxh2.htm
个人分类: 双语信息处理|304 次阅读|0 个评论
《理解:关键在歧义化解》作者:邹晓辉Geneculture)2017-07-01
geneculture 2017-7-1 03:59
今天是七一(昨晚递交了英文稿,总觉不如母语来得顺畅,于是,辗转难眠,获灵感记录在此。应该可写出一篇乃至一部论述理解与化解歧义的核心基础论著《理解:关键在歧义化解》作者:邹晓辉Geneculture)2017-07-01凌晨3:54
个人分类: 学术研究|322 次阅读|0 个评论
自然语言理解:语言歧义化解(预防各类误解)
geneculture 2017-6-24 07:46
自然语言理解:语言歧义化解(预防各类误解) 八字详解以及八语详例再加三多(语种、学科、媒体)和三跨(学科、领域、行业)几乎枚举了所有的可能情形(这就为语言、知识、软件三类测序定位系统的建立奠定了基础:每个人的言和语的选用过程均可自动记录下来,就像棋谱菜单那样存入语言、知识、软件三个中心随时调用)这就是我考虑的GLPS、GKPS和GSPS即语言、知识、软件三大全球定位系统。它们将为人类的言语行为、思想过程、人机交互确立可遵循的法和标准(我所学的通信、语言、法律和心智哲学以及高等教育学与决策管理学等知识也就都派上了实际用场)--网络知识经济时代的立法者由此也就自然而然地发挥了应有的作用。--邹晓辉Geneculture中美塞尔研究中心主任研究员2017-06-24于中国地质大学(北京)国际会议中心926房
个人分类: 学术研究|572 次阅读|3 个评论
什么是理解(如何做到可形式化地自动判断)?
geneculture 2017-6-22 20:24
这次法国和瑞典之行,我邹晓辉最大的几点收获就是: 首先,不仅在学术上快速收敛了今后融智研究的聚焦方向,而且还对知识中心的推广任务也都有了清晰而明确的具体目标。 其次,不仅对于人机分工与合作的一系列切入点有了具体而精准的判断,而且还对人类长期困扰的歧义、悖论和两难等问题也都有了更加聚焦的攻克方略。 最后,进一步验证了工程融智学的言识软硬形式化系统工程以及应用融智学的教管学用等社会化系统工程乃至理论融智学的字式图表(文化基因方面的)智能化系统工程涉及的一连串成双成对概念孪生术语体系的独特魅力。
个人分类: 学术研究|517 次阅读|0 个评论
排除歧义:加强人际交流效果,提升人机交互品质
geneculture 2017-4-14 13:20
针对一些人对双字棋盘的误解和误判(在他们心里想象:它仅仅是基于文字的关键字传播,其实并非如此,因为,双字棋盘本身就是与其真实语言场景配套的实际情形--内心语境与外部语境及其社会习惯用法,等等,联系在一起的,其科技产品及服务已经进入到可实质性应用的阶段了,当然,其科学原理仍然属于学术成果可继续交流以帮助更多的人理解其具有的排除歧义加强人际交流效果和提升人机交互品质,进而,有益于人们理解它对于知识经济、知识计量与知识中心乃至知识大生产的实际作用、价值和意义),原创者邹晓辉做了以下回应:学术研究和学术探讨,一定要首先搞清楚事实,特别忌讳:还没有搞懂就主观臆断!第一,自然语言理解所涉及的自然语言本身就是与说话的实际情景分不开的。第二,专家知识获取及其形式化表示以及有针对性地重用,都离不开特定的知识产生和实际应用的具体情境。换句话说,语言文字和知识概念都是从具体的实际场景或语境中提炼、抽取和抽象出来的。超级双脑智慧能力自然要比单纯的人脑或电脑甚至两者的简单相加要优越许多。第三,何况还有工程融智学所述的八大形式体系与应用融智学所述的八大学问体系以及理论融智学八大原理体系及其三类信息基本定律以及人机双脑协同智慧能力的观点和方法及其配套的体系支撑。由此可见,它那里仅仅是一个文字或关键字的什么传播的问题?古人云“失之毫厘,谬之千里”。这么清楚的双字棋盘为何好会被误解?就是因为语言文字的歧义(多义性)所致,实质上是各自背景知识差异所致。
个人分类: 生活点滴|378 次阅读|0 个评论
【社煤挖掘:大数据告诉我们,希拉里选情告急】
热度 3 liwei999 2016-11-1 07:22
这是最近最近一周的对比图: 的确显得不妙,川大叔领先了。是不是因为FBI重启调查造成的结果? 这是过去24小时的图: 这是一个月的涨跌对比: 至此局势基本清晰了:希拉里的确选情告急。MD 这大选真是瞬息万变啊,不久前还是喜妈领先或胶着,如今川大叔居然翻身了,选情的变化无常真是让人惊心动魄。 这是last week: 这一周喜婆,很被动很不利。过去24小时 一直在零下20上下,而老川在零上10左右,有30点(note:不是传统的 percentage points)的差距 NND: 看看更大的背景,过去三个月的选情对比: 原来是, 喜大妈好容易领先了,此前一直落后,直到九月底。九月底到十月中是喜妈的极盛期,是川普的麻烦期。 至于热议度,从来都没有变过,总是川普压倒: 眼球数也是一样: 一年来的狂热度(passion intensity)基本上也是川普领先,但喜婆也有不有不少强烈粉她或恨她的,所以曲线有交叉: 这个 passion intensity 与所谓 engagement 应该有强烈的正相关,因为你痴迷或痛恨一个 candidate 你就愿意尽一切所能去投入、鼓噪、撕逼。 最好是赶快把川大叔的最新丑闻抖出来。这家伙那么多年,难道就留不下比电话录音更猛、更铁的丑闻证据。常识告诉我们肯定有 skeleton in the closet,可是这家伙太狡猾,可能一辈子做商人太过精明,连染有液体的内裤也不曾留下过?是时候从 closet 拿出来了。反正这次大选已经 low 得不能再 low 了,索性 low 到底。不过如果要是有,不会等到今天,大选只剩下一周、先期投票已经开始。 这么看来,作为 data scientist,我不敢不尊重 data 一厢情愿宣传喜妈的赢面大了。赶巧我一周前调查的那个月是克林顿选情的黄金月,结果令人鼓舞。 我们有 27 种 filters,用我们的大数据平台可以把数据任意组合切割,要是在会玩的分析师手中,可以做出很漂亮的各种角度的分析报告和图表出来。地理、时间只是其中两项。 邮电门是摧毁性的。FBI 选在大选前一周重启,这个简直是不可思议。比川普的录音曝光的时间点厉害。那家印度所谓AI公司押宝可能押对了,虽然对于数据的分析能力和角度,远不如我们的平台的丰富灵活。他们基本只有一个 engagement 的度量。无论怎么说,希拉里最近选情告急是显然的。至于这种告急多大程度上影响真正的选票,还需要研究。 朋友提醒所谓社会媒体,其实是 pull 和 push 两种信息的交融,其来源也包含了不少news等,这些自上而下的贴子反映的是两党宣传部门的调子,高音量,影响也大,但并非真正的普罗网虫自下而上的好恶和呼声,最好是尽可能剔除前者才能看清真正的民意。下面的一个月走势对比图,我们只留下 twitter,FB,blog 和 microblog 四种社会媒体,剔除了 news 和其他的社会媒体: 下面是推特 only,大同小异: 对比一下所有的社会媒体,包括 news 网站,似乎对于这次大选,pull 和 push的确是混杂的,而且并没有大的冲突和鸿沟: 希拉里为什么选情告急?看看近一个月的希拉里云图,开始红多绿少了: 对比一下川普的云图,是红绿相当,趋向是绿有变多的趋势,尤其是第二张情绪(emotion)性云图: 再看看近一周的云图对比, 舆论和选情的确在发生微妙的变化。这是川普最近一周的sentiment 云图: 对比喜婆婆的一周云图: 下面是网民的针对希拉里来的正负行为表述的云图: not vote 希拉里的呼声与 vote for her 的不相上下。对比一下川普最近一周的呼声: vote 的呼声超过 not vote for him 这是最近一周关于克林顿流传最广的posts: FBI 重启调查显然被川普利用到了极致,影响深远。 Most popular posts last week by engagement: Most popular posts last week on Clinton by replies and comments: Some random sample posts: negative comments are rampant on Clinton recently: 如果这次希拉里输了,the FBI director 居功至伟。因为自从录音丑闻以后,选情对希拉里极为有利,选情的大幅度下滑与FBI重启调查紧密相关。媒体的特点是打摆子,再热的话题随着时间也会冷却,被其他话题代替。这次的问题在,FBI 重启电邮门调查的话题还没等到冷却,大选就结束了,媒体和话题对选民的影响当下为重。而录音丑闻的话题显然已经度过了发酵和热议期,已经冷却,被 FBI 话题代替了。从爆料的角度,录音丑闻略微早了一些,可谁料到在这个节骨眼 FBI 突然来这么一招呢。 看看最近一周的#Hashtags,也可以了解一点社会媒体话题的热度: 与事件有关的有: #fbi #hillarysemails #hillarysemail #podestaemails19 #podestaemails20 Negative ones include: #wikileaks #neverhillary #crookedhillary #votetrump Look at the buzz around Hillary below: the biggest is FBI in the brands cloud mentioned with her in the last week's data: The overall buzz last week: 这是最近一周有关希拉里话题的emoji图: 虽然说笑比哭还,希拉里及其阵营和粉丝却笑不起来,一周内用到这个话题的emoji总数高达 12,894,243 。这也是社会媒体的特点吧,用图画表达情绪。情绪的主调就是 哭。邮件门终于炸了。 现在的纠结是,【大数据告诉我们,希拉里选情告急】,到底发还是不发?为了党派利益和反川立场,不能发。长老川志气,灭吾党威风。为了 data scientist 的职业精神,应该发。一切从数据和事实出发,是信息时代之基。中和的办法是,先发一篇批驳那篇流传甚广的所谓印度AI公司预测川普要赢,因为那一篇的调查区间与我此前做的调查区间基本相同,那是希拉里选情最好的一个月,他们居然根据 engagement alone 大嘴巴预测川普的胜选,根本就没有深度数据的精神,就是赌一把而已。也许等批完了伪AI,宣扬了真NLU,然后再发这篇 【大数据告诉我们,希拉里选情告急】 FBI director 说这次重启调查,需要很长时间才能厘清。现在只是有了新线索需要重启,不能说明希拉里有罪无罪。没有结论前,先弄得满城风雨,客观上就是给选情带来变数。虽然在 prove 有罪前,都应该假定无罪,但是只要有风声,人就不可能不受影响。所以说这个时间点是最关键的。如果这次重启调查另有黑箱,就更惊心动魄了。如果不是有背后的黑箱和势力,这个时间点的电邮门爆炸纯属与新线索的发现巧合,那就是希拉里的运气不佳,命无天子之福。一辈子强性格,卧薪尝胆,忍辱负重,功亏一篑,无功而返,保不准还有牢狱之灾。可以预测,大选失败就是她急剧衰老的开始。 一周前有个记者interview川普,川普一再说,希拉里这个犯罪的人,根本就不该被允许参加竞选。记者问,哪里犯罪了?川普说电邮门泄密,还有删除邮件隐瞒罪恶。当时这个重启调查还没有。记者问,这个案子不是有结论了吗,难到你不相信FBI的结论?川普说,他们弄错了,把罪犯轻易放了。这是一个腐烂的机构,blah blah。可是,同样这个组织,老川现在是赞誉有加。这就是一个无法无天满嘴跑火车的老狐狸。法律对他是儿戏,顺着他的就对,不顺着他心意的就是 corrupt,rigged,这种人怎么可以放心让他当总统? 中间选民的数量在这种拉锯战中至关重要,据说不少。中间选民如果决定投票,其趋向基本决定于大选前一周的舆论趋向。本来是无所谓是鸡是鸭的,如今满世界说一方不好,合理的推断就是去投另一方了。现在看来,这场竞赛的确是拉锯战,很胶着,不是一方远远超过另一方。一个月前,当录音丑闻爆料的时候,那个时间点,希拉里远远超过川普,毫无悬念。一个月不到,选情大变,就不好说了,迹象是,仍然胶着。 不过,反过来看,川普的 popularity 的确是民意的反映。不管这个人怎么让人厌恶,他所批判的问题的确长久存在。某种意义上,Sanders 这样的极端社会主义者今年能有不俗的表现,成为很多年轻一代的偶像,也是基于类似的对现状不满、对establishment的反叛的民意。而希拉里显然是体系内的老旧派,让人看不到变革的希望。人心思变的时候,一个体系外的怪物也可以被寄托希望。至少他敢于做不同事情,没有瓶瓶罐罐的牵扯。 上台就上台吧,看看他造出一个什么世界。 老闻100年前就说过: 这是一沟绝望的死水,清风吹不起半点漪沦。不如多扔些破铜烂铁,爽性泼你的剩菜残羹。 。。。。。。 这是一沟绝望的死水,这里断不是美的所在,不如让给丑恶来开垦,看它造出个什么世界。 【相关】 Trump sucks in social media big data in Spanish Did Trump’s Gettysburg speech enable the support rate to soar as claimed? 【社煤挖掘:川普的葛底斯堡演讲使支持率飙升了吗?】 【社煤挖掘:为什么要选ta而不是ta做总统?】 Big data mining shows clear social rating decline of Trump last month Clinton, 5 years ago. How time flies … 【社媒挖掘:川大叔喜大妈谁长出了总统样?】 【川普和希拉里的幽默竞赛】 【大数据舆情挖掘:希拉里川普最近一个月的形象消长】 欧阳峰: 论保守派该投票克林顿 【立委科普:自动民调】 【关于舆情挖掘】 《朝华午拾》总目录 【关于立委NLP的《关于系列》】 【置顶:立委NLP博文一览】 【 立委NLP频道 】
个人分类: 社媒挖掘|2948 次阅读|2 个评论
《立委科普:NLP系统语义模块的任务》
热度 1 liwei999 2016-9-8 20:16
本篇旨在探讨NLP(Natural Language Processing)语义模块的任务,尤其在知识图谱应用中。探讨之前,我们先站在万米高空鸟瞰一下语义模块在语言学和NLP的主要模块的架构中位于何处。 语言学的教科书通常把语言文本研究从浅入深划分为这么几个分支:词法(morphology)、句法(syntax)、语义(semantics)和语用(pragmatics)。还有另一个维度的分支,叫篇章研究(discourse study),是跨句进行,其他的研究一般限于句内。词法句法的研究成果在 NLP 中表现为 parser,可以自动把线性字符串的语句分析为句法树结构,千变万化的语句因此化为有限的句型或 patterns,为语言理解和应用提供了坚实的基础。语义处于句法之后、语用之前,我们叫它为语义中间件 (middleware),因为它是领域独立的语言研究的终点,支持的是依赖领域和应用的语用。这个语义中间件的任务也可以留到语用阶段在语义落地(semantic grounding)的时候根据语用对语义的要求来一起做,但是理论上,总有一部分语义工作有足够的领域独立性,值得提前做好,来支持种种不同的语用场景和应用,减轻语用模块的负担。 如此定义的语义模块(语义中间件),主要是寻找 hidden links,譬如隐含的逻辑主语、宾语 等。这些在句法阶段没有显性表明,但是有足够证据去确定如何填补。填补的时候,一个是利用句法(显性的links),一个是利用 ontology,通常是二者的结合。词驱动(word-driven)来做,是一个很 tractable 的任务,是比parsing更琐碎但难度较低的工作,因为要结构有结构,要ontology有ontology(包括动态形成的ontology节点,譬如NE专名的分类),条件比纯句法分析模块只有线性的pattern可用,是成熟多了。其有用性还是不太清晰: argument 之一就是,如果 hidden 的语义重要,人为什么不用显性句法手段?即便在一个句子的选定的句法结构中,某个重要的语义难以显性表达,如果足够重要,人就会换一种句法结构在另一个句子显性表达出来。如果上述 argument 有一定的道理,那么不做 hidden 语义,对于大数据挖掘,应该不会有太大的损害。至少在大数据挖掘这样的场景,信息的冗余性足以弥补 个体 hidden 语义的不全。在句法结束的时候,有些句子提到的 arg(s) 并没有到位,可以说是不饱和(unsaturated)。语义中间件的任务就是把句法没有做全的不饱和的坑填得饱和,hidden links 建立了,于是就饱和了。如果句法模块和语义模块以后,仍然不饱和,就应该在 discourse 中去找。如果 discourse 中还是没找到,那么理论上是应该通过常识去饱和它。 回到万米高空俯瞰,昨天还在想所谓“语义计算”到底包含哪些呢。从 community 来看,相关的方面有:(1)WSD(Word Sense Disambiguation); (2) FrameNet (role labeling); (3) IE(Information Extraction)。“经典”IE (MUC IE 传统)里面一般分 NE、relationship、event,外加 Coreference,等任务。从结构图的角度看,NE 和 WSD 是做 node 的语义计算;FrameNet 和 IE Template (for relationship or event) 是做 arc (link)的语义计算。这样来看 community 定义的几个任务和方向,可以发现,(1) 和 (2) 都是学究式的任务,不实用。(3) 是最接地气的东西,是应用(apps)直接需要的。但是 IE 是针对领域的,直接为产品服务的,不好抽象,那么就可以想想什么东西是句法之后,语用之前,最能帮助 IE。其中之一就是 Coreference,这个任务已经被 IE 收编了,但它实际上是独立于领域的篇章(discourse)尺度的语义计算,是为了支持 IE 的跨句整合的。 沿着这个思路,我们还可以细化,根据实际需求,我们定义过三个任务,觉得应该在语义中间件里面做,它们应该可以惠及所有的应用:第一个是 同位语关系,这个可以看成是 Corference之一种;第二个是 部分和整体的关系(譬如,苹果和iPhone);第三个 原因和结果的关系。上述三个关系不限于句法短距离,也包括远距离的,甚至跨句的这类联系。我们一直在这三个关系,加上代词的coreference (包括专名的 aliasing) 上下功夫,比在 hidden 逻辑主谓宾方面更多,因为前者直接服务于 local IE 以后的 IE,以便整合成图谱,是整合的粘合剂,后者大多可以通过信息冗余去做弥补。 以上说的是实践中摸索出来的体会,就是自然而然这么走下来的。local IE 在抓取信息填 IE Template 里面的坑的时候,所看到的都是局部的信息,所填坑的材料经常很“虚”。虚的极端例子就是代词(“它”,“这个”),或者 一些指代性的名词(“这台电脑”),这些东西只能作为桥梁,不能真正导致图谱。这时候语义模块在上述四个方面所做的工作,就可以帮助把这些虚的材料,变得实在,这是通向图谱的一个很重要的支持。 大而言之,语义中间件做到什么程度合适,有很大的争论空间。在确定应用之前,不少细线条语义进一步伸展没有太大意义,或者劳而少功。就是说在句法把结构的框架搭起来以后,在语用层面的具体应用确定之前,到底要做多少语义计算,不是容易说清楚的,直觉上和经验上,不赞成做得太多。从某种意义上看,费尔默创立 FrameNet 就是想把语义中间件进行到底。理论上,他的深入是有道理的,因为在 arg structure (句法subcat的拿手好戏)之后,如果要深入,domain independent 的 Frame hierarchy 是通向语用的深度桥梁。起码理论上如此。但是我们做了18年的 IE 以后,结论是,费尔默那个语义计算的路子基本是歧途。没感觉到啥好处,却带来了很大的 overhead,可操作性很差,也并不省功。IE 领域用 Template 定义语用领域的需求,没有人主张把这些 Templates 定义在 FrameNet 的 hierarchy 上面,因为感觉不到需要,而且也不现实。100 年后,也许 FrameNet 可以被重新发现,因为那时候的语用落地已经太多了,需要组织组织了。FrameNet 正好提供了一个组织和整合的框架,如今的语用落地都是零星的。 在 立委牌 NLP University 中,能看懂上面这些参杂了些假洋鬼子话(术语)的“高阶科普”的后学,是可以授予学位的。这个学位是硬通货。看不懂也没关系,可以视为狂人乱语,或者是误入迷宫,不隔行也如山,耽误了你玩深度学习(dl)的宝贵时间。 【相关】 《泥沙龙李白对话录:关于纯语义系统》 《语义三巨人》 【 NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈 】 《泥沙龙铿锵三人行:句法语义纠缠论》 【立委科普:结构歧义的休眠唤醒演义】 【科研笔记:NLP “毛毛虫” 笔记,从一维到二维】 【置顶:立委NLP博文一览】 《朝华午拾》总目录
个人分类: 立委科普|4254 次阅读|1 个评论
【离开皇冠上的明珠只有一步之遥的感觉】
热度 1 liwei999 2016-8-21 19:28
parsing 是最好的游戏,而且实用。 据说好玩的游戏都没用,有实用价值的东西做不成游戏。但是,对于AI人员,parsing 却是这么一个最好玩但也最有用的游戏。纵情于此,乐得其所,死得其所也。 禹: 李老师parser有没有觉得太烧脑呢? 做parser少了个做字。感觉上先是一个比较优雅的规则集,然后发现规则之外又那么多例外,然后开始调规则,解决冲突,然后'整理规则的事情还得亲力亲为,做好几年感觉会不会很烦? 我: 不烦 特别好玩。烦的是好做的语言 做着做着 没啥可做了 那才叫烦。英语就有点做烦了。做中文不烦 还有不少土地没有归顺 夺取一个城池或山头 就如将军打仗赢了一个战役似的 特别有满足感。 梁: 收复领地? 我: 【打过长江去,解放全中国!】。parsing 是最好的游戏。 先撒一个default的网,尽量楼。其实不能算“优雅的规则集”,土八路的战略,谈不上优雅。倒有点像原始积累期的跑马,搂到越多越好。然后才开始 lexicalist 的精度攻坚,这才是愚公移山。在 default 与 lexicalist 的策略之间,建立动态通信管道,一盘棋就下活了。 譬如说吧,汉语离合词,就是一大战役。量词搭配,是中小战役。ABAB、AABB等重叠式是阵地战。定语从句界限不好缠,算是大战役。远距离填坑,反而不算大战役。因为远距离填坑在句法基本到位之后,已经不再是远距离了,而且填的逻辑SVO的坑,大多要语义相谐,变得很琐碎,但其实难度不大。(这就是白老师说的,要让大数据训练自动代替人工的语义中间件的琐碎工作。而且这个大数据是不需要标注的。白老师的RNN宏图不知道啥时开工,或已经开工?) parsing 是最好的游戏,一方面它其实不是愚公面对的似乎永无尽头的大山,虽然这个 monster 看上去还是挺吓人的。但大面上看,结构是可以见底的,细节可以永远纠缠下去。另一方面,它又是公认的世界级人类难题。不少人说,自然语言理解(NLU)是人工智能(AI)的终极难题,而 deep parsing 是公认的通向NLU的必由之路,其重要性可比陈景润为攀登哥德巴赫猜想之巅所做出的1+1=2. 我们这代人不会忘记30多年前迎来“科学的春天”时除迟先生的如花妙笔:“自然科学的皇后是数学。数学的皇冠是数论。哥德巴赫猜想,则是皇冠上的明珠。...... 现在,离开皇冠上的明珠,只有一步之遥了。”(作为 毛时代最后的知青 ,笔者是坐着拖拉机在颠簸的山路回县城的路上读到 徐迟的长篇报告文学作品【哥德巴赫猜想】 的,一口气读完,兴奋不已。) 不世出的林彪都会悲观主义,问红旗到底要打到多久。但做 deep parsing,现在就可以明确地说,红旗登顶在望,短则一年,长则三五年而已。登顶可以定义为 95% 左右的精度广度(f-score, near human performance)。换句话说,就是结构分析的水平已经超过一般人,仅稍逊色于语言学家。譬如, 英语我们五六年前就登顶了 。 最有意义的还是因为 parsing 的确有用,说他是自然语言应用核武器毫不为过。有它没它,做起事来就大不一样。shallow parsing 可以以一当十,到了 deep parsing,就是以一当百+了。换句话说,这是一个已经成熟(90+精度可以认为是成熟了)、潜力几乎无限的技术。 刘: @wei 对parsing的执着令人钦佩 我: 多谢鼓励。parsing 最终落地,不在技术的三五个百分点的差距,而在有没有一个好的产品经理,既懂市场和客户,也欣赏和理解技术的潜力。 刘: 任何技术都是这样的 我: 量变引起质变。90以后,四五个百分点的差别,也许对产品和客户没有太大的影响。但是10多个百分点就大不一样了。譬如,社会媒体 open domain 舆情分析的精度,我们利用 deep parsing support 比对手利用机器学习去做,要高出近20个百分点。结果就天差地别。虽然做出来的报表可以一样花哨,但是真要试图利用舆情做具体分析并支持决策,这样的差距是糊弄不过去的。大数据的统计性过滤可以容忍一定的错误,但不能容忍才六七十精度的系统。 当然也有客户本来就是做报表赶时髦,而不是利用 insights 帮助调整 marketing 的策略或作为决策的依据,对这类客户,精度和质量不如产品好用、fancy、便宜更能打动他们。而且这类客户目前还不在少数。这时候单单有过硬的技术,也还是使不上劲儿。这实际上也是市场还不够成熟的一个表现。拥抱大数据成为潮流后,市场的消化、识别和运用能力还没跟上来。从这个角度看市场,北美的市场成熟度比较东土,明显成熟多了。 【相关】 泥沙龙笔记:parsing 是引擎的核武器,再论NLP与搜索 泥沙龙笔记:从 sparse data 再论parsing乃是NLP应用的核武器 It is untrue that Google SyntaxNet is the “world’s most accurate parser” 【立委科普:NLP核武器的奥秘】 【 关于 parsing 】 【关于中文NLP】 【置顶:立委NLP博文一览】 《朝华午拾》总目录
个人分类: 立委科普|5210 次阅读|1 个评论
自然语言理解(NLU)概念浅析
热度 7 brygid 2016-3-5 11:57
近来,人工智能(AI)行业利好消息不断,各大巨头都在积极拼抢这个领域的人才,笔者最近也频繁收到相关方面的咨询和讨论,不得不说,有时候大家真的搞错。人工智能是个非常大的概念,囊括了几乎所有学科,并非单纯计算机、通信、声学、光学等领域,也并非热炒的机器学习(例如深度学习和强化学习)就能实现的。然而,基于大数据和机器学习的狭义人工智能,确实已经给人类生活带来了巨大的变化,比如搜索、电商、广告、社交、语音等等。 一直以来,人们似乎都把语音识别看的极其重要,并认为语音识别就是最接近人工智能的领域。实际上这是一个误区,语音和按键、触摸、手势等方法一样,只是人类交互的一种手段。也有很多人认为语音帮助人类产生了智慧,然而,这一观点并没有有力的证据支撑。目前,这方面的基础研究还没有实质性的进展,我们对人体精密构造的认知还是非常浅薄的,至于智慧更是几乎一无所知。唯一能推断的就是,语音交互确实是我们获取知识的一种重要手段。 鉴于以上的认识和误解,笔者认为应该写篇这方面的科普文章,虽然笔者也不精通这个领域,但是我们可以从底层声学这个范畴来思考和讨论一下人工智能相关的概念,确实这方面通俗易懂的资料太少了,也希望更多学术和产业领域的大牛们来指正和探讨。 在此,笔者要先摆明自己的观点,目前人工智能的相关应用中,语音识别并非是关键点,而且语音识别也并未给我们生活带来多大变化。语音识别经过十多年的高速发展,特别是结合深度学习的融合发展,目前的精度已经相当高,然而达到99%以后,再提升就显得非常困难。但为什么语音识别的精度到达如此程度,我们却对其仍然不满意呢?其实,这和语音识别的关系不大,是我们误把语言理解的概念强加给了语音识别。实际上,语音识别只是人工智能中的一个小学科,现在也可以算是深度学习中的一个分支。类似于人类,语音识别至多是我们听觉系统内的一个神经单元,只负责将语言转化成人类可听到的信号激励,若在计算机应用中,就是转化成我们常说的文字。 那么关键点在哪? 从各大巨头发布的宣传资料和介绍的相关信息来看,实际上大家都在追求: 自然语言处理(Natural Language Process,NLP)或者说自然语言理解(Natural Language Understanding,NLU)的突破。 当然,这也是得益于基础声学和语音识别的巨大进步。 基础声学和语音识别解决的是计算机“听得见”的问题,而NLP实际上就是要解决计算机“听的懂”的问题。 这么看来,“听的懂”才是目前十年内最为关键的问题,下面,笔者就NLP的概念以及国内外的学习资料进行盘点与分析。 语音和语言有何区别? 我们首先要明确一下语音和语言的区别,这是一个基础性的问题。 语音(Speech)是语言(Language)的信号载体,语音是人的发音器官发出的,承载一定的语言意义,而语言才承载人类的智慧。 通俗的讲,语音是天生就存在的,婴儿的咿呀咿呀也算是语音,甚至其哭声也代表一定的意义,而语言则是需要学习不断进化的。 人类的进化为什么自然的选择了语音作为交互的手段?一般认为,是因为语音有着得天独厚优越性,比如声音比光更容易传播,而且不受昼夜变化影响,同时也有更广的传播范围。当然,也有许多科学家提出反对的声音,比如很多动物的听觉实际上比人类更为发达,为什么却没有进化出来语音交互呢?这个问题我们暂时放到后面文章探讨,事实上动物界中的很多动物也会发出一定的声音来进行信息的交互,但是仅有语音交互是不够的。 单独强调语音,而不说语言实际上没有任何意义的。当然语言也不仅是只有语音这一种载体,语音是不好保存和搜索的,所以人类还发明了文字这个神奇的东西。文字却又是通过视觉来感受的,不过文字也仅是帮助我们映射而已。象形文字刚开始的时候,还和视觉有直接的关联。后来,不论是汉语,还是其他语言基本上都进行了抽象,与听觉以及视觉的关联不再明显。到此为止,语言就已经完全抽象出来,和我们所理解的概念相关了,已经远远超过了语音、图像等识别的概念,甚至数学也成为了我们的一种语言。 因此当人类使用语言来存储知识和表示概念的时候,计算机和机器人也就必须学会适应这种方式。也就是说, 计算机和机器人在未来的趋势中,必然是理解语言这个极其复杂而又承载人类知识传承的表达方式。 但是,做到这一点是极其困难的,虽然我们看到了很多的进展,但是,机器理解语言在短期内还无法看到实质性的突破。这个领域需要更多优秀的人才加入,笔者写这篇文章目的也是这个原因,人才的涌入才会带来希望,至少我们不断的积累总会带来些许进步。 如何描述和定义NLP? 事实上,自然语言处理(NLP),或者说自然语言理解(NLU),或者说计算语言学(CL)很难有个准确的定义。1999年美国计算机学家Bill Manaris曾这样描述:自然语言处理是一门研究人与人交际中,以及人与计算机交际中的语言问题的学科。自然语言处理(NLP)研究表示语言能力、语言应用的模型,通过建立计算机框架来实现这样的语言模型,并提出相应的方法来不断地完善这样的语言模型,还要根据这样的语言模型来设计各种实用系统,并探讨这些实用系统的评测技术。笔者认为这个概念定义的比较准确,但又太过泛泛了。所以,很多时候我们仍然非常迷惘,然而这没有问题,因为语言本身就是我们人类最为复杂的概念之一。 这些年NLP的研究得到了前所未有的重视并获得了长足的进步,逐渐地发展成为一门独立的学科。而NLP又与基础声学、语音识别等技术互相渗透,而形成了众多新的研究分支。而这些分支的发展也在大众中混淆了概念,大家干脆就把语音识别理解成了我们上面所啰嗦的那么多内容。 NLP涉及哪些研究内容? 自然语言理解的研究内容包含太多了,我们这里也仅能列举其中一部分,包括中文自动分词(Chinese word segmentation,词性标注(Part-of-speechtagging),句法分析(Parsing),自然语言生成(Naturallanguage generation),文本分类(Textcategorization),信息检索(Information retrieval),信息抽取(Informationextraction),文字校对(Text-proofing),问答系统(Questionanswering),机器翻译(Machine translation),自动摘要(Automaticsummarization),文字蕴涵(Textual entailment)等等,其中,基础声学和语音识别等相关学科也可以纳入这个研究范畴。 自然语言理解研究的目标自然是希望通过图灵测试,包括了语音、形态、语法、语义以及语用等方面,也要解决人类语言中的因果、逻辑和推理的问题。这是非常重要的,我们知道 大数据仅仅是代表了历史的规律和预测的趋势,如果没有因果关系和逻辑推理,计算机和机器人就始终无法为人类提供可参考的建议,甚至是决策。 NLP当前难点都有哪些? 这个就太多了,上面我们提到过了,人类的语言融合了语音和文字,实际上也是听觉和视觉的融合,不是割裂开的。但是,现在这两个学科却是互相独立的,人为造成了这种研究的困难。另外,人类的语言多样化,每种语言的表达方式也千差万别。理想主义甚至认为人类的很多语言知识是与生俱来的,这个说法也有一定的实验支持,声学在线曾经报道过这方面的进展。不过,即使经验主义也是认为语言是通过感官和人脑的联想与抽象得来的。这是个大问题,因为这让很多研究人员没有了思路,科学的进展最怕这种困难。很多时候,我们还都把科学的进展归结为哲学的进步,没有了思路也就很难找到突破点,这需要基础研究的进展。 当然NLP现在实际的技术困难还是语义的复杂性,包含因果关系和逻辑推理的上下文等。现在解决这些问题的思路主要还是深度学习(Deep Learning)。深度学习带给了研究人员一种全新的思路,这倒不是最新的,BP神经网络刚兴起的时候,学术和产业界也是非常热闹,因为当时的研究人员认为总算找到了思路,后来BP神经网络几乎没啥实质进展,渐渐的就冷了很长一段时间。深度学习拓展了神经网络的层次,而且大数据的积累和并行计算的增强则给这种方法奠定了基础,这也是最近机器学习非常火热的原因。因此基于大数据、并行计算的深度学习将会给NLP带来长足的进步,但是若想达到人类的这种理解层次,恐怕仅靠这种方法也很难实现。 NLP学习的参考资料有哪些? 笔者一直在说自然语言理解的问题,文字还是最为重要的知识传承方式,因此自然也要提供些参考资料给大家,但是这个领域的科普书籍实在太少了,笔者也只能推荐一些书籍、网上资料给大家参考学习,姑且先把这篇文章作为入门科普的参考吧。 首先,笔者建议还是要先看斯坦福大学的视频学习课程,哥伦比亚大学的视频学习课程也不错,只是这些课程还是英文的,国内也有几位老师的公开视频可以参考,比如宗成庆老师或者关毅老师的自然语言理解课程,冯志伟老师的计算语言学课程都还不错。微信上不方便放链接,感兴趣的朋友就到我们声学在线的网站上直接点击链接吧。 其次再推荐一些书籍,首推还是Daniel Jurafsky和James H. Martin的《Speech and LanguageProcessing》,已经出第二版本了,也是国内外的主要教材。这两人还写了几本相关方面的书,都还不错,亚马逊等一些线上平台搜索一下就能查到。国内也有冯志伟老师翻译的《自然语言处理综论》可以参考。数学基础稍好的还应该看看《数学之美》(吴军)和《统计学习方法》(李航),计算机编程稍好的更应该看看《机器学习实战》(Peter Harrington)和《Python自然语言处理》(Steven Bird)等。 最后再推荐一些学术会议,通过查询这些学术会议可以获知很多的学术进展,最重要的是,可以通过这些学术组织的会员和文章了解很多相关的研究单位,这些学术会议包括:ACL: TheAssociation for Computational Linguistics ,AAAI:Association for the Advancement of Artificial Intelligence ,ICCL: TheInternational Committee on Computational Linguistics ,COLIPS: TheChinese and Oriental Languages Information Processing Society 以及中文信息学会等。 NLP都有哪些知名研究机构? 笔者通过声学在线的众多朋友汇总了一些信息,可能不是很全面,不足的地方还请各位批评指正,这些研究机构(排名不分先后)包括:斯坦福大学自然语言处理研究小组,卡内基梅隆大学语言技术研究院,哥伦比亚大学自然语言处理研究组,约翰霍普金斯大学语言和语音处理研究组,康奈尔大学NLP研究组,宾夕法尼亚大学NLP研究组,伊利诺伊大学香槟分校NLP团队,南加利福尼亚大学自然语言研究组,爱丁堡大学语言与计算研究所,谷歌苏黎世研究院,亚马逊NLP研究组,香港科技大学NLP实验室,中科院计算机所自然语言处理研究组,北京大学计算语言学研究所,清华大学人机交互与媒体集成研究所,中科院声学所语言声学与内容理解重点实验室,中科院自动化所模式识别重点室,百度自然语言处理部,中科大人机语音通信研究评测实验室,哈尔滨工业大学计算机学院智能技术与自然语言处理研究室等。 总之,自然语言理解随着深度学习的发展,还是看到了很多进展,但是NLP所需要解决的语言问题真的是非常复杂,近期内还是难以有所突破。正因为有这些挑战,才更需要更多有才华的人才持续不断的投入这个行业,而且这是未来数十年的新兴行业,现在刚毕业的优秀学生都有可能拿到50万的年薪,其经济收入将是很可观的。当然这也是个问题,虚高的投入或许会给这个行业带来一些阻碍。 声学在线 soundonline
30418 次阅读|10 个评论
从图灵词屋到塞尔字屋:持续了大半个世纪的形式化论题
geneculture 2015-12-28 01:27
持续了大半个世纪的形式化论题:塞尔假设改用的中文字屋与图灵测试所用的英文词屋之间的内在逻辑关系。其中,蕴涵了双重形式化途径, 可采用它的 中文 大字符形式化途径至今为止并未超越 已流行的 英美小字符形式化途径。这个看似仅限于取值的形式化操作,却止步于置信的概念化和社会化进程之中。这个从(图灵)词屋到(塞尔)字屋持续了大半个世纪的自然语言理解的形式化论题,仅仅仅仅因为字与词之间看似(失之)毫厘实则(谬之)千里的歧义而迟迟未获实质性突破。 附录: Twenty-one years in the chinese room John R. Searle In John M. Preston Michael A. Bishop (eds.), Views Into the Chinese Room: New Essays on Searle and Artificial Intelligence. Oxford University Press (2002) http://philpapers.org/rec/SEATYI A chinese room that understands Herbert A. Simon Stuart A. Eisenstadt In John M. Preston Michael A. Bishop (eds.), Views Into the Chinese Room: New Essays on Searle and Artificial Intelligence. Oxford University Press (2003) http://philpapers.org/rec/SIMACR John Searle's chinese room argument John McCarthy Abstract:John Searle begins his ``Consciousness, Explanatory Inversion and Cognitive Science'' with ``Ten years ago in this journal I published an article criticising what I call Strong AI, the view that for a system to have mental states it is sufficient for the system to implement the right sort of program with right inputs and outputs. Strong AI is rather easy to refute and the basic argument can be summarized in one sentence: {it a system, me for example, could implement a program for understanding Chinese, for example, without understanding any Chinese at all.} This idea, when developed, became known as the Chinese Room Argument.'' The Chinese Room Argument can be refuted in one sentence. http://philpapers.org/rec/MCCJSC
个人分类: 双语信息处理|672 次阅读|0 个评论
一个很简单的汉语自动分词系统
热度 2 CanXiang 2012-6-1 11:23
一个很简单的汉语自动分词系统
最近自然语言理解课程刚结课,我就惆怅了... 接踵而至的是相关的课程设计,时间紧迫,要在6月三日之前上交,于是我就选了个最简单的自动分词...(不要鄙视我)。 下面是我写的文章全文(转载注明): 基于最大匹配算法的分词系统实现 1 汉语自动分词概述 汉语自动分词是目前中文信息处理领域公认的一大难题,也是自然语言理解研究领域中最基本的一个环节。中文自动分词就是将用自然语言书写的文章、句段经计算机处理后,以词为单位逐词输出,为紧随其后的加工处理提供先决条件,如图 1 所示。可见,中文自动分词是自然语言处理的第一个步骤,其重要性勿庸置疑。 然而,汉语自动分词存在很大的挑战。命名实体识别、集外词处理和歧义消解是三个最根本又很棘手的问题。这里所谓的命名实体指的是人名、机构名、地名以及其他所有以名称为标识的实体。例如,“计算技术研究所”,“斯琴高娃”,“布宜诺斯艾利斯”,要是在训练集中没有包含这些词的先验知识,那么将它们完整从句子中切分出来是很困难的。集外词也叫做未登录词。这些词的出现是由于数据集范围的局限性以及新词的产生。它们包括了部分的命名实体、网络用语等,如何对这些未能从数据集中获得知识的词切分,依旧值得认真研究。常见的两种汉语分词的歧义有: 1 )交集型切分歧义。例如,给定一个输入句子——“结合成分子”,由于其中的“结合”、“合成”、“成分”和“分子”都能构成词,因此对切分来说造成了一定的困难; 2 )组合型歧义。例如“门把手弄坏了”,由于字之间的不同组合,可能存在的分词结果有:“门 / 把 / 手 / 弄坏了”和“门 / 把手 / 弄 / 坏 / 了”。尽管存在这么多的难以处理的问题,新的分词方法还是在不断被发掘。 本文实现了一个基于前向、后向最大匹配算法的分词系统。对于输入一个的句子或一篇文章,首先,我们用于最大匹配算法在事先构建的字典里找寻最大匹配的词,并记录对应的词性。然后,对相应的分词结果进行切分。最后,通过一个简单的演示系统来直观的展示前向匹配算法与后向匹配算法之间的不同,并给出最终获得的分词结果。 图 1 自然语言理解及其应用 2 国内外相关工作 说到中文自动分词的国内研究,从起步至今已有二十余个年头。有关自动分词的文献也是层出不穷,由于中文自动分词技术覆盖的学科知识较全面,有实力对其进行深入持续研究并获得不俗成果的科研机构国内只有为数不多的几家,如中科院、北大、清华、北京语言学院、东北大学、 IBM 研究院、微软中国研究院等。 获得的一些主要成果如下: 1980 年前后,我国在中文自动分词方面取得初步进展之后,国内的学者开始对中文分类自动标引技术 进行深入研究,目前已经能通过对文中反映主题的关键词的自动抽取与筛选,实现主题自动标引。 1983 年,北航梁南元副教授第一个完成实用的 CDWS 自动分词系统 ,实现了对 2500 万字的现代汉语词频统计工作。此后又有数个系统问世,并提出了 12 种分词方法。 1987 年,作为国家“七五”攻关课题之一的现代汉语分词规范和自动分词方法,已由北京航空航天大学、北京语言学院等十几家单位同时承担,并取得了可喜的进展,目前正向实用化发展。 1990 年末,北京师范大学以何克抗教授为首的课题组完成了实用的自动分词系统。 1995 年,叶新明通过对现有中文自动分词算法的分析,提出了适于中文文献的自动分词算法,该算法通过建立机读词表,以《中图法》作为分类标准,对中文文献实现了自动分类,在财政金融类文献上的测试准确率达到 79% 。 根据 1998 年初,由国家科委基础研究高技术司、国家高技术 863 计划智能计算机系统主题专家组、全国信标委非键盘输入分技术委员会组织的机器翻译系统、自动分词与标注、汉字识别系统、语音识别系统的测评结果,对 229 个测试点的交集型歧义切分字段定点测试,北京工业大学计算机学院提交的系统,准确率为 68.56% ;对 20 个测试点的多义组合型歧义切分字段定点测试,北京工业大学计算机学院提交的系统,准确率为 40.00% 。 1998 年的 863 测试包括自动分词和词性标注 两项内容,在自动分词方面没有明显进展。中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐马模型的汉语词法分析系统 ICTCLAS (Institute of Computing Technology,Chinese Lexical Analysis System) ,该系统的功能有:中文分词,词性标注,未登录词识别。分词正确率高达 97.58%( 最近的 973 专家组评测结果 ) ,基于角色标注的未登录词识别能取得高于 90% 的召回率,其中中国人名的识别召回率接近 98% ,分词和词性标注处理速度为 31.5KB/s 。 分词算法研究是汉语自动分词的重点与难点,仅自 80 年代以来,成果得以公布的自动分词方法和算法就有数十种 ,其中在下文会提及的有正向最大匹配法 FMM 、逆向最大匹配法 BMM 。 3 最大匹配算法 最大匹配算法主要包括正向最大匹配算法、逆向最大匹配算法、双向匹配算法等。 其主要原理都是切分出单字串,然后和词库进行比对,如果是一个词就记录下来, 否则通过增加或者减少一个单字,继续比较,一直还剩下一个单字则终止,如果该单字串无法切分,则作为未登录处理。下面我们主要介绍前向最大匹配与后向最大匹配算法。 3.1 前向最大匹配( FMM ) 假设句子: S=c 1 c 2 …c n ,某一词: w i = c 1 c 2 …c n , m 为词典中最长词的字数。 FMM 算法: (1) 令 i=0 ,当前指针 p i 指向输入字串的初始位置,执行下面的操作: (2) 计算当前指针 p i 到字串某段的字数(即未被切分字串的长度) n, 如果 n=1 ,转( 4 ),结束算法。否则,令 m= 词典中最长单词的字数,如果 nm ,令 m=n ; (3) 从当前 p i 起取 m 个汉字座位词 w i ,判断: a) 如果 w i 确实是词典中的词,则在 w i 后添加一个切分标志,转 (c) ; b) 如果 w i 不是词典中的词且 w i 的长度大于 1 ,讲 w i 从右端去掉一个字,转( a ),步;否则( w i 的长度等于 1 ),则在 w i 后添加一个切分标志,将 w i 作为单字词添加到词典中,执行( c )步; c) 根据 w i 的长度修改指针 p i 的位置,如果 p i ,指向字串末端,转( 4 ),否则, i=i+1 ,返回( 2 )。 (4) 输出切分结果,结束分词程序。 3.2 后向最大匹配( BMM ) 后向最大匹配的算法与前向最大匹配算法相类似,不同之处在于: 1. 它是从后往前找最长的匹配字串; 2. 这从当前字串的前部去掉一个字来找匹配。 我们以下面一个例子来说明它们两者之间的不同之处。 例:假设词典中最长单词的字数为 7 。 输入字串:他是研究生物化学的。 切分过程:他是研究生物化学的。 FMM 切分结果:他 / 是 / 研究生 / 物化 / 学 / 的 / 。 BMM 切分结果:他 / 是 / 研究 / 生物 / 化学 / 的 / 。 总的来说,基于最大匹配算法的分词方法的特点是: 1. 优点: a) 程序简单易行,开发周期短 ; b) 仅需要很少的语言资源(词表),不需要任何词法、句法、语义资源; 2. 弱点: a) 歧义消解的能力差; b) 切分正确率不高,在 95% 左右。 4 分词系统实现 本文实现了一个基于最大匹配的汉语分词系统。下面从算法描述和模块流程来说明此系统。 4.1 模块流程 我们的分词系统共分为三个模块:用户查询模块、 FMM/BMM 分词模块与分词结果输出模块。 4.1.1 用户查询模块 本文考虑用户的实际需求,通过设计友好的用户交流界面来让机器于用户进行互动,最后达到分词的效果,设计分词系统界面如图 2 所示: 图 2 分词系统界面 其中 ① 处为用户输入待分词的句子处。 4.1.2 FMM/BMM 分词模块 图 3 分词 模块 4.1.3 分词结果输出模块 图 4 输出模块 5 实验结果与分析 5.1 实验 实验环境设置如下: 1. MFC 界面, VS2008 编程平台, Win7 操作系统,内存 2.92G ,主频 2.3G 。 2. 使用现代汉语语料库词语作为字典,其中每个词的出现次数大于 50 次。共 16254 个词 +8 种标点符号。词典中部分词语标注结果如图 5 。 第一个实验:我们这里使用《京华烟云》中的片段来说明 FMM 与 BMM 分词结果,并且在 FMM 的输出结果中给出了词性标注,见图 6 。 图 5 现代汉语语料库部分词语以及词性标记 第二个实验:图 7 中通过一个简单的例子来说明分词中存在的歧义: 输入:人的一生是有限的,而为人民服务是无限的。 FMM :人 / 的 / 一生 / 是 / 有限 / 的 / , / 而 / 为人 / 民 / 服务 / 是 / 无限 / 的 / 。 BMM :人 / 的 / 一生 / 是 / 有限 / 的 / , / 而 / 为 / 人民 / 服务 / 是 / 无限 / 的 / 。 其中加黑的部分为歧义字段。 图 6 林语堂《京华烟云》部分分词结果 图 7 FMM 与 BMM 的分词歧义 第三个实验:一段网易新闻的分词以及词性标注结果。 测试语料: 专辑评测:凤凰传奇的第一张唱片“月亮之上”在误打误撞之下成为白金继彩铃歌曲,并在汽车音响中大获全胜。尽管他们在第二张“吉祥如意”的操作依样画葫芦,却悄悄的加大市场的覆盖面。只是在曲风没有很大新突破的情况下,叫座不叫好。但我们可以看到,他们开始变得越来越亲民了。回归到这张“最炫民族风”,唱片公司更是祭出了“民族流行”的旗帜,大打流行牌。的确,新专辑在编曲上比以前的作品更多元化了,也加入了更多原生态的音乐元素,制作也更为丰富,歌曲的完成度也相当的高。可以说,这张“最炫民族风”就是在维持民族腔调的基础上,用混搭做了讨巧的改变而已。就像芭蕾舞版的“红色娘子军”,换汤不换药的点到即止。而“最炫民族风”这张专辑最讨巧的地方,在于对民谣、摇滚、慢嗨、舞曲、嘻哈和新时代等元素的继承发展的同时,又能恰到好处的保持歌曲本身的民歌韵味。比起现在很多的流行歌手一味的卖曲风抓时尚元素的现成粗暴做法,凤凰传奇显然更为细腻而简洁。专辑标题曲“最炫民族风”的旋律煽情,朗朗上口,极具流行性。“高山槐花开”则结合了民乐、新世纪元素,旋律行云流水,让玲花悠游的嗓音穿梭其中,将人带入一片世外桃源。“天蓝蓝”是一副云淡风轻的写意山水画,融合了说唱和节奏布鲁斯。此外作为唱片唯一的环保歌曲,体现了凤凰传奇的“绿色自然主义”。一张专辑下来,草原上风高云清、天苍野茫的爽朗的味道大刀阔斧的渲染开来,首首耐听却丝毫不口水。民族的加上流行元素,的确是比流行歌手的中国风更原生态。 FMM 分词: 专 /a 辑 / 评 /v 测 /v : /w 凤凰 /n 传奇 /n 的 /u 第一 /m 张 /q 唱片 /n “ /w 月亮 /n 之上 /nd ” /w 在 /p 误 /v 打 /v 误 /v 撞 /v 之下 /nd 成为 /v 白 /a 金 /n 继 /v 彩 /n 铃 /n 歌曲 /n , /w 并 /c 在 /p 汽车 /n 音响 /n 中 /nd 大 /a 获 /v 全 /a 胜 /v 。 /w 尽管 /d 他们 /r 在 /p 第二 /m 张 /q “ /w 吉 / 祥 / 如 /v 意 /n ” /w 的 /u 操作 /v 依 /v 样 /n 画 /n 葫芦 /n , /w 却 /d 悄悄 /a 的 /u 加大 /v 市场 /n 的 /u 覆盖 /v 面 /n 。 /w 只是 /d 在 /p 曲 /n 风 /n 没有 /v 很 /d 大 /a 新 /a 突破 /v 的 /u 情况 /n 下 /nd , /w 叫 /v 座 /q 不 /d 叫 /v 好 /a 。 /w 但 /c 我们 /r 可以 /vu 看到 /v , /w 他们 /r 开始 /v 变 /v 得 /u 越来越 /d 亲 /n 民 /n 了 /u 。 /w 回归 /v 到 /v 这 /r 张 /q “ /w 最 /d 炫 / 民族 /n 风 /n ” /w , /w 唱片 /n 公司 /n 更是 /vl 祭 /v 出 /vd 了 /u “ /w 民族 /n 流行 /v ” /w 的 /u 旗帜 /n , /w 大 /a 打 /v 流行 /v 牌 /n 。 /w 的确 /d , /w 新 /a 专 /a 辑 / 在 /p 编 /v 曲 /n 上 /nd 比 /p 以前 /nt 的 /u 作品 /n 更 /d 多元 /n 化 /k 了 /u , /w 也 /d 加入 /v 了 /u 更 /d 多 /a 原生 /v 态 /n 的 /u 音乐 /n 元素 /n , /w 制作 /v 也 /d 更为 /d 丰富 /a , /w 歌曲 /n 的 /u 完成 /v 度 /n 也 /d 相当 /d 的 /u 高 /a 。 /w 可以说 /v , /w 这 /r 张 /q “ /w 最 /d 炫 / 民族 /n 风 /n ” /w 就是 /d 在 /p 维持 /v 民族 /n 腔 /n 调 /v 的 /u 基础上 /nl , /w 用 /v 混 /v 搭 /v 做 /v 了 /u 讨 /v 巧 /a 的 /u 改变 /v 而已 /u 。 /w 就 /d 像 /v 芭蕾舞 /n 版 /n 的 /u “ /w 红色 /n 娘 /n 子 /n 军 /n ” /w , /w 换 /v 汤 /n 不 /d 换 /v 药 /n 的 /u 点 /n 到 /v 即 /d 止 /v 。 /w 而 /c “ /w 最 /d 炫 / 民族 /n 风 /n ” /w 这 /r 张 /q 专 /a 辑 / 最 /d 讨 /v 巧 /a 的 /u 地方 /n , /w 在于 /v 对 /p 民 /n 谣 / 、 /w 摇 /v 滚 /v 、 /w 慢 /a 嗨 /e 、 /w 舞 /v 曲 /n 、 /w 嘻 / 哈 /o 和 /c 新 /a 时代 /nt 等 /u 元素 /n 的 /u 继承 /v 发展 /v 的 /u 同时 /c , /w 又 /d 能 /vu 恰 /d 到 /v 好处 /n 的 /u 保持 /v 歌曲 /n 本身 /n 的 /u 民歌 /n 韵 /n 味 /n 。 /w 比起 /v 现在 /nt 很多 /a 的 /u 流行 /v 歌手 /n 一味 /d 的 /u 卖 /v 曲 /n 风 /n 抓 /v 时 /nt 尚 /d 元素 /n 的 /u 现 /v 成 /v 粗暴 /a 做法 /n , /w 凤凰 /n 传奇 /n 显然 /a 更为 /d 细腻 /a 而 /c 简 /a 洁 / 。 /w 专 /a 辑 / 标题 /n 曲 /n “ /w 最 /d 炫 / 民族 /n 风 /n ” /w 的 /u 旋律 /n 煽 / 情 /n , /w 朗 / 朗 / 上 /nd 口 /n , /w 极 /d 具 /v 流行 /v 性 /k 。 /w “ /w 高山 /n 槐 / 花 /n 开 /v ” /w 则 /c 结合 /v 了 /u 民 /n 乐 /v 、 /w 新 /a 世纪 /nt 元素 /n , /w 旋律 /n 行 /v 云 /n 流水 /n , /w 让 /p 玲 / 花 /n 悠 / 游 /v 的 /u 嗓音 /n 穿 /v 梭 / 其中 /nd , /w 将 /d 人 /n 带 /v 入 /v 一片 /mq 世 /nt 外 /nd 桃 /n 源 /n 。 /w “ /w 天 /nt 蓝 /a 蓝 /a ” /w 是 /vl 一 /m 副 /h 云 /n 淡 /a 风 /n 轻 /a 的 /u 写意 /n 山水 /n 画 /n , /w 融合 /v 了 /u 说 /v 唱 /v 和 /c 节奏 /n 布 /n 鲁 / 斯 /r 。 /w 此外 /c 作为 /v 唱片 /n 唯一 /a 的 /u 环 /n 保 /v 歌曲 /n , /w 体现 /v 了 /u 凤凰 /n 传奇 /n 的 /u “ /w 绿色 /n 自然 /a 主义 /n ” /w 。 /w 一 /m 张 /q 专 /a 辑 / 下来 /vd , /w 草原 /n 上 /nd 风 /n 高 /a 云 /n 清 /a 、 /w 天 /nt 苍 / 野 /a 茫 / 的 /u 爽朗 /a 的 /u 味道 /n 大刀 /n 阔 /a 斧 /n 的 /u 渲染 /v 开来 /v , /w 首 /n 首 /n 耐 /v 听 /v 却 /d 丝毫 /n 不 /d 口 /n 水 /n 。 /w 民族 /n 的 /u 加上 /v 流行 /v 元素 /n , /w 的确 /d 是 /vl 比 /p 流行 /v 歌手 /n 的 /u 中国 /ns 风 /n 更 /d 原生 /v 态 /n 。 /w 5.2 结果分析 尽管 FMM 是最常用的中文自动分词的解决方案,不过,该算法存在几个明显的缺陷,直接限制了其在搜索系统中的实际应用。 5.2.1 长度限制 为了在效率与词长之间作出平衡, FMM 算法必须预先设定一个指定的匹配词长的初始值,这可能会导致以下两种情况: (1) 词长过短时,待识别长词被截断。若词长被设成 5 ,则意味着它只能切分出长度小于或等于 5 的词。当词的词长大于 5 时,例如“小布尔乔维亚情调”,我们最多只能取出其中的 5 个字与词库里的词相匹配,用正向最大匹配法切分后得到的结果是“小布尔乔维”,显然词库里不可能存在这样的词组。此时,我们就无法正确地划分出“小布尔乔维亚情调”这样的词长大于 5 的词。 (2) 词长过长时,分词效率较低。为了避免上述情况的出现,可以选择把最大词长尽可能地加长,但是,这样就会凸显出效率方面的不足。设想当最大词长被设成 8 时,必须截取长度为 8 的词,每次减一字,和词典里的词表进行比对看是否匹配,然而大多数词的词长却只有两三个字,这意味着前 5 次的匹配算法是徒劳的。 因此,必须兼顾词长与效率,既要求分词尽量准确,又要求词长不能太长。 5.2.2 效率低 效率低是使用 FMM 算法必然会出现的一个问题。设想,即便词长可以设定得相当短,例如,在不牺牲分词的准确率的前提下,设词长为 5 ,然而当大多数词的词长为 2 时,至少有 3 次的匹配算法是浪费掉的。理论上,这些被浪费掉的匹配时间是可以通过对算法的改进来弥补的。 5.2.3 掩盖分词歧义 中文是世界上最复杂的自然语言之一,表达方式繁多且语法精妙,以计算机的逻辑很难恰如其分地理解,因此必然会带来分词的歧义性。如下例所示: 输入文本:“研究生涯” FMM 分词结果:“研究生 / 涯” BMM 分词结果:“研究 / 生涯” 词的歧义性使得我们在使用最大匹配算法分词时可能会产生模拟两可的结果,且使用 FMM 与 BMM 分词可能会产生截然不同的结果。尽管使用回溯法或其他方法来计算词的使用频率,可减少出现歧义的可能性,但是类似上文中的例子这样的结果往往是不可避免的。 5.3 总结 本文设计了一个基于最大匹配算法的分词系统。在简单的 MFC 用户界面下,基于现代汉语语料库词典,实现 FMM 和 BMM 算法,并比较了两者,来分析它们用于分词时存在的歧义性;然后还给出了词性标注的结果。最后,我们实验地分析了这个分词系统的效果,发现 FMM 存在长度限制、效率低、掩盖分词歧义等缺点。因此给将来做 FMM 的优化算法提供了思路。 6 参考文献 孙巍 . 一种面向中文信息检索的汉语自动分词方法 . 现代图书情报技术 .2006,7: 33 – 36. 傅立云 , 刘新 . 基于词典的汉语自动分词算法的改进 . 情报杂志 . 2006,1: 40 – 41. 尹锋 . 汉语自动分词研究的现状与新思维 . 现代图书情报技术 . 1998, 4:87-89. 梁南元 . 汉语计算机自动分词知识 . 中文信息学报 . 2000, 4 (2): 37-43. 张国煊 , 王小华 , 周必水 . 快速书面汉语自动分词系统及其算法设计 . 计算机研究与发展 . 2000, 30 (1): 61-65 吴胜远 . 一种汉语分词方法 . 计算机研究与发展 . 2003, 33 (4): 306-311. 郑婧,孙卫 . 国内自然语言处理技术研究与应用的状态 . 数字图书馆论坛 .2008, 7(2): 46-48. 可执行程序.zip
14409 次阅读|6 个评论
象人类一样思考
yinpu 2010-3-31 10:59
象人类一样思考 当我们用人类语言要求你的配偶带一斤菠菜回家的时侯,我们只能用计算机语言要求电脑做一个加法;当我们用人类语言判断两个人相貌很相似的时侯,我们只能用计算机语言要求电脑判断一个数是否大于另一个数;我们甚至可以要求统计全国环保从业女性,用这样简单的文字传达非常复杂的意思。两相对比,人类语言表达的内容抽象而复杂,计算机语言具体而简单。从计算机语言出发表达人类语言的同样功能,往往不是不可能就是将耗费巨大的劳动成本。如果计算机语言也具有人类语言的表达能力,计算机的功能无疑将出现质的飞跃。 人类语言也叫自然语言。让计算机接受人类语言,按照自然语言的指令工作,一直是研究者追求的目标,但迄今为止,还没有真正接近人类语言的计算机语言。困难在两个方面:首先是需要新的语言解析方法,人类语言不象计算机语言,只有少数的命令,自然语言的词汇数量是不受限制的,因此对自然语言的文字处理方法和传统计算机语言有很大差异,简单的形式处理方法不能满足需要;第二个困难是语义表示方法,计算机语言只需要规定一套语法系统,而语义解释不是语言处理软件(编译器或解释器)的任务,语义解释留给应用程序处理,而自然语言的文字和语义是紧密绑定的,语言处理软件必须具有必要的语义处理功能,语言必须以适当的方法表示语义。 作者经十余年研究,抛弃了传统计算机语言的模式,采用新的语言处理理念,称为类自然语言,并据此设计了开蒙语言,具有了人类语言的基本特征。 自然语言和程序设计语言 人类语言和计算机语言的差别在哪里?这是首先要研究的问题。作者认为其最本质的差别在两个方面:其一是知识表示能力;其二是语言开放性。 自然语言的知识表示能力 自然语言天然地蕴含知识。我们说大海的时候,每一个人都知道它是蓝色。说太阳的时候,颜色一定是红色。尽管这两个词汇字面上看不出各自的颜色,但和语言密不可分的知识中已经蕴含了这些属性。相比之下,传统语言几乎不包含任何知识,传统语言的命令一般是处理最细节的数据和操作,如一个整数或一次加法,至于数的意义,计算机语言并不负责解释。 自然语言以同样的方式表达具体和抽象的知识,如果认为大海和太阳是具体的知识,那么大自然则是更为抽象的知识。但在自然语言中,不管具体还是抽象的知识都以相似的形式表示。如爱护大海和热爱大自然,文字上同样简单,买一斤菠菜和办一个婚宴,字面复杂性上没有差别。就是说自然语言可以简单的形式表达复杂的概念,这正是自然语言较计算机语言的优势。 自然语言是开放的语言 自然语言不断进化,不断丰富,新的词汇随着历史进入语言的词典,旧的词汇也经常被赋予新的含义。如计算机技术出现后,出现了新词汇电脑,上网等;工业革命后,词汇车被赋予了新的内涵,除了人力车,畜力车,也包括了自动车。这些语言的扩张,并不需要以重新构造我们的语言体系为代价。因此自然语言是开放的语言,一方面语言的词汇可以无限扩张,称为外延扩张;另一方面词汇的含义可以修改,称为内涵扩张。 而传统语言是封闭的语言,一般由十数个以致上百个命令组成。这些命令是处理语言的软件(编译器或解释器)预设的,编译器或解释器设计完成后,命令的数量、形式和功能也固定了。如果需要增加新命令或修改命令的含义,就需要重新设计语言处理软件。 类自然语言 作者提出类自然语言,企图以接近人类思维的方式实现计算机程序设计。在目前还不能做到完全自由的人类日常语言被计算机理解之前,一种具有自然语言特征、能够实现计算机程序设计的语言是一个必然的过渡。 类自然语言的语言处理平台(程序)和语言本身是两个相对独立的系统,其间通过类自然语言的基本语法和语义规则联系起来。只要遵循类自然语言的语法和语义规则,二者均可独立发展。 词汇 和自然语言一样,类自然语言的基本成分是词汇,词汇数量不受限制。词汇由一个词汇名和若干属性组成,如图1。 图1 一个属性由属性名和属性值构成。一个词汇至少有一个词性属性,这是定义词汇语法地位的属性,不可或缺。其它属性根据词汇的需要定义,数量不限。图2是名词语音的定义。这个名词设定了计算机上处理一段语音所需要的各种属性。 图2 这些属性也有相应名词进一步定义,如图3是属性语音头的定义。其它属性的定义也相似。 图3 语音的数据属性定义完成后,可以动词定义与其相关的动作。图4是动词播放语音,其中的引用对象属性规定这个动词仅用于语音类对象。其它相关动词,如录音,也类似地定义。 图4 以上的词汇细节定义相当繁琐,但这是语言设计者的责任。语言的使用者并不需要了解所有细节,只需要知道和自己的目标有关的知识。 字典 所有的词汇都在字典中定义,字典的结构遵循语言规则,但字典内容独立于语言处理平台。因此修改字典就修改了语言,而不需要重新设计语言处理平台。 知识继承 类自然语言知识继承方式简单,在一名词中定义一词汇类属性,其属性值是另一名词,前一名词将继承后一名词的全部数据属性和适用动词。前者称后代名词,后者称前辈名词。图5中的名词存档语音通过定义一个词汇类属性,并将其属性值定义为语音继承了名词语音的所有属性和适用动词。后代名词中还可以定义自己的其它属性,如果前辈名词中有同名属性,将被后代名词的属性覆盖,如果前辈名词中没有同名属性将增加新属性。任何名词都可以被其它名词作为类词汇继承。 图5 句子和程序 有了名词和其适用动词的定义,我们就可以写出相关的类自然语言程序了: 有存档语音,称为我的歌声。录音我的歌声。播放语音我的歌声。 这个程序有三个句子。第一个句子说明了一个叫我的歌声的对象,这个对象是存档语音类对象。第二句执行动词录音,通过麦克风将声音录入我的歌声中。第三个句子将录制的声音通过喇叭放出。 类自然语言的实现 开蒙语言处理平台由字典管理器、程序编辑器、现场管理器和程序解释器构成。 字典管理器 提供建立、删除、修改、浏览字典和字典中词汇的功能。 程序编辑器 提供开蒙语言程序建立、打开、编辑等功能。由于开蒙语言程序源文件具有结构,普通文本编辑器不能编辑开蒙语言程序。 现场管理器 现场管理器不是独立的应用程序,需使用现场管理器的应用程序通过现场管理器接口命令使用其功能。这些命令提供对象建立、修改、删除、访问、程序执行等功能。 程序解释器 提供开蒙语言程序的解释执行功能。 实例 下面列出几个用开蒙语言编写的程序,这些程序都运行成功。 简单循环 以下脚本实现1到9的阶乘运算。 正文: 有整数,称为p。p是1。有整数,称为i。i是1。如果i10,重复{Link1}。 Link1: p是p*i。i是i+1。 各句语义如下 有整数,称为p :建立一个整数型对象,对象命名为p。 p是1 :将p赋值1 有整数,称为i :建立一个整数型对象,对象名为i。 i是1 :将i赋值1 如果i10,重复{Link1}: 表达式i10为真时反复执行{Link1} {Link1} p是p*i :p赋值p*i i是i+1 :i赋值i+1 很明显,类自然语言实现低层次的程序较传统程序设计语言没有任何优势。{Link1}在开蒙语言中称为链接,相当于C语言中的复合语句。 利用语言知识的例子 以下文字实现录音,对语音滤波后播放。 正文: 有语音,称为原始语音。原始语音下的语音格式是标准语音格式。录音原始语音。FFT原始语音,产生语音频谱。滤波语音频谱和3000和200。逆FFT频谱,产生滤波语音。播放语音滤波语音。 各句语义如下 有语音,称为原始语音 :建立一语音对象,命名为原始语音 原始语音下的语音格式是标准语音格式 :将对象原始语音属性设置成标准语音格式(标准语音格式是字典中的一个词汇,定义了语音格式的各个参数取值)。 录音原始语音 :以动词录音作用于对象原始语音,实现录音操作。录音操作采集的语音数据写入作为属性的文件中。 FFT原始语音,产生语音频谱 :以动词FFT(快速傅立叶变换)作用于对象原始语音,生成一新对象,命名为频谱。 滤波语音频谱和3000和200 :以三目动词滤波作用于对象语音频谱和常量3000及200,以滤除3000Hz以上和200Hz以下的信号。 逆FFT频谱,产生滤波语音 :以动词逆FFT(逆快速傅立叶变换)作用于对象语音频谱,生成一新语音对象,命名为滤波语音。 播放语音滤波语音 :以动词播放语音作用于对象滤波语音,实现滤波后的语音播放。 第一例中类自然语言的一个句子和传统语言相似,这种情况下类自然语言并无优势。第二个例子中,类自然语言的一个句子在传统程序设计语言中可能需要数千行命令实现,这是类自然语言优势所在。 参考文献: 类自然语言程序设计http://www.sciencenet.cn/blog/user_content.aspx?id=249130
个人分类: 类自然语言程序设计|4968 次阅读|2 个评论
象人类一样思考
yinpu 2010-3-31 10:33
象人类一样思考 当我们用人类语言要求你的配偶带一斤菠菜回家的时侯,我们只能用计算机语言要求电脑做一个加法;当我们用人类语言判断两个人相貌很相似的时侯,我们只能用计算机语言要求电脑判断一个数是否大于另一个数;我们甚至可以要求统计全国环保从业女性,用这样简单的文字传达非常复杂的意思。两相对比,人类语言表达的内容抽象而复杂,计算机语言具体而简单。从计算机语言出发表达人类语言的同样功能,往往不是不可能就是将耗费巨大的劳动成本。如果计算机语言也具有人类语言的表达能力,计算机的功能无疑将出现质的飞跃。 人类语言也叫自然语言。让计算机接受人类语言,按照自然语言的指令工作,一直是研究者追求的目标,但迄今为止,还没有真正接近人类语言的计算机语言。困难在两个方面:首先是需要新的语言解析方法,人类语言不象计算机语言,只有少数的命令,自然语言的词汇数量是不受限制的,因此对自然语言的文字处理方法和传统计算机语言有很大差异,简单的形式处理方法不能满足需要;第二个困难是语义表示方法,计算机语言只需要规定一套语法系统,而语义解释不是语言处理软件(编译器或解释器)的任务,语义解释留给应用程序处理,而自然语言的文字和语义是紧密绑定的,语言处理软件必须具有必要的语义处理功能,语言必须以适当的方法表示语义。 作者经十余年研究,抛弃了传统计算机语言的模式,采用新的语言处理理念,称为 类自然语言 ,并据此设计了开蒙语言,具有了人类语言的基本特征。 自然语言和程序设计语言 人类语言和计算机语言的差别在哪里?这是首先要研究的问题。作者认为其最本质的差别在两个方面:其一是知识表示能力;其二是语言开放性。 自然语言的知识表示能力 自然语言天然地蕴含知识。我们说大海的时候,每一个人都知道它是蓝色。说太阳的时候,颜色一定是红色。尽管这两个词汇字面上看不出各自的颜色,但和语言密不可分的知识中已经蕴含了这些属性。相比之下,传统语言几乎不包含任何知识,传统语言的命令一般是处理最细节的数据和操作,如一个整数或一次加法,至于数的意义,计算机语言并不负责解释。 自然语言以同样的方式表达具体和抽象的知识,如果认为大海和太阳是具体的知识,那么大自然则是更为抽象的知识。但在自然语言中,不管具体还是抽象的知识都以相似的形式表示。如爱护大海和热爱大自然,文字上同样简单,买一斤菠菜和办一个婚宴,字面复杂性上没有差别。就是说自然语言可以简单的形式表达复杂的概念,这正是自然语言较计算机语言的优势。 自然语言是开放的语言 自然语言不断进化,不断丰富,新的词汇随着历史进入语言的词典,旧的词汇也经常被赋予新的含义。如计算机技术出现后,出现了新词汇电脑,上网等;工业革命后,词汇车被赋予了新的内涵,除了人力车,畜力车,也包括了自动车。这些语言的扩张,并不需要以重新构造我们的语言体系为代价。因此自然语言是开放的语言,一方面语言的词汇可以无限扩张,称为外延扩张;另一方面词汇的含义可以修改,称为内涵扩张。 而传统语言是封闭的语言,一般由十数个以致上百个命令组成。这些命令是处理语言的软件(编译器或解释器)预设的,编译器或解释器设计完成后,命令的数量、形式和功能也固定了。如果需要增加新命令或修改命令的含义,就需要重新设计语言处理软件。 自然语言可以积累知识 出于以上两个特性,自然语言可以实现知识能由低而高、由具体到抽象逐步积累,即是说利用已有知识表达新的知识。例如我们归纳稻麦等作物,抽象出谷物的概念,再从谷物、薯类等抽象出粮食的概念。还可以演绎的方法产生新的知识,例如具有菠菜的知识后,根据其类属性蔬菜,以及蔬菜的有关知识,可以产生炒菠菜、菠菜汤等知识。 类自然语言 作者提出 类自然语言 ,企图以接近人类思维的方式实现计算机程序设计。在目前还不能做到完全自由的人类日常语言被计算机理解之前,一种具有自然语言特征、能够实现计算机程序设计的语言是一个必然的过渡。 类自然语言的语言处理平台(程序)和语言本身是两个相对独立的系统,其间通过类自然语言的基本语法和语义规则联系起来。只要遵循类自然语言的语法和语义规则,二者均可独立发展。 词汇 和自然语言一样,类自然语言的基本成分是词汇,词汇数量不受限制。词汇由一个词汇名和若干属性组成,如 图 1 。 词汇名 属性 1 属性 2 属性 3 图 1 一个属性由属性名和属性值构成。一个词汇至少有一个词性属性,这是定义词汇语法地位的属性,不可或缺。其它属性根据词汇的需要定义,数量不限。 图 2 是名词语音的定义。这个名词设定了计算机上处理一段语音所需要的各种属性。 图 2 这些属性也有相应名词进一步定义,如 图 3 是属性语音头的定义。其它属性的定义也相似。 图 3 语音的数据属性定义完成后,可以动词定义与其相关的动作。 图 4 是动词播放语音,其中的引用对象属性规定这个动词仅用于语音类对象。其它相关动词,如录音,也类似地定义。 图 4 以上的词汇细节定义相当繁琐,但这是语言设计者的责任。语言的使用者并不需要了解所有细节,只需要知道和自己的目标有关的知识。 字典 所有的词汇都在字典中定义,字典的结构遵循语言规则,但字典内容独立于语言处理平台。因此修改字典就修改了语言,而不需要重新设计语言处理平台。 句子 有了名词和其适用动词的定义,我们就可以写出相关的类自然语言程序了: 有语音,称为我的歌声。录音我的歌声。播放语音我的歌声。 这个程序有三个句子。第一个句子说明了一个叫我的歌声的对象,这个对象是语音类对象。第二句执行动词录音,通过麦克风将声音录入我的歌声中。第三个句子将录制的声音通过喇叭放出。 知识继承 类自然语言知识继承方式简单,在一名词中定义一词汇类属性,其属性值是另一名词,前一名词将继承后一名词的全部数据属性和适用动词。前者称后代名词,后者称前辈名词。 图 5 中的名词单音通过定义一个词汇类属性,并将其属性值定义为语音继承了名词语音的所有属性和适用动词。后代名词中还可以定义自己的其它属性,如果前辈名词中有同名属性,将被后代名词的属性覆盖,如果前辈名词中没有同名属性将增加新属性。 图 5 类自然语言的实现 开蒙语言处理平台由字典管理器、程序编辑器、现场管理器和程序解释器构成。 字典管理器 提供建立、删除、修改、浏览字典和字典中词汇的功能。 程序编辑器 提供开蒙语言程序建立、打开、编辑等功能。由于开蒙语言程序源文件具有结构,普通文本编辑器不能编辑开蒙语言程序。 现场管理器 现场管理器不是独立的应用,应用通过现场管理器接口命令使用其功能。这些命令提供对象建立、修改、删除、访问、程序执行等功能。 程序解释器 提供开蒙语言程序的解释执行功能。 实例 下面列出几个用开蒙语言编写的程序,这些程序全部运行成功。 简单循环 以下脚本实现 1 到 9 的阶乘运算。 正文: 有整数,称为 p 。 p 是 1 。有整数,称为 i 。 i 是 1 。如果 i10 ,重复 {Link1} 。 Link1 : p 是 p*i 。 i 是 i+1 。 各句语义如下 有整数,称为 p : 建立一个整数型对象,对象命名为 p 。 p 是 1 : 将 p 赋值 1 有整数,称为 i : 建立一个整数型对象,对象名为 i 。 i 是 1 : 将 i 赋值 1 如果 i10 ,重复 {Link1} : 表达式 i10 为真时反复执行 {Link1} {Link1} p 是 p*i : p 赋值 p*i i 是 i+1 : i 赋值 i+1 很明显,类自然语言实现低层次的程序较传统程序设计语言没有任何优势。 {Link1} 在开蒙语言中称为链接,相当于 C 语言中的复合语句。 利用语言知识的例子 以下文字实现录音,对语音滤波后播放。 正文: 有语音,称为原始语音。原始语音下的语音格式是标准语音格式。录音原始语音。 FFT 原始语音,产生语音频谱。滤波语音频谱和 3000 和 200 。逆 FFT 频谱,产生滤波语音。播放语音滤波语音。 各句语义如下 有语音,称为原始语音: 建立一语音对象,命名为原始语音 原始语音下的语音格式是标准语音格式: 将对象原始语音属性设置成标准语音格式(标准语音格式是字典中的一个词汇,定义了语音格式的各个参数取值)。 录音原始语音: 以动词录音作用于对象原始语音,实现录音操作。录音操作采集的语音数据写入作为属性的文件中。 FFT 原始语音,产生语音频谱: 以动词 FFT (快速傅立叶变换)作用于对象原始语音,生成一新对象,命名为频谱。 滤波语音频谱和 3000 和 200 : 以三目动词滤波作用于对象语音频谱和常量 3000 及 200 ,以滤除 3000Hz 以上和 200Hz 一下的信号。 逆 FFT 频谱,产生滤波语音: 以动词逆 FFT (逆快速傅立叶变换)作用于对象语音频谱,生成一新对象,命名为滤波语音。 播放语音滤波语音: 以动词播放语音作用于对象滤波语音,实现滤波后的语音播放。 第一例中类自然语言的一个句子和传统语言相似,这种情况下类自然语言并无优势。第二个例子中,类自然语言的一个句子在传统程序设计语言中可能需要数千行命令实现,这是类自然语言优势所在。 参考文献: 类自然语言程序设计 http://www.sciencenet.cn/blog/user_content.aspx?id=249130
个人分类: 类自然语言程序设计|9 次阅读|0 个评论
类自然语言
yinpu 2009-8-15 09:17
本人开发了类自然语言处理系统开蒙语言。已经完成框架设计,并能运行一些数字信号处理,文字处理以及普通的程序。这个语言脱离了传统计算机语言框架,旨在更抽象的层次上实现计算机控制。这个语言象自然语言一样以数量无限的词汇作为语言素材,不再只是数十上百个语句。语言的词汇也象自然语言一样表示知识,因此可以实现知识的积累和逐级抽象,最终接近自然语言。我的博文中介绍了这个语言,望大家评论。
个人分类: 未分类|3934 次阅读|0 个评论
类自然语言程序设计
yinpu 2009-8-13 13:41
类自然语言程序设计 摘要: 本文提出接近自然语言的通用程序设计语言类自然语言,并介绍实现该语言的一个原型 系统开蒙语言处理平台。旨在构建一种在更高层次进行程序设计的语言,以摆脱传 统计算机程序设计语言过于低级、过于细节的程序设计方式。类自然语言象自然语言一样具 有知识表达和处理的能力,可以适应更为复杂、更为抽象的程序设计任务,弥补传统程序设 计语言不长于抽象设计,不长于复杂任务处理的不足。类自然语言使用词汇作为语言基本单 位,词汇的形式和内容接近自然语言。类自然语言是开放的语言,语言的外延和内涵可以任 意扩充,即语言中的词汇数量和每个词汇的涵义不受限制。形式上可以用中文、英文或其它 任何被计算机接受的文字,甚至多种文字混合。本文中提出的所有语言特征都在作者开发的 开蒙语言处理平台上实现。 关键字:类自然语言程序设计,自然语言理解,知识表示 Quasi-Natural Language Programming Abstract A new programming languageQuasi-Natural Language and an implementation of this languageKaimeng language processing platform is introduced in this article. This language represent knowledge as in natural language, is suitable for complicated and abstract requirement, programming at higher level than traditional programming language. Unlimited words are employed in quasi_natural language, which are similar to natural language both in format and content instead of dozens of statements in traditional languages. This language is an open language, both the extension and intension of language are expandable unlimitedly, that is the volume of vocabulary and the meaning of word are unbounded. Any letter or character accepted by computer may serve as alphabet of this language, e.g. Chinese, English even mixture of multi-language. All the features presented in this paper are implemented in Kaimeng, which is developed by author. Key Words Quasi-Natural Language Programming; Natural language understanding; Knowledge representation 1. 引论 传统程序设计语言(以下简称传统语言)在过去数十年取得了巨大成功,由此引发的信息革 命将人类社会带到了前所未有的文明程度。随着这个进程的逐步深入,需要处理越来越复杂 的结构,越来越抽象的概念,传统语言也显得越来越捉襟见肘。而自然语言表达复杂事物则 表现得轻松自如,可以通过少量词语实现复杂事物的抽象概括,通过简单的句子表现极其复 杂的过程。如果实现自然语言程序设计,无疑具有重大意义。但自然语言难以为机器接受, 最大的困难在于如何将自然语言蕴含丰富的知识以计算机可以接受的形式表现出来。因此研 究语言的知识表示形式和利用知识的方式是自然语言编程的主要内容。 实现自然语言程序设计,可在四个方面影响信息科学:一是给程序开发人员提供新的编程工 具,以应付更为复杂、抽象的需求;二是编程方式更友好、更简易,有利于程序设计技术普 及;三是可结合其它技术(如语音识别),提供新型人机交互界面,用户将具有远为丰富的 手段操纵计算机;四是可能给自然语言理解提供可借鉴的语言处理方法。 计算机语言研究的早期就有很多学者对自然语言编程的意义和可行性进行了研究 ,肯定了其价值。其可行性研究尽管流于粗浅,仍然一直有人不断进行尝试,对这个问题 的认识也逐步深入。如Hugo Liu 和Henry Lieberman 在其论文中指出动作、非系动词的动 词映射为函数,名词短语映射为类,形容词修饰映射为类的属性,副词修饰映射为函数的参 数 ,同时论述了对象继承,对象指称等一些自然语言编程中不可回避的重要问题 。 尽管目前尚难实现完全自由的自然语言编程,但只要进行一定的词法和语法限制,就能实现 自然语言形式的计算机程序设计。本文提出一个这样的语言体系模型,称为类自然语言,并 开发了开蒙语言处理平台,验证了这个体系。 2. 类自然语言与传统程序设计语言的区别 自然语言和传统语言最本质的区别在两方面:其一是知识表示:传统语言是过程描述的工具, 本身几乎不包含知识,而自然语言的主要功能是知识表达,语言的词法和语法仅仅是自然 语言中相对次要的因素;其二是语言开放性,自然语言是开放的语言,语言的内涵和外延随 着人类认识的提高可自由增加与更新,而传统语言是封闭的语言,由有限的预定义命令组成, 命令的内容和形式不可变更。围绕这两个本质区别,类自然语言较传统程序设计语言表现出 一些新的特征: 2.1. 知识表示 自然语言蕴含知识。如句子请播放歌曲我的祖国,蕴含了关于什么是歌曲,如何播放, 如何获得歌曲我的祖国等信息,尽管这些信息并没有在句子中出现。因此类自然语言的 首要目标就是表示知识。 2.2. 语言的开放性 自然语言是开放的。人类知识始终处于进化之中,因此自然语言所表示的知识也必须是可编 辑的,语言的外延和内涵都允许增减、修改,即语言的词汇量和词汇的内涵都可以任意改变, 或者说语言是开放的。类自然语言也同样是开放的。 2.3. 语言的独立性 要实现语言的开放,语言处理平台和语言本身必须是两个相对独立的系统。语言的进化不能 以语言处理平台的重新设计为代价。而传统语言处理平台和语言是同一的。语言的编译器或 解释器决定了语言的内容,即语言本身不具备扩充能力。 2.4. 知识的可积累性 语言蕴含的知识可以由少到多,由浅入深积累。知识积累必须由两个条件保证:一是增加新 的知识时,已有知识形式和内容保持有效,除非有意的更新;二是可以直接使用语言中已有 的知识形成更高层次的新知,增加到语言中形成语言的一部分,与语言的原有部分同等使用, 从而逐级抽象,以简单的方式表达复杂概念。 2.5. 知识的继承性 继承是利用已有知识的一种有效方式,在面向对象程序设计方法(OOP)中得到充分体现。 类自然语言采纳这种方法。 2.6. 近自然语言的表达形式 尽管不是必须,类自然语言采取接近自然语言的词法、语法和句型。以减轻学习和使用类自 然语言的负担。语言的形式可以是汉语、英语等任意语言,甚至混合语言。 3. 知识表示 类自然语言的知识表示主要体现在对目标对象数据结构的表示和其适用操作的表示。语言中 的知识都是以词汇的形式出现,如图表 1。每个词汇由词汇名和若干属性构成。 词汇的形式表示: 词汇词汇名属性名属性值{属性名属性值} 一个词汇可以有任意多属性。所有词汇至少有词性属性,该属性决定词汇的语法角色, 其它属性根据需要而定,可任意设置。 图表 1 3.1. 数据结构表示 对象数据结构以树型层次结构表示,图表 2 是.wav 语音对象的数据结构知识表示。左边的 树型列表表示了对象的数据结构,中间列表框中显示的RIFF是对象段标识的数据 值。该对象是对象语音头的一个属性,而语音头又是对象语音的一个属性。结 构中每一个节点称为一个对象,用一个名词定义。 图表 2 名词在词性属性的基础上还必须有数据类型属性,建立对象时按数据类型属性的定 义建立指定类型的对象。 最简单的名词是不具有结构的基本数据类型。开蒙语言有逻辑型、字节型、短整数型、 整数型、浮点型、双精度型、长双精度型和字符型等基本数据类型。如图表 3,定义了词汇 段标识的词性和数据类型。由于这是基本数据类型,不再需要有其它属性。 图表 3 如果名词具有更复杂的结构,则需用更多属性定义。具有结构的名词之数据类型属性都 定义为 复合型 。如 图表 4,名词语音头有5 个属性,其词性和数据类型属性是语法属性,决定词 汇的语法成分,运行时无需为其建立对象。其它3 个属性是实体属性,运行时将按照定义建 立可以访问的对象。而这些属性都需要其它词汇进一步定义,如其段标识属性由图表 3 所示名词段标识进一步定义了其数据类型。文件长度和波形标识也有相应的名 词定义。 图表 4 如果一个名词的实体属性也是复合型,运行时将形成多级层次结构。如图表 5 中名词语 音的各实体属性都是具有结构的复合数据类型,其各属性的表示方式类似图表 4 中表示 语音头属性,建立语音对象时便形成图表 2 表示的树型结构。 图表 5 此外,还允许自定义型数据类型,类自然语言不直接处理这种类型。其处理方法由该类 型的适用动词实现。如图表 6 定义了设备指针,类自然语言不能直接操作设备指针 对象,而必须由其适用的建立动词或删除动词间接操作。 图表 6 3.2. 适用操作的表示 对象的适用操作由动词和运算符体现。类自然语言的动词由动态链接函数和可执行脚本两种 形式实现。动态链接函数是用其它语言按照类自然语言动词接口规范编写的可动态加载的 dll 函数,执行动词时将函数加载到内存直接执行;可执行脚本是用类自然语言编写的程序, 执行动词时将其脚本提交类自然语言解释器解释执行。图表 7 是动词播放语音的定义, 该动词由动态链接函数_PlayWav()实现。图表 8 是动词文本对比的定义,该动词由类自 然语言脚本文本对比.scr实现。动词函数一般具有一个或多个引用对象属性,该属 性是检验一个动词是否适用宾语对象的判据。类自然语言规定名词不可同名,而动词允许同 名,语言解释器可能需要从多个同名动词中根据引用对象属性选择适用动词施加于指定 对象。此外,动词定义中还必须具备加载动词dll 函数或执行类自然语言脚本所必须其它信 息,如的动词路径、动词文件名等属性,如果是dll 函数还必须有动词函数名属 性。对于需要返回执行结果的动词还有生成对象属性如图表 9,动词显示波形执行 后将产生波形显示窗口的指针。 图表 7 图表 8 图表 9 3.3. 知识的继承 类自然语言中知识的继承类似面向对象程序设计的继承,任何名词都可以通过定义一个词 汇类属性继承另一个名词的所有属性,前者称为后代名词或实例名词,后者称为前辈名词 或类名词。用后代名词建立对象时首先按前辈名词的定义建立数据结构,称为前辈对象,然 后按后代名词的定义增加或修改后代名词中定义的属性,形成后代对象。如果后代名词中定 义的属性与前辈对象的属性同名,后代名词的属性定义覆盖前辈对象的属性定义;如果后代 名词中定义的属性没有在前辈对象的树型结构中出现,则在后代对象中增加这个属性。图表 10 和图表 11 表现最简单的继承关系。图表 10 是名词语音格式的定义,图表 11 是名 词标准语音格式的定义。标准语音格式将词汇类属性值定义为语音格式从 而继承语音格式的属性,按照标准语音格式生成对象时,名词标准语音格式中 定义的实体实体属性值覆盖语音格式中的同名属性值(尽管本例中语音格式的各属 性没有赋予具体值)。 图表 10 图表 11 名词语音定义如图表 5,名词我的祖国定义如图表 12。图表 13定义其文件标识。属性通过定义词汇类属性, 名词我的祖国继承语音的所有属性,而我的祖国中定义的其它实体属性覆盖语 音下的同名属性。尽管名词语音具有较复杂的数据结构,但名词我的祖国可以 通过继承的方式直接沿用语音定义的知识,而无需重复繁琐的定义。具有复合结构的 属性也可以实现覆盖,标准语音格式覆盖先辈对象语音中语音格式的属性值, 由于语音格式是复合型,实际上是标准语音格式的下级属性值覆盖原语音格式 的同名下级属性值。属性文件标识也实现相似的属性覆盖。 图表 12 图表 13 依照名词我的祖国建立对象,将形成图表 13 所示结构。 图表 14 4. 词汇分类 类自然语言由数量无限的词汇构成,因此不能象传统语言一样直接对文字进行形式化语法 分析。而是象自然语言一样,先将词汇按词性分类,然后再分析句子的语法结构。词汇的 词性属性定义了词汇语法成份,在开蒙语言词性有:名词、动词、形容词、代词、 连词、介词、数词、结构词以及各种运算符和标点符。随语言研究的逐步深入,还将增加更 多词性。其中结构词用于语言执行的流程控制,不太符合自然语习惯,反而更接近传统程序 设计语言,标点符用于标注一些特殊成分,其它词性的意义和自然语言相似。 (略去先验词有关论述)可以从存在形式和语言脚色两个角度对词汇分类,存在形式上区分 词汇和语言解释器的关系,语言脚色则靠词性上区分词汇在句子中的作用。尽管类自然语言 的所有词汇均在字典中定义,但其中少量用以构成程序框架的词汇功能已经在语言解释器中 设定,称为先验词;其余数量无限的词汇称为字典词,其意义和功能与语言解释器无关,完 全由字典和动词库决定。 4.1. 字典词 名词 名词中至少有词性和数据类型两个属性,这两个属性是先验词汇,只能选用语言处 理平台预设的值。 名词可将词汇类属性值设为另一个名词,从而继承其类名词的所有属性。 代词 可以使用代词指称一个对象。代词是脚本执行时临时建立的词汇,作用域是定义 它的脚本及其下级脚本。代词由引用动词或指代动词建立,脚本执行完毕失效。 一个脚本中不允许出现多个同名代词,后定义的代词覆盖先定义的同名代词。 动词 动词定义一个函数或一个类自然语言脚本,以及动词作用的对象和生成的对象等。执行时语 言处理平台调用定义的函数或脚本。 动词和名词是密切相关的,类似OOP 中类的数据成员和方法成员,动词通过引用对象 属性定义其引用的名词。语言处理平台进行动词引用对象的检验保证动词调用的正确性。 形容词 定义词汇到数值的转换规则。 4.2. 先验词 存在动词 引导一个存在句。以用名词说明一个或多个对象并在现场中建立之。 命名词 作为存在句、更名句、计数句和建立句中的短语,命名现场中的对象。可以为对象赋予一个 不同于其原始名词的名称。 系动词 引导赋值句。实现赋值操作。类自然语言的赋值操作除类似传统语言将基本数据类型的值赋 于一个变量(对象),还可以对一个具有复杂结构的对象赋值。 产生词 作为动词句中的短语,指出该动词句要生成新对象并对生成的对象命名。 建立动词 引导建立句,用名词说明一个或多个对象并建立之。但建立的新对象不加入现场,而是作为 独立对象供后续处理。 加入动词 引导加入句,将一个对象作为属性加入另一个对象。 删除动词 引导删除句,删除一个对象。 更名动词 引导更名句,更改一个对象的名称。 引用动词 引导引用句,在被调用脚本范围内为传入的对象赋予临时名称相当于形式变量。 类自然语言程序设计 第 15 页 共 23 页 作为动词的脚本被调用时解释器会根据动词中引用对象属性向脚本传入对象 指针,引用动词为传入的对象指针命名。 输出动词 引导输出句。作为动词的脚本可在屏幕上输出一个对象,输出动词在一个窗口中 输出指针指定的对象。 指代动词 引导指代句,以为对象指定一代用名。脚本中可以用代名词指称一个对象,指代 动词为该对象指定代名词。 计数动词 引导计数句。由于类自然语言允许现场存在多个同名对象,一个对象指称可能代 表多个对象。计数动词可计算一个对象指称代表的对象数。 结构词 引导结构句,以控制程序的流程。类自然语言的流程控制由唯一一个结构句实现。该句由 结构词如果、结构词否则和结构词重复三个词汇构成。 范围词 引导范围描述子句。类自然语言现场没有限定对象名不可重复,一个对象指称可能引用多个 对象,范围词对所指称对象进一步修饰。开蒙中使用范围词所有和范围词任何。 介词 引起对象定位操作。由于现场是复杂的层次结构,建立新对象可能需要指定目标对象的路径。 介词表明路径描述开始。 从属词 定义对象间的从属关系。描述路径时以从属词连接上下级对象。 连接词 指称多个对象。句子中需要指称多个对象时用连接词分隔多个对象指称。 数词 常数形式的数字。包括整数、长整数、浮点数、双精度数、逻辑数、字符串数。 运算词 各种运算符号。包括算术四则运算、比较运算、逻辑运算、字符串运算、下属运算、筛选运 算和下标运算。 5. 开蒙的语法和语义 5.1. 字符集 所有可打印字符。包括中文和任何其它语言字符。因此类自然语言可以使用中文、英文和其 它任意文字,可以选择任意语种作为语言载体,甚至进行混合语言编程。 5.2. 开蒙语法规则 开蒙的语法相当简单,由于只用于程序设计,除赋值语句外,其它句子不需要主语。主 要语法要素的形式表述如下: 脚本 脚本句子{。句子} 脚本即用符合开蒙语法规则的词汇组合写成的可执行文本。是程序管理的基本单位。脚 本由若干普通句子组成的正文文本和链接组成。 句子 句子 陈述句|结构句|链接 组成脚本的基本单位。有陈述句、结构句和链接三类,陈述句按顺序执行,结构句控制脚本 流程走向,链接则指向另一个脚本。 链接 链接左链接符链接名右链接符 是脚本中嵌入的一个可执行文本。 结构句 结构句 结构词如果逻辑表达式, 链接1 链接2] 作为一个概念验证的原型系统,开蒙目前只使用唯一一个结构句。结构句实现脚本执行 的流程控制,把选择结构和循环结构结合在一个句子中。 存在句 存在句 存在动词 ]名词 存在陈述句在现场中建立一个或多个对象,可指定建立对象的路径,可同时对对象命名。 建立句 建立句 建立动词 ]名词 建立一现场外的一个或多个独立对象,可同时对对象命名。 删除句 删除句 删除动词对象指称 删除现场中的一个或多个对象 更名句 更名句 更名动词对象指称命名词命名字符串 将现场中一个或多个对象更名。 加入句 加入句 加入动词对象指称目标介词对象指称 将一个或多个对象作为属性加入另一个对象。 计数句 计数句 计数动词对象指称目标介词对象指称 计算一个对象指称对应的对象数目,并将所得数字赋予指定对象。 赋值句 赋值句 主语 表达式 对一个已建立的对象赋值。除对一个简单对象赋予基本数据类型值外,还可以对具有复杂结 构的对象一次赋值,不必分别对其每个后代属性赋值。 动词句 动词句 动词 调用一个动词函数。加载一个动词函数,并向该函数传递其所需的对象指针,最后执行该函 数。如果需要用其输出建立新对象,则同时实现新对象建立和命名。语言处理平台不负责实 现动词的功能,动词功能由字典中定义的动词函数或脚本实现。 引用句 引用句 引用动词命名字符串 被调用脚本中为传入的对象指定代用名。引用句执行顺序等于被传入对象顺序。 一个脚本段中不能有同名代名词,如果再次定义同名代名词,后者将取代前面的 指代关系。 指代句 指代句 指代动词对象指称命名词命名字符串 为指定对象指定一代用名。代用名规定同引用句。 输出句 输出句 输出动词对象指称 脚本中设置作为输出的对象。 主语 主语 对象指称{连接词对象指称} 指称赋值陈述句作用的对象。 表达式 由运算词连接的对象指称或数词。 对象指称 对象指称 节点描述 指称一个或多个对象。 范围词 范围词范围词所有|范围词任何 语言处理平台预设的词汇,目前使用全部和任何二词汇。 路径 路径节点描述下 { 节点描述下 } 指定一个或多个对象。 节点描述 节点描述名词 |数值表达式] 指称一个或多个对象。可以条件或下标的方式对指称对象作进一步限定。 引导的数值表达式n指称同名对象之第n个对象。 而 是实际使用的算符,而不是语法说 明)l指称使l为真的同名对象。l中对象指称的默认起点是本对象。 连接词 连接词连接词和 语言处理平台预设的词汇,目前使用和及或二词汇。 命名字符串 不出现预定义标点符号的任意字符串。语言执行器并不要求对象名不重复,其引用的正确性 由程序员自己设计。 6. 开蒙语言处理平台 6.1. 开蒙的结构 开蒙主要由三个部分组成。 字典管理器 实现字典的管理和访问。既是是交互方式字典编辑的工具,又是其它模块访问字典的界面。 类自然语言程序设计 第 20 页 共 23 页 现场管理器 实现现场的管理和访问。包括建立初始现场,在现场中建立、修改、删除对象,撤销现场。 同时也是其它模块访问现场的界面。 语言执行器 执行用类自然语言编写的脚本。对提交执行的脚本进行词法、语法和语义分析,最后执行脚 本。 6.2. 开蒙的几个特点 词汇为基础 语言的基础不再是语言编译器或解释器预设的少量命令,而是不受数量限制的词汇。因此可 以积累无限的知识。 知识的继承 任何名词可以通过定义类词汇继承其它名词,实现方式类似OOP,后代词汇的同名属 性覆盖前代词汇的同名属性。这种继承不但可继承类词汇的结构和数据,同时也继承类词汇 的所有可用动词。词汇可以多重继承。 现场管理 现场管理器提供一个统一的访问界面供语言执行器和动词函数访问现场的所有对象。该界面 接受若干命令实现增加对象、修改对象、删除对象、访问对象等操作。 流程控制 开蒙以唯一的一个结构句实现结构化流程控制。 结构句 结构词如果逻辑表达式, 链接1 链接2] 结构句根据逻辑表达式计算结果的真假分别执行链接1或链接2所代表的脚本。如果执 行的链接前有重复结构,执行完链接后继续执行结构句。因此一个结构句可以囊括选择和循 环两种结构。 7. 应用实例 例子中的黑体字是类自然语言编写的可执行脚本。 7.1. 简单循环 以下脚本实现1 到9 的阶乘运算。 正文:有整数,称为p。p 是1。有整数,称为i。i 是1。如果i10,重复{Link1}。 Link1:p 是p*i。i 是i+1。 各句语义如下 有整数,称为p:建立一个整数型对象,对象命名为p。 p 是1:将p 赋值1 有整数,称为i:建立一个整数型对象,对象名为i。 i 是1:将i 赋值1 如果i10,重复{Link1}:表达式i10 为真时反复执行{Link1} {Link1} p 是p*i:p 赋值p*i i 是i+1:i 赋值i+1 很明显,类自然语言实现低层次的程序较传统程序设计语言没有任何优势。 7.2. 利用语言知识的例子 以下文字实现录音,对语音滤波后播放。 正文:有语音,称为原始语音。原始语音下的语音格式是标准语音格式。录音原始语音。 FFT 原始语音,产生频谱。滤波频谱和3000 和200。逆FFT 频谱,产生滤波语音。播放语 音滤波语音。 各句语义如下 有语音,称为原始语音:建立一语音对象,命名为原始语音 原始语音下的语音格式是标准语音格式:将对象原始语音属性设置成标准语音格式 (标准语音格式是字典中的一个词汇,定义了语音格式的各个参数) 录音原始语音:以动词录音作用于对象原始语音,实现录音操作。录音操作采集 的语音数据写入作为属性的文件中 FFT 原始语音,产生频谱:以动词FFT作用于对象原始语音,生成一新对象,命名 为频谱 高通滤波频谱和3000 和200:以三目动词滤波作用于对象频谱和常量3000及 200 逆FFT 频谱,产生滤波语音:以动词逆FFT作用于对象频谱,生成一新对象,命名 为滤波语音 播放语音滤波语音:以动词播放语音作用于对象滤波语音,实现滤波后的语音播放 第一例中类自然语言的一个句子和传统语言相似,这种情况下类自然语言并无优势。第二个 例子中,类自然语言的一个句子在传统程序设计语言中可能需要数千行命令实现,这是类自 然语言优势所在。 8. 结论 开蒙语言处理平台的开发证明,实现自然语言程序设计是可行的。尽管开蒙语言的 词法和语法还有一定限制,较自然语言仍有一定差别,仍然保留传统语言的痕迹,但开蒙 语言实现了知识表示和语言开放,本质上已经具备自然语言特点。类自然语言在既有知识的 基础上进行程序设计,可以简单的句子表达非常复杂的概念或执行极繁琐的操作。 参考资料: :Toward a Programmatic Semantics of Natural Language Liu, H. Lieberman, H. MIT Media Lab., Massachusetts Inst. of Technol., Cambridge, MA; This paper appears in: Visual Languages and Human Centric Computing, 2004 IEEE Symposium on Publication Date: 30-30 Sept. 2004 On page(s): 281-282 Location: Rome, ISBN: 0-7803-8696-5 INSPEC Accession Number: 8246434 Digital Object Identifier: 10.1109/VLHCC.2004.59 Current Version Published: 2004-12-27 :Feasibility Studies for Programming in Natural Language 2005. Editors: Henry Lieberman and Hugo Liu URL: http://web.media.mit.edu/~lieber/Publications/Feasibility-Nat-Lang-Prog.pdf Tags: development imported language lieberman pacman programming software : Programmatic semantics for natural language interfaces Full text Pdf (857 KB) Source Conference on Human Factors in Computing Systems archive CHI '05 extended abstracts on Human factors in computing systems table of contents Portland, OR, USA SESSION: Late breaking results: short papers table of contents Pages: 1597 - 1600 Year of Publication: 2005 ISBN:1-59593-002-7 Authors Hugo Liu MIT Media Laboratory, Cambridge, MA Henry Lieberman MIT Media Laboratory, Cambridge, MA Sponsors ACM: Association for Computing Machinery SIGCHI: ACM Special Interest Group on Computer-Human Interaction Publisher ACM New York, NY, USA : Mining Natural Language Programming Directives with Class-Oriented Bayesian Networks Source Lecture Notes In Artificial Intelligence; Vol. 5139 archive Proceedings of the 4th international conference on Advanced Data Mining and Applications table of contents Chengdu, China Section: Regular Papers table of contents Pages: 15 - 26 Year of Publication: 2008 ISBN:978-3-540-88191-9 Authors Manolis Maragoudakis Artificial Intelligence Laboratory, University of the Aegean, Samos, Greece 83200 Nikolaos Cosmas Network Technologies Laboratory, Technical Education Institute of Messolonghi, Messolonghi, Greece 30200 Aristogiannis Garbis Network Technologies Laboratory, Technical Education Institute of Messolonghi, Messolonghi, Greece 30200 Publisher Springer-Verlag Berlin, Heidelberg
个人分类: 未分类|7376 次阅读|0 个评论
北京大学计算语言学研究所俞士汶教授"自然语言处理与自然语言理解"报告PPT
liuysd 2009-3-12 14:48
2009月3月11日,北京大学计算语言学研究所俞士汶教授在中国科学技术信息研究所的学术报告,如期进行,报告由中信所武夷山总工程师主持,报告短暂而热烈,会场出现了少有的加登子的现象(中信所从事自然语言处理研究的人员不是太多)。 尽管如此,由于各种原因,还是有一些想到会但未能如愿的相关研究人员,如南理工的章成志博士等进行了留言,南师大曲维光教授也发邮件表示了遗憾与羡慕,为此,我把俞老师的PPT上传至博客,希望能够实现更大范围的共享,均因智者而受益! 俞士汶教授学术报告PPT
个人分类: 学术报告|6996 次阅读|2 个评论
学术报告通知:自然语言处理与自然语言理解
热度 3 liuysd 2009-3-4 08:58
学术报告通知 题 目:自然语言处理与自然语言理解 报告人: 俞士汶 北京大学信息科学技术学院教授 时 间:2009年3月11日(星期三)下午2:30 地 点:中信所研究生部三层333教室 (北京海淀区复兴路15号中央电视台西门) 俞士汶教授简历: 自1964年从北京大学计算数学专业毕业后一直在北大工作。1990年晋升教授。1993年起担任博士生导师。现在是北大信息科学技术学院教授、北大计算语言学研究所学术指导委员会主席、北大软件与微电子学院语言信息工程系主任,兼任中国中文信息学会、中国语文现代化学会常务理事等职。已培养博士生18名,硕士生17名,在读博士生9名。在计算语言学与中文信息处理领域合作完成了《现代汉语语法信息词典》、大规模基本标注语料库、机器翻译译文质量自动评估软件、综合型语言知识库等有广泛影响的研究工作。获得2007年度教育部科技进步奖一等奖及多项政府部门和北京大学颁发的奖励。出版著作8部,发表论文140多篇。 报告提纲: 1 关于研究对象与目标 2 自然语言处理的主攻方向 3 综合型语言知识库概要 4 向自然语言理解前进 5 领域知识工程与领域知识库 6 结语与致谢 欢迎所内外各界人士踊跃参加! 中国科学技术信息研究所 研究生部 学术委员会 二○○九年三月二日
个人分类: 学术报告|5796 次阅读|1 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-28 19:57

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部