文档库 最新最全的文档下载
当前位置:文档库 › 自然语言与机器语言的比较

自然语言与机器语言的比较

自然语言与机器语言的比较
自然语言与机器语言的比较

周锡令

经过几十年的全球性的努力,以机器翻译为代表的计算机自然语言处理工作始终没有达到人们预想的境界。于是我们竟不住要问:为什么电脑处理起“编程语言”来那样轻松自如,可以作好多非常复杂的事情;而在一句普通的自然语言面前却显得像一个大笨蛋呢?自然语言和编程语言的本质区别到底在哪里?

自然语言和编程语言显然有很多地方不同。但是作为“语言”,两者都面临语言使用这所需要的一些要求:(1)有强大的表达能力(能够把事情说清楚)

(2)结构化。人的短时记忆容量不多,信息如果不分层次,无论听说还是阅读都会造成困难。

(3)具有简洁、浓缩表达的机制(使听说双方都不觉得罗嗦)。

在这两种要求的驱动下,两种语言都会发展出一些机制,这些机制在两种语言中的表现可能大不相同,但是会存在某种对应关系。

在文科领域有所谓“比较文学”的行当。考虑到不同民族,不同文化发源地发展出来的文学作品既有各自的特色,又有互通的共性,可以对它们的异同加以比较。事实证明,从这种比较中,可以得到许多有益的启示。“比较”既然是观察和分析事物的有效方法,把自然形成的语言和人工设计的语言(计算机编程语言就是应用最为广泛的一种人工语言)进行一番比较也许能给我们一些工作上的启示。

语言的设计者

自然语言是在无数多人群之间的碰撞和交流之间产生、发展、筛选、淘汰之后形成的,好比是“市场经济”的产物。

计算机编程语言(以下简称“编程语言”)则是“计划经济”的产物。它所使用的词汇、规则都是事先由一位“上帝”(语言的设计者)策划好的。

词汇及其分类

“词”是自然语言中的基石,它们是具有语义的最小独立单位。

在编程语言中对应的东西就是token。Token是编译程序中的术语,它包括外形像英语单词的Word,以及“=, +, -, *, /, ==,>, <, (, ), ……” 之类的符号。

从信息处理的角度来看,“词”和token都是“符号(Symbol)”,它们可以被我们“用来”映射到各种实体或者概念上去。根据一个符号所映射到各种实体或者概念的性质来把它们进行分类。

语言学家把自然语言中的词划分为许多类:名词、动词、形容词、副词、数词、连接词、感叹词、………。我们应该注意到,它们不是在同一级别上的。

名词和动词:是最重要的。它们直接反映了我们对世界上形形色色的事物以及这些事物之间的相互作用。形容词、副词、数词、则是第二级的。它们只对事物以及这些事物之间的相互作用起修饰作用。

剩下来的连接词、感叹词、………则是第三级的。它们主要起语法的作用。(用来提示语句内部的结构性信息,起连接作用、用来表述“词”与“词”之间的关系)

与之对应,在编程语言中,可以把token划分为:

l 命令:运算符、子程序名。它们对应于自然语言中的动词。动词的“价”则相当于编程语言中的命令、运算符、子程序所需要的“变元(arguments)”的个数。在编程语言中,有时某些“变元”可以省略不写,而用预先规定的“缺省值”代替。在自然语言中,也有类似的情况,但是缺省的东西要根据上下文来补充。自然语言中存在一些“泛义动词”,例如汉语中的“打”,“搞”,“干”……,英语中的“get”,“take”等。它们的进一步的具体含义要由这些动词所涉及的对象来确定。例如:“打毛衣”中的“打”应理解为“编织”,“打篮球”中的“打”应理解为“玩”,“打开水”中的“打”应理解为“取得”,等等。

l 在面向对象的编程语言中,也有类似的“动态绑定(Dynamic Binding)”机制:一个函数名或者子程序名字的具体含义要在“运行时”依据所涉及对象在当时的指的类型来决定。

l 数据:常数、变量名。它们对应于自然语言中的名词。

l 其他:起连接作用、用来表述token 之间的关系的符号,例如if, then等等。它们对应于自然语言中的连接词、感叹词等等。

动词和名词之间的互换性

在自然语言中,有一个引人瞩目的现象,那就是“名词和动词之间的呼唤性”。这是因为,“词”或者token 是用来表达“概念”的,而一个概念往往有多种侧面。所以自然语言中常常出现用同一个“符号”来表达不同的侧面的现象。举例来说:

“钉”本来是名词,但是可以转化,作为动词来使用:我把画钉在墙上。

“锁”本来是名词,但是可以转化,作为动词来使用:我用锁把门锁上。

古汉语中这样的例子更多。“叔”可以转化为“认……为叔叔”,“尘”可以当作“弄脏”,“污染”的意义来使用。

反过来,动词也往往可以转化为名词使用。比如,“偷”是动词。但是在“偷是不对的。”这句话中的“偷”却是一个名词,因为这句话也可以说成:“偷这种行为是不对的”

在计算机编程语言中,也有类似情况。在declaration(声明)中,函数、子程序名表现为“名词”,但是在执行语句中,他们就成了动词。例如在C语言中:

double x,y;

double sqrt(double); /* sqrt 在这里以名词的面貌出现*/

…………….

x = sqrt(y); /* sqrt 在这里以动词的面貌出现*/

词类的判断

从语法分析的角度看,对词或token 进行分类的依据是它的语法功能。从语言使用者的角度看,则是他们的使用方式。因此如何对词或token所属类别进行判断乃是一件至关重要的事情。

不管在自然语言中,还是在编程语言中,判断一个词或者token 的类别的办法基本上是两种:词典和词本身所携带的形态标志。

词典中提供的信息

在编程语言中,为判断一个token 的类别而提供的“词典”有两种:

1. 一种是语言中“先验地”规定好了的外部词典。例如关键字和一些保留字。

2. 另外一种是编程人员(用户)临时定义的内部词典,这就是程序中的declaration.

在自然语言中,基本上只使用外部词典。(在某些文件[特别是有关技术标准的文件] 中,有时也在文件的开头部分定义一个“术语”集合,但是很少涉及词性的问题)。

例如中,市面上提供的英语词典对其中所收罗的词的词性都给出了说明。与编程语言不同的地方是:有相当一部分词具有多种词性。例如:字符串“increase” 既可以当作名词来使用,又可以当作动词来使用。

奇怪的是,汉语词典基本上都没有给出词性方面的信息。其主要原因大概是由于汉语中大部分的词都允许以多种方式使用,也就是说具有不止一种词性。这种现象在古汉语中标显得尤为明显。汉语中的这种“传统”的来源可能如下:

汉语是象形文字,最方便给有形的对象起名字。所以至少在汉语中“名词”最优先地得到发展。在古汉语中,由于为抽象的动作设计象形字比较困难,所以往往就把名词直截了当地转化为动词使用:“老”指老年人,老年人应予以“尊重”,所以就把它当作现代汉语中的“尊重”这一动词来使用。“幼”指婴幼儿,婴幼儿需要“爱护”,所以就把它当作现代汉语中的“爱护”这一动词来使用。于是就出现了“老吾老以及人之老,幼吾幼以及人之幼”以及与之类似的“君君臣臣父父子子”这类令现代人费解的句子。

词类划分的形式标志

如果能够从词或token的外形(形式上的)特征就能判断出他是属于哪一类,那么无论从“书写者撰写”

的角度,还是从“阅读者理解”的角度,都能够大大减少出错的机会。

在某些编程语言(例如Visual Basic)中,如果一个变量没有在任何地方加以声明,也可以从变量名字的外形上看出它的类型。例如:名字以%结尾的变量是…整数?,名字以&结尾的变量是…字符串?,名字以&结尾的变量是…浮点数?等等。

英语中,在某种程度上也有类似的机制,例如:以tion, ing 结尾的基本上是名词。以-lize 结尾的基本上是名词。以-ful 结尾的基本上是形容词。以-ly 结尾的大概是副词。

汉语使用方块字,没有办法添加尾缀,所以没有这样的形态标志。因此大家认为,这一现象给汉语的计算机处理增加了困难。不过话不能说得太绝对。在某些情况下,汉语还是有“形态标志”的。例如,在名词的前面加“很”“还”之类一般用来修饰形容词的副词,就是在“形态”上指出:后面的这个名词已经转化为“形容词”了。例子如:“同学们说我穿这条裙子很青春。”,“我们排演的这套节目还是很生活的。”,“他比林彪还林彪。”。

作用域

编程语言的名字都有“作用域(scope)”问题。这一点在语言设计中都作了明确、毫不含糊的规定。程序被划分为模块、分程序,它们是作用域的天然边界。

自然语言中当然有类似要求。章节、段落的划分,引号(“”,…?)的使用也是名字的作用域的天然边界。但是与编程语言相比,并没有硬性的规定,读者往往要利用生活常识依据“语义合理性”来进行判断。

指针

自然语言中的指代词(你、我、他、它等等)好比编程语言中的“指针(point)”。但是自然语言中从不明显地交待:从现在起,“他”表示“张三”,直到遇见新的声明为止。每一个具体的代词指向何方要根据句子域句子之间的前后语义来联系来判断。

在为了处理自然语言而为计算机编制词典的时候,一个十分重要的问题是:我们把自然语言中的“词”看成是一个“概念(concept)”还是只看成一个“符号(symbol)”。字面上的一个词可以对应多个概念,例如“编辑”既可以指一种工作、职业,又可以指以这种工作为职业的“人”。目前这方面似乎仍存在不同的看法,但是从计算机处理的角度看,当然是看成一个“符号”为宜。这样就出现了如何判断某一个“词(符号)”指

向何种概念的问题。自然语言中使用最多、最具有生命力的词大多具有多个“义项”。从这个观点看,多义项词更接近于编程语言中的指针。

语句类型

动作语句

自然语言中,像:

税收人员向大家宣传税收政策。”

我吃了一块蛋糕。”

都表示某一主体采取了某种动作,因而改变了世界。这种句子围绕着中心动词“宣传”,“吃”而展开。这种“动作语句”显然对应于编程语言中的“命令语句”(赋值语句,子程序调用,带有副作用的函数调用等。)

如果使用编程语言中的形式来书写上述两个句子,结果就是:

宣传(税收人员,大家,税收政策)

吃(我,一块蛋糕)

子程序“宣传”有三个变元,所以“宣传”是三价动词。子程序“吃”有两个变元,所以“吃”是二价动词。

描述语句

自然语言中,描述句以静态的方式描写周围的世界,某种事物的存在,或者它的属性。在汉语中,最常见的是以“是”为中心谓词的描写句,例如:

她是近视眼。(健康)

他是小孩。(年龄)

他是高个子。(身材)

他是工程师。(职业)

……

可见,中心谓词“是”把句子分成左右两个部分。右边部分叙述了左边部分的某种属性。至于具体是什么属性,完全要依靠读者的知识来判断。也许把“是”称为“系动词”就是因为它的功能只不过是把左右两部分联系起来,或者说,只是指出左右两部分有联系,至于什么样的联系,则语焉不详。

由于系动词只起“语法上分割、语义上联系”的作用,因此它往往可以被省略(这时可以认为中心谓词是“Φ” )。

这人Φ 黄头发。

你Φ 傻冒。

在英语中也有类似情况,特别是在要求句子简短有力的场合:

You baby!

You silly boy!

编程语言中,与描述句对应的东西是declaration 以及declaration 中的“初值语句”,例如:

int x = 3;

John.Hair.Color = Yellow;

疑问语句

“你进来好吗?”,“3加5等于几?”这类疑问句似乎在编程语言中找不到对应物。其实是有的,就是包括函数在内的“表达式”。

计算机程序在运行过程中遇到包括函数在内的“表达式”时,就要计算这个表达式的值,也就是向计算机硬件、程序库、操作系统询问计算结果。

语境的动态变化

目前我们所使用的计算机都是基于冯·诺意曼模型的机器。其中最具有特点的就是“赋值语句对环境所施加的改变”和随时用来记录不断改变着的环境的存储系统(寄存器、堆栈、内存、外存)。正是由于这一原因,多年以来所发展出来的、针对静态环境的数学证明方法在“程序正确性证明”的问题上失去了效力。

自然语言中的“动作语句”既然和编程语言中的“赋值语句”相当,它也必然会产生同样的难题。以当前水平的机器翻译软件为代表的自然语言处理软件都是“没有记忆”的,并不把所处理的语句对环境的影响记录下来。

如果自然语言处理软件有这种记忆机制,那么它在处理以下句子

1. 孙武是春秋时代的军事家。

2. 他说:“……”。

的时候,就会在处理完第一句后,在“情景堆栈”中记住:

现在有了一个最新被提到的人物:春秋时代的军事家- 孙武

于是在处理第二句时,就知道句子中的“他”就是这个“孙武”,由于他是春秋时代的人,所以“说”要使用“过去式”。

当然,这个例子太简单了。“情景堆栈”应该怎样设计,尚有待于探讨。但是这个问题是计算机理解自然语言时避免不了的。

小结

从以上讨论可以看出两点:

1)作为信息传递的媒介,目前的计算机语言和自然语言虽然在外表上有很大差异,但是在实质上的确有不少相通或者互相对应的地方。

2)从最初的比较简单的计算机语言(例如初期的Basic)到后来越来越复杂的Fortran, C, C++,我们可以看到把自然语言中的一些机制逐步添加到计算给语言中的迹象。

自然语言与编程语言之间的区别

这个问题之所以值得研究是因为这一研究有可能帮助我们搞清楚计算机在处理自然语言时所遇到的困难的本质以及克服这些困难的途径。

语句结构分析时语义的介入必要性

以上我们讨论了自然语言与编程语言之间的相似之处,也顺便指出了两者之间的一些区别。但是上面所说的这些区别不一定都是本质性的、或者根本性的。两者之间本质性的区别表现在:自然语言处理在许多阶段的工作中都需要涉及语义,需要语言之外的生活常识、社会与自然科学知识的支持才能完成。以下是其中主要的几个方面。

汉语句子的分词和词性标注

分词虽然可以在大部分情况下利用辞典和匹配的方法得到正确的答案,但是有时也需要运用语言之外、语境方面的知识。“乒乓球拍卖完了”应该读成“乒乓球拍卖完了”还是“乒乓球拍卖完了”的问题就是一个典型的例子。

编程语言中的token,除了“指针”以外,基本上都只属于一种类别,没有任何含混之处。然而,自然语言中的词却可以有多种词性,汉语尤其如此。但是在一个具体的句子中,每一个词的词性确是唯一的,因此就存在着如何根据这个词的周围的环境来判断其词性,这就是词性标注问题。计算机可以从统计规律出发“胡蒙乱猜”,并且期望能够在大多数情况下得到正确的结果,但是像上面所举例子:“把收集到的数据记录在数据库记录中”就很难保证正确判断其中的两个“记录”的词性。

句子结构分析

我们都知道,句子从外表看只是一维的“字词流”,但它是有它的内部结构的。分析或者理解一个句子的时候,第一件事就是要从它的一维的字词流中提取句子的内部结构。正是在作这件事的时候,出现了自然语言和被称之为“形式语言”的编程语言的本质区别。

在对计算机编程语言进行语法分析的时候,由于语句中每一token均由确切的含义,语言的语法大多限定在上下文无关文法的范围之内,编译器只需要拥有语句中的“形式标记信息”和在语言内部预先定好的一些规则就可以完成任务,而且所得结果是唯一的,用不着利用与外部世界有关的知识。编译器在语法分析结束以后进入代码生成阶段时,才要涉及语义问题。

反之,在分析自然语言中的句子的时候,即便是分词、词性判断等标志性信息均已完备的情况下,也往往要借助“语义合理性”方面的判断。而“合理与否”则要依靠语言之外的生活常识、社会与自然科学知识。举例来说,

她想穿将军的大衣。

她想念穿大衣的将军。

着两句话的形式都是:“名动动名…的? 名”的格式。但是内部结构完全不同。我们在阅读这两句话的时候,可以毫无困难地分别把它们理解为:

她想穿(将军的)大衣。

她想念(穿大衣的)将军。

这是因为我们有“人可以穿大衣,但是大衣却不能…穿?人”的常识。没有生活常识以及运用这种常识的能力的计算机,仅仅凭语言知识和语句中的形式标志显然是没有办法完成这种句子的结构分析的任务的。

上下文相关

自然语言中即使其最简单的“义项选择”问题,也往往要根据上下文、乃至整篇文章以外的知识(社会生活常识、自然科学与专业知识)来判断。

例1:汉语中,“踌躇”是“犹豫不决”的意思(如说“踌躇不前”)。但是如果后面紧跟着“志满”(踌躇志满),意思就来了一个一百八十度的大转弯,变成“从容自信”了。

例2:如上所述,汉语中的“打”字是一个泛义动词,在“打毛衣”,“打篮球”,“打水”三种说法中分别理解为“编织”,“玩”,“取得”。这一要求可以通过对“词语搭配关系”的考察来解决。

在计算机语言中,也有类似情况。例如用来打开文件的open 就是一个泛义动词,在打开某一具体文件时,到底要使用哪一个application,则要看这个文件的类型是什么?例如,如果文件名的后缀是 .doc,就使用MS Winword, 如果文件名的后缀是 .txt,就使用Notepad.

然而,在自然语言中,有时更复杂一点。例如:在以下这句话中:

渔民用竹篙打水,想把鱼赶进渔网中去。

“打”自由应理解为“击打”的意思。而在

渔民用木桶打水洗菜做饭。

中的“打”又依然应理解为“取得”的意思。换言之,一个泛意动词的语义不仅取决于它的宾语,有时还得看看“施主”和“工具”是什么?

叶圣陶先生在他所写的一篇文章《据理论而言》中也提到一个例子:

解放前“某大学招考新生,国文的作文题目是《防民之口甚于防川论》。很有些应试的同学解错了题目,做出来的文字牛头不对马嘴。”

之所以会这样,是因为“防民之口甚于防川”这句话可以有很多解释:

防民之口其困难甚于防川

防民之口其重要性甚于防川

防民之口其……甚于防川

防民之口其危险甚于防川

这些“应试的同学”大概都理解为前面两种。如果他们看到《古文观止》里收录的《国语》里的那篇“召公谏历王止谤”的文章中这两句话的下文:

防民之口,甚于防川。川壅而溃,伤人必多,民亦如之。

就知道应该按照相反的方向来理解了。

自然语言中这种“必须依靠文章以外的知识来解读作为符号的“词”的指向”的要求, 给计算机处理自然语

言的工作带来了重大困难。

自然语言的“简略性要求”

请观察以下这幅漫画:

虽然这只是寥寥几笔,离开相片或者真实的人像相去甚远,但是当今社会上大多数中国人都能一眼看出这就是聂卫平。因为它抓住了聂卫平有别于其他人的特征。不过,能够做到这一点的人一定是预先看见过聂卫平的相片、录像或者他本人。换句话说,看得出这幅漫画画的是谁的这些人,必须在脑子里预先已经有了与聂卫平面貌有关的“知识”,这幅漫画不过是“勾起了”他们脑海中已有的印象而已。

类似地,人们讲话时的首要目标并不是要去描述和传递巨细无遗的情景,而只是在对方已有的知识背景之上做一些补充,使得对方把你的词句和它已有的知识加起来,能够凑成一幅完整的图景。超过这一要求时,别人就会觉得你罗嗦;过于简单则会使对方误会或者不知所云。从这一点看,自然语言理解过程得着一侧面和“猜谜语”是相通的。汉语历来有讲究“凝练”的传统,因此我们看到的汉语句子常常只是“海面上的冰山”。

最普遍的例子是“名词的串接”。例如:“傻瓜相机”这个词组可以有多种理解,看你省略的字眼是什么:“傻瓜发明的相机”,“傻瓜才使用的相机”,“为傻瓜而设计的相机”……。“鲁迅回忆录” 这个词组也可以有多种理解:“鲁迅自己撰写的回忆录”,“某某人撰写的关于鲁迅的回忆录”。“海鲜酱油” 可以理解为:“以海鲜

为原料制成的酱油”,也可以理解为:“吃海鲜时使用的酱油”。读(听)者需要根据当时当地的语境和自己的生活经验和常识来选择其中的一种。

标语、标题中的字眼也是常见的“简略说话法”的例子。比如说:我们在出租车的座位上常常看见的:

停车等候请付押金

实际上是

停车等候请付押金

------------------------------------------------------------------------------------------------

如果乘客中途下车办事,要求司机,乘客预先向司机支。

显然,只有把被省略的词语适当地补上之后,才谈得到句子结构的分析。

可是,除了为了避免罗嗦、使语言简洁的目的以外,还有一种情况是“有意模糊”。我们注意到,实际生活中,我们使用语言的方式可以分成两大类。

l 一种是力求精确、完整地传递信息。科学、法律方面的文献可以作为这一类的代表。

l 另一类是:有意不把话全部说明白,给读者留下想象的空间。

编程语言当然属于第一类,而文艺领域的文章大多属于第二类。文艺作品的作者在撰写他的文字时,一方面希望利用这些文字传递信息,但与此同时,还期望勾起读者的联想,希望读者利用自身的知识、处境、心情……进行补充。因此这种文章就要写得“含蓄、凝练”,给读者留有“再创造”的空间。读者的主动参与往往调动了他的浓厚兴趣。(这也是为什么比较含蓄的音乐作品、广播剧可以反复聆听;而一览无余电视剧很少有人看两遍的原因。)

语句分析的“终极”在哪里?

计算机语言的编译器在分析计算机程序中的语句时,最终总是要分析到语法规则中所规定的“终极符(terminator)”为止。

在自然语言中的情况比较复杂。汉语句子中的终极符显然不是汉字,但也不一定是“词”。在“他胸有成竹”这句含有成语的话中,“胸有成竹”应该是终极符,因为你不能再继续把它进一步分解了。再分解就真的变成“他的胸腔中有一根竹子”了。同样地,“大家奋力力救火”中的“救火”也是终极符,因为你一定不能再进一步把“救火”当作“动宾短语”去进一步分析。“救火”中的“救”与“火”不过是由“抢救生命与财产于烈火之中”这句话里提取出来的两个“特征字眼”而已。

英语没有汉语中的分词的麻烦,但是也有类似问题。许多介词短语是一个整体,不能继续分解。比如说,当讨论某人的家庭情况时,有人回答:“He is on the street.” 这“on the street”就应该整体地作为表示“无家可归”的一个词组来理解。

话又说回来,要是孩子的父亲问母亲:“孩子上哪儿去玩去了?”母亲若回答“He is on the street.”那就表示这孩子真的是在街上玩。可见,一个词组应不应该作为“终极符”,还得要看语境。这进一步增加了自然语言理解的复杂性。

规则与习惯

计算机编程语言中,只要是符合语法规则的句子就都是合法、并且可以使用的。但是在自然语言中,却要看…习惯?。你虽然在离开家时可以说:“我用…锁?把门…锁?上”,但在回家时,却不能用类推的方式说:“我从

兜里掏出…钥匙?来…钥匙?门”。因为(社会上)没有这种说法!(这大约是因为后面这种说法太…绕口?)。反之,看起来虽然不大合乎语法,但是大家说惯了,却是允许的。

隐含与联想

我们可以把“自然语言”进一步划分为“技术语言”和“文化语言”两种。前者的例子如:技术资料,法律文件等。后者的例子如:诗词、小说等。两者的主要区别是,“文化语言”常常含有“言外之意”,并且引起或者要求读者(听者)发挥“联想”的主观能动性。这个要求显然离开当前计算机的水平更加遥远,所以在此不再展开讨论。

绕口与否及听觉特性

自然语言首先是为了“说和听”,其次才是为了“写和读”而发展起来的。这样一来,句子的顺不顺口,文章的“抑扬顿挫,音调铿锵,朗朗上口”就成了一种不可忽视的要求。有时候,为了满足这一要求,甚至会“以声害意”,以颠倒语序为代价。这种现象在诗歌中当然比较多(例如杜甫的“名岂文章著,官应老病休”),但是在口语中也有出现。鲁川教授就曾经指出:我们从来不说“制电影片厂”而是说成较为顺口的“电影制片厂”,是因为“2+3”比“1+3+1”结构读起来更为顺口,虽然前者在语法上较为合理。由于同一原因,汉语中偏好使用长度为四个字的短语。(所以汉语中的成语绝大多数是四个字的,如果不够四个字,往往也要加进一两个虚字,凑成四个字。)可是,过去我们经常说的“百分之百”在说广东话的人群中遇到了困难,因为广东话中没有…zhi?这个音。于是他们把“百分之百”改说成“百分百”。又由于改革开放以来,以广东省为代表的中国南方地区在经济发展上处于有影响的位置,使得电视台上的主持人和播音员也都改说“百分百”了。

反过来,计算机编程语言完全是为了“写下来供计算机执行或者供人阅读”的。所以不存在上述需要朗读而带来的“听觉性”问题。

视觉特性

汉语使用象形字,因而在“字”和“词”这一级就有视觉特性的问题。我们初中时就读过李煜的词《浪淘沙令》中的“帘外雨潺潺,春意阑珊。”后来看见老舍先生批评这种句子说:从来就不知道雨怎么个“阑珊”法,春意又怎么个“阑珊”法,觉得老舍先生讲得对。可是又觉得,虽然从来没有去词典上查过“潺潺”是什么意思,但是当初读李煜的词时并没有觉得费解。但讲不出道理。

最近看到王蒙在《道是词典还小说》这篇文章中解释了这个问题:

问题不在于“潺潺”本身的含义,对于我来说,“潺潺”的说服力在于字形中放在一堆的六个“子”字,它们立即使我想起了流水上的丝皱般的波纹。从上小学,我一读到“潺潺”二字就恍如看到了水波。

除了“字”和“词”这一级以外,自然语言在段落、章节的划分上也有“语义”上的含义,并且隐含着各种代词的“作用域(Scope)”划分。

计算机编程语言中,虽然在“段落”一级上应该力图在视觉上显示程序的嵌套结构。以利于“人”的阅读。但是这种做法对计算机好毫无意义。“作用域(Scope)”划分也应该有明确的declaration来规定,而不能是隐含的。

小结

传统的计算机语言和自然语言的上述差别是造成计算机处理自然语言遇到重大困难的主要原因。人之所以对自然语言应付如裕,是因为人拥有知识(包括社会生活常识以及各种专业知识),并且具有应用这些知识来“解读语句(猜测语义)”的能力。

事实上,即便是人,由于文化程度和专业领域的不同,如果他听(读)到语句在解读时所需要的知识超过了他的知识范围,也会产生理解上的困难。因此,人们在通过语言相互交流时,还需要遵从某种协议。

语言交流中的普适性协议

人与人之间通过语言进行交流时,人人都自觉或不自觉地遵守以下普遍使用的协议:

1. 发话一方首先要判断对方的语言能力,并据此选择可以使用的词语和句式。如果对方是小孩,使用的词语和句式就和对方是成人时不一样。

2. 其次要估计对方的知识水平、专业范围。不能使用对方无法理解的词语或概念。例如,如果对方是考古专家,你就不能和他深入地探讨其他专业领域的问题。

3. 发话方所进行的以上的两种估计不可能完全正确。因此,听(读)方要随时判断对方所说的句子是否在自己所能领悟的范围内。如果不是,就要要求对方解释或者换一种易懂的说法。

4. 发话方所说的话如果小有纰漏,听话方应该有能力纠正,“正确地加以理解”。

在人和计算机讲话时,出现了新的问题。一般来说,人(用户)没有和计算机通过自然语言讲话的经验,因此不知道怎样估计计算机的语言能力和知识水平。在这种情况下,就要研究如何让计算机主动向对方以适当的形式介绍自己的接受能力。这是一项具有挑战性质的任务。

上述协议中的第三点格外重要。传统的“全自动”机器翻译程序会忽略了这一要求,可以说是一个误区。

两栖语言-面向计算机的“受限(标注)汉语”

要求计算机拥有一般人所具有的知识以及具有应用这些知识来“解读”自然语言的能力,目前还不现实。因为这种要求有点像希望对古代社会生活情况一无所知而又仅有小学语文水平的人去阅读处处引用“典故”的古籍那样。不过,语文老师早已想到了解决这个问题的方法:改写和添加注解。

这一思路当然也可以用来帮助“没有社会生活常识和语言水平很低的”计算机。这就是提出“面向计算机的受限(标注)汉语”这一概念的由来。

问题在于:谁来进行这种改写和添加注解的工作?答案是:开发“受限(标注)汉语写作器”,让计算机帮助“人”来作这件事。

北京信息工程学院在承担国家“九五”重点科技攻关项目“中文信息处理及产品开发”中的“受限汉语技术及其产品开发”专题工作所开发的“受限汉语写作器”最后产生出来的语言文本有两种表现形式:

l 给人看的文本。这种文本从外表上看和一般的文章没有什么差异。

l 给计算机看的文本。这是在上一种文本中添加了供计算机阅读的“标志”

这种带“标志”的文本和当前正在如火如荼地发展着的XML语言有密切的联系。这些“标志”之除了每个语句中各个语言成分的“语义角色”和它们在“语法意义上所处的位置”。有关情况请参见有关资料,再此不予赘述。

可是,不管怎么说,改写和添加注解终究是额外的工作,而“用计算机处理自然语言”的初衷本来就是为了节省人力。这两者岂不是“南辕北辙”吗?为此,我们应该从用户需求的角度来探讨一下。

两种用户需求

信息收集者

在互联网、信息爆炸时代,如何利用计算机从浩如烟海的以自然语言表达的文章中找出自己所关心的、对自己有价值的文章,是很多用户面临的问题。

由于计算机在自然语言理解方面尚未取得有价值的进展。因此用户只能在信息判断的准确性、详尽程度方面降低要求。

信息发布者

反过来说,信息发布者当然他所发布的信息能够以最大的精确性得到尽可能多的人群(包括不同国别的人群)的注意和理解。为此,他可以而且愿意付出一些代价,以“受限”和“标注”的方式发布自己的信息。

制定“受限(标注)汉语”规范的思路

我们这里所说的“受限(标注)汉语”是“面向计算机的受限(标注)汉语”。换言之,付出“简易”的代价之后,期望达到的目的是使“智能相当低的”当代计算机有能力加以处理;与此同时,在人类读者面前依然保持原来自然语言的风貌。

显然,“面向计算机的受限(标注)汉语”是否有实用价值,取决于:

l 我们能否为这种“受限(标注)汉语”设计出既有充分表达能力,又便于计算机处理的语言规范。

l 开发出一种足够好的帮助人们书写这种语言的工具---

大家知道,法律有两种表述形式:

l 案例法(Case Law),属于“大陆法系”,“罗马法系”

l 法典法,属于“英美法系”或“普通法系”。

自然语言的规范也有这样的两种。小孩学习自己国家的母语时肯定是根据“案例法”。中国人过去学习英语的传统办法是“法典法”。自从《英语900句》一书风行以后,很多人体会到了使用“案例法”学习外语的好处。

刚开始学习编写计算机程序的时候,我们多半是对照着程序语言手册上的规定一句一句地写(法典法)。对于年龄大、记忆力差的人,常常感到许多细节记不住,就希望找一个或者一段别人已经写好的程序拿来“修改”,觉得既省事,又少出错。(案例法)

那么我们制定受限(标注)汉语规范的时候,应该采取哪一种办法呢?

我们曾经想过,能不能定义一个汉语子集,使得这个子集内的语句像计算机编程语言那样满足某种上下文无关文法,这样一来,计算机处理编程语言的技术不是就可以用来处理这种受限(标注)汉语了吗?。(这就是一种“法典法”的道路。)

这条道路给我们带来的困难是:自然语言的内涵比编程语言要复杂得多,为它设计一个满足上下文无关文法的子集有“老虎吃天,无从下嘴”的感觉。更为重要的是,即使设计出了这样一套语法,一般人也一定无法使用。理由很简单,因为人们学习自己的母语时,不是走的这一条道路。觉得多数说汉语的人根本没有“汉语语法”的概念。

因此合理的办法是采用“案例法”。也就是在计算机中存储足够多的模板和例句然后引导用户“依葫芦画瓢”。这种办法用户容易接受,更为重要的是:由于模板是事先定义好的,它的内部结构,各部分之间的语义以及相互之间的联系也是预知的。因此用户在“选句填词”的过程中,无需用户费心,系统就可以自动产生大量的标志性信息。

但模板法也有困难。首先是如何进行引导?其次,自然语言(特别是汉语)语句中的一部分又可以以递归的方式展开为另外一个句子。对于“一级”语句,我们可以用模板引导的办法加以限制,但对于以递归的方式衍生出来的第二、第三级句子就没有办法再这样做。限于篇幅,这两个问题留在别的地方去讨论。

汉语规范与汉语.DTD

我们经常在报刊上看到希望使用“规范汉语”的呼吁。但是,怎样的汉语才算是规范,却没有一个客观的标准,于是产生了“你说我的语言不规范,我却认为很规范”的争论。考虑到语言的进化过程是不可阻挡的,而在进化过程中又同时进行着筛选、淘汰的过程,这个问题的解决恐怕还得依赖于技术发展的反作用、“技术标准”以及相应的标准的定期更新。

举例来说,长期以来,在我国人名、地名用字没有标准,没有范围,有些地区甚至可以自己造字。但是在信息处理用汉字国家标准GB2312 颁布以后,许多家长再给自己的孩子取名的时候,都知道最好在

GB2312 所收罗的汉字集中选字,否则的话,在计算机中找不到孩子的名字将使孩子终生受累。

类似地,计算机中的“汉字库”,OCR软件,汉语拼音输入方法,教育部在小学推广的“笔划”输入法,天天在对广大的使用计算机的人群实施着规范化的培训。

由此推想,如果有了计算机能够接收和处理的汉语规范,并且得到实施,那将对鼓励人们使用规范化的语言起很大的推动作用。因为,如果你不遵从者以规范,不仅有一种客观的手段来判断你的“错误”,而且你写的文章计算机无法处理,因而你的思想就不容易通过网络得到迅速传播,也不易得到他人的广泛理解。那么,我们所设想的这种“规范”的形式应该是怎样的呢?也许第一步最合适的形式是DTD文件。

前面说到,北京信息工程学院所开发的“受限汉语写作器”最后产生出来的给计算机看的文本中添加了供计算机阅读的“标志”。这种带“标志”的文本和当前正在如火如荼地发展着的XML语言有密切的联系。这些“标志”之除了每个语句中各个语言成分的“语义角色”和它们在“语法意义上所处的位置”。但是这套“标志“只是负责这一专题的开发小组的看法。其合理性尚有待于进一步改进和验证。

一个十分重要的问题是,应该为这种“标志”建立一套大家公认的标准,并且把它体现在.DTD 文件中。我们知道,在数学领域已经形成了针对数学领域的标志语言的MathML.DTD。对于汉语,也应该形成类似的DTD文件。我们知道,有关部门曾经不止一次地组织力量编撰“汉语语法”,但是遇到的困难不少。从计算机处理的角度出发,首先在“标志”的种类与定义上达到共识,形成一个大家公认的“汉语.DTD”文件,将有助于计算机对汉语的处理和汉语规范化工作。

对写作工具的要求

交互过程的必要性

由于目前还不可能把一般人头脑中拥有的全部知识以适当的形式装入计算机,并使之具有运用这些知识把语句中所缺省的信息补充进去的能力,因此必须通过人机交互方式,在写作过程中向计算机“交代、补充”有关信息。

减少用户干预的工作量

上述这种交互过程显然是令用户厌烦的。因此技术工作的目标就是要设法使这种额外的工作量减到最小。l 虽然目前还不可能把一般人头脑中拥有的全部知识以适当的形式装入计算机,但是有些比较简单的知识还是可以以适当的形式装入机器的。(例如:在计算机中保存词语搭配规则、捆绑规则、增大机内词典所收容信息的粒度等等。)

l 在“词性”,“义项”的选择方面,如果不能进行有理智的分析和推理,就采用基于统计的猜测方法。只要大部分情况下猜测得正确,就可以大大减少要求用户干预的次数。

讨论

进行上面进行的“比较”当然是为了帮助我门弄清楚今后的努力方向。

技术边界

一个“个人”的知识总是有限的,它所能处理的语言信息在内容、形式上都会有限制。因此,没有任何一个人敢说他能看得懂任何一篇文章。人尚如此,“机”何以堪?对于一台资源有限的计算机,当然也是这样。回想起在中学里学“几何”课的时候,老师就曾告诉我们:仅用圆规和直尺,是不可能在理论上找出三等分任意一个角度的办法的,因此不要白费劲去做那些不可能做到的事情。这事启发我们,在计算机中文信息处理的领域里,也不能一味“埋头拉车”,应该先问一问,使用计算机处理自然语言的技术边界在哪里?

根据目前中文信息处理的状况看来,我们无法提出一种决然分明的技术边界,如果画三个由大到小的圈子:

1)原本的、不断地进化着的汉语

2)从汉语中剥离掉文化语言,只研究技术语言(也就是没有…言外之意?,不使用隐喻、联想和暗示的语言。

3)对技术语言在所用的词汇、句型方面进一步加以限制而得到的受限汉语。

显然,画的圈子越小,计算机所能达到的理解的深度会越高。另一方面,也应该考虑到,不同性质的处理对“理解”提出的要求是不同的。

不同性质的处理对“理解”提出的不同要求

“自然语言”和人类积累的知识相共生,同发展的。只要计算机拥有的知识和运用知识的能力没有达到“人”的水平,我们便不可能要求计算机在总的方面达到和人一样的处理自然语言的能力。

但是,不同性质的处理对“理解”提出的要求是不同的。

机器翻译

机器翻译工作的一个特点是:有些时候,翻译者即使并不懂得(或者不完全懂得)句子的内容也照样可以“按字面”进行翻译,而听者也能正确理解对方在说什么。这种情况常见于外语专业的毕业生为两位同行的专业(例如计算机软件)工作者进行技术翻译的时候。显然,计算机也可以在类似情况下用“字符串代换+简单的重新排序”的办法达到“正确”翻译的目的。

不过这种“有利情况”并不总是发生,更多的(大约70%)情况需要翻译者对谈话的内容有深入的理解。绝大多数“四个字的中国成语”就不能按字面翻译成外语。这大约就是全自动翻译系统的正确率突不破

30-40%的原因。

另一方面,如果听说双方有类似的生活环境,“按字面”进行翻译并不妨碍听的一方领会原话中的“言外之意、弦外之音”。

信息检索和文章分类

初级的工作可以只依靠“字符串匹配”的手段进行。更高的要求则需要对关键词的内涵有一定的理解。例如,如果用户要通过关键词“西部”和“大开发”检索有关的文章,凡是含有“贵州”,“云南”,“昆明”,“西安”……但是不包含“西部”的文章也不能放过。

直接执行

例如:按照电视剧脚本直接产生动画片。在这种场合,“按字面翻译”的手段就不能使用了,必须对脚本中的内容有真正的理解。

提取摘要

也许这种应用对“文化程度”的要求最高,因为他不仅要求对文章的内容有所理解,而且能分辨出那些是无关紧要的废话而加以剔除。

趋势预测

基于语义,基于理解的自然语言处理显然是一项长期的战略目标。这个目标一定会达到。如果把为了达到

这一目标所需要克服的困难比作一根蜡烛,那么,这根蜡烛一定要“两头烧”才能烧得完。换句话说,在接近这一目标的过程中,会出现两种潮流的汇合:

第一个方面是技术层面上的。计算机处理能力的提高,与自然语言处理有关的“基础建设”的建立,都属于这一类。这个方面是大家都认识到,天天都在讨论的。

第二个方面是技术进步对语言本身发展的“反作用”。从历史上看,书写工具和书写介质的变化对汉字形状的影响是众所周知的。那么,计算机一历史上前所未有的、如此大规模的应用也必然会在语言进化的方向上产生重大影响。(国家标准GB2312的颁布和使用对老百姓为后代取名字的影响,网虫门聊天时发明的网络语言就是两个鲜明的例子)。

“书面方言”的启示

大家都知道,由于居住在不同地域的人群的口音的不同形成了地理意义上的“方言”。实际上,书面语言中也存在类似现象:严密的法律文书、简洁扼要的商业信函、古色古香的尺牍大全、清新活泼的散文文体、Internet 出现以后所产生的网上聊天语言、乃至政府机关中使用的公文“八股”,……。“八股”在这里不是作为贬义词来使用的:一个刚刚毕业分配到机关工作的大学生所草拟出来的“学生腔的公文”一定会受到他的上司的坚决纠正。其内在的深层次的道理就是:同样的意思只有通过同样的、多次反复使用过的、为人人所熟知的形式表达出来,才能让文件的批阅者和执行者节省时间,不至于因为出现了一些新鲜然而并没有新的含义的字眼或者说法使他们产生误解、白琢磨而耽误工夫。

触角无处不到的因特网上流动的文字信息虽然是供人来阅读的,但是由于这种文字信息量越来越大,今后它们将会越来越要依靠计算机来处理()。因此,这些无处不在的计算机会在今后的社会中担任自然语言的第二大(仅次于人的)用户。可以预见,同时便于人和计算机理解和处理的两栖语言极有可能会迅速发展起来,并且形成新的一种“书面方言”。

由于这种两栖语言首先应该在因特网上得到应用,因此必须有一个统一的规范。包括:

l 句典这个语言不是由“规则”,而是由包含许多…句式?或者…模板?的“句典”来定义的

l 一套为社会所公认的标志用来指明每一…句式?或者…模板?中可能存在的“语块”的语义角色,语法性质

l 反映上述标志系统的种类和组织关系的XML DTD 文件。这一DTD 文件属于一种行业标准,以便于开发相应的XML解析器(parser)。这将有利于推动于中文信息处理有关的应用开发。

l 最后,当然应该有软件工具来帮助用户书写(改写)出符合规范、并带有共计算机处理的标志。

可以认为,前述北京信息工程学院在承担国家“九五”重点科技攻关项目“中文信息处理及产品开发”中所开发的“受限汉语写作器”已经沿这个方向走了第一步。但是其中的例句库所收入的几千个例句还要经过语言学家的检验,并且进一步扩充为至少有几万种句式的句典。其中所使用的标志系统也还要经过众多专家的认真讨论和修订。写作器的智能程度也需要大幅度提高。

许嘉璐同志近年来多次呼吁: 要汉语言学界和计算机学界两支队伍紧密地结合起来,开展面向中文信息处理基础研究和应用研究。他在2000年第6期《中国语文》上撰文说:

要消除中文信息处理的瓶颈,首要的关键是要汉语言学界和计算机学界两支队伍紧密地结合起来,开展面向中文信息处理基础研究和应用研究。

如前所述,中文信息处理需要的,并不是现在汉语学界已有知识的照搬:有的方面需要根据计算机的“能力”去总结汉语的规律,在一定程度上,还需要研究者抛开传统语言学的固有习惯和方法;有的方面则需要填补上已有知识的不足。

自然语言是千百年以来为人际交流的目的而发展起来的。现在,人们越来越多地“上网”,计算机越来越成为这个语言社会中的一个重要的参与者。人们就会自觉地或者在不经意中根据计算机的“能力”去总结汉语的规律,甚至改造人们的语言习惯。

一方面,技术向自然语言的深层冲击,另一方面,自然语言向现代技术靠拢,这两方面的发展趋势会和起来,将会是解决“基于语义,基于理解的自然语言处理”这一战略任务的过程中的一个重要特征。

人工智能时代下的自然语言处理技术发展应用

人工智能时代下的自然语言处理技术发展应用 摘要:如今,随着人工智能的迅速发展,自然语言处理技术已经成为互联网应 用中的一个炙手可热的研究方向,各大公司也都投入巨额资金和高端人力。但是,在高速发展过程中的自然语言处理技术仍然面临着巨大挑战。在这样的背景下, 本文主要探讨了人工智能时代下的自然语言处理技术发展应用有关内容,可供参考。 关键词:人工智能;自然语言;处理技术;发展应用 1自然语言处理的概述 自然语言处理是使用计算机对自然语言的音,形,义进行处理,即对字、词、句、篇章的输入、输出、识别、分析、理解、生成的操作和加工。主要包括自然 语言理解和自然语言生成两个流程。其中自然语言理解是指计算机能够理解自然 语言的意义。自然语言生成是指计算机能够以自然语言来表达给定的意图。 2自然语言处理的相关技术和应用分析 2.1个性化智能推荐 个性化智能推荐以自然语言文本挖掘为基础,具有信息过滤的作用,能够以 用户档案或者历史行为记录为依据,对用户的兴趣爱好进行学习,进而围绕给定 物品岀发,对用户的偏好或者评分进行预测。电子商务发展过程当中,信息处理 面临着信息过载的问题,用户如何在快速增长的资源中对自己所需信息进行准确 定位,是一个重要的问题,正如同商家需要向用户提供精准恰当的服务一般,都 存在一定难度。推荐系统的诞生极大地缓解了这个困难。通过跟踪用户在商城的 浏览、选购、下单等行为,提供基于用户行为的商品推荐,提高商品曝光率和用 户决策效率。“猜你喜欢”、“购买过此商品的用户还购买过……”对于离不开社交平台、电商、生活服务的现代互联网用户来说,个性化推荐已经不是什么新鲜事儿。它改变了商家与用户的沟通方式,加强了和用户之间的交互性。据报道,推荐系 统给亚马逊带来了35%的销售收入,给Netflix带来了高达75%的消费,而且Youtube主页上60%的浏览来自推荐服务。在新闻服务领域,以细分化的数据分 析为基础的个性化新闻推送已经成为新闻客户端的重要方式。通过用户个人的信 息阅读内容、时长、评论等偏好,以及社交网络甚至所使用的移动终端设备机型等,综合分析用户所关注的信息源与信息核心词汇,进而进行专业的细化分析, 从而进行新闻整理推送,基本实现了新闻的个人定制服务.让平台更“懂”用户,提 升了用户体验和粘性。 2.2语音识别技术 以机器为支持来对过程进行识别和理解,促进语音信号向文本与命令技术的 转变,这就是语音识别技术的整个过程,从本质上来说,就是确保人类的语言能 够为机器所理解,促进人类语音词汇内容向计算机可读数据的转化,从而满足应 用需求。在这一过程当中,需要将连续讲话进行合理分解,建立规则以准确理解 语义。前端降噪、语音切割分帧等都是语音识别技术的重要流程,可将其框架分 为声学模型、语言模型以及解码这三个方面。在智能家居领域,普通家庭都会有 很多需要红外遥控器控制的家电,由于红外线传输会受到空间位置影响,一个可 将多个遥控设备集中于一体并且可以通过声音控制其常用功能的集成设备,能自 动切断电源,调换频道。双手没有空闲的状态下,可以通过语音来与智能音箱进

浅谈自然语言处理

浅谈自然语言处理 摘要 主要阐述了自然语言处理的定义,发展历史,并对其研究内容,以及目前相关领域的应用加以讨论。最后对自然语言处理的未来发展趋势做简单的介绍。 关键词 自然语言处理 Abstract The definition and the development history of Natural Language Processing(NLP) are explained,the research content and the applications in interrelated areas of NLP are discussed.And the develop direction of NLP in the future are simply introduced. Key Words: Natural Language Processing(NLP)

0.引言 早在计算机还未出现之前,英国数学家A.M.Turing便已经预见到未来计算机将会对自然语言处理研究提出新的问题。他指出,在未来我们可以“教机器英语并且说英语。”同时他觉得“这个过程可以仿效教小孩子说话的那种办法进行”。这便是最早关于自然语言处理概念的设想。 人类的逻辑思维以语言为形式,人类的多种智能都与语言有着密切的联系。所以用自然语言与计算机进行通信是计算机出现以来人们一直所追求的目标。 1.什么是然语言处理 美国计算机科学家Bill Manaris(马纳瑞斯)在1999年出版的《计算机进展》(Advances Computers)第47卷的《从人—机交互的角度看自然语言处理》一文中,曾经给自然与然处理提出了如下定义:“自然语言处理可以定义为研究在人与人交际中的语言问题的一门学科。自然语言处理要研制表示语言能力(linguistic competence)和语言应用(linguistic performance)的模型,建立计算框架来实现这样的语言模型,提出相应的方法来不断地完善这样的语言模型,根据这样的语言模型设计各种实用系统,并探讨这些实用系统的评测技术。”这个定义被广泛的接受,它比较全面的地表达了计算机对自然语言的研究和处理。 简单来说,自然语言处理就是一门研究能实现人鱼计算机之间用自然语言处理进行有效的通信与方法的一门学科,它是计算机科学领域与人工智能领域中的一个重要方向。普遍认为它主要是应用计算机技术,通过可计算的方法对自然语言处理的各级语言单位(字,词,语句,篇章等)进行转换,传输,存储,分析等加工处理的学科,是一门融合了语言学,计算机学,数学等学科于一体的交叉性学科。 互联网技术的发展,极大地推动了信息处理技术的发展,也为信息处理技术不断提出新的需求,语言作为信息的载体,语言处理技术已经日益成为全球信息化和我国社会及经济发展的重要支撑技术。

自然语言理解技术

自然语言理解技术,未来人工智能的核动力 摘要:自然语言理解是人工智能研究重要的领域之一,同时也是目前前沿的难题之一。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,是未来人工智能的核动力。因此理解自然语言理解以及自然语言理解技术的含义,阐述自然语言理解的研究及其相关应用,综述自然语言理解技术研究方向变化并对自然语言理解的发展前景进行分析和展望,是十分有意义的。 关键词:自然语言理解技术;智能信息服务; 1.引言: 随着计算机科学的不断发展和成熟,计算机应用开始迈人知识处理、语言理解阶段,人们对计算机的智能提出了新的要求随着社会的日益信息化,人们越来越强烈地希望能更好地同计算机交流。自然语言就是这样一个媒介。 2. 1自然语言理解的含义: 广义的“语言”是任何一种有结构的符号系统。其中, 最重要的两类语言,自然语言和形式语言。而狭义的“语言”是人类在社会牛活中发展出来的用来互相交际的声音符号系统,是“自然语言”。 “自然语言理解”即Natural Language Understanding 俗称人机对话,指的就是使计算机来按照这种语言所表达的意义做出相应反应的机制。它主要研究用电子计算机模拟人的语言交际过程,使计算机能理解和运用人类社会的自然语言如汉语、英语等,实现人机之间的自然语言通信,以代替人的部分脑力劳动,包括查询资料、解答问题、摘录文献、汇编资料以及一切有关自然语言信息的加工处理。这在当前新技术革命的浪潮中占有十分重要的地位。自然语言理解是计算机科学中的一个引人入胜的、富有挑战性的课题。从计算机科学特别是从人工智能的观点看,自然语言理解的任务是建立一种计算机模型,这种计算机模型能够给出象人那样理解、分析并回答自然语言(即人们日常使用的各种通俗语言)的结果。2. 1自然语言理解技术的含义: 首先, 自然语言是极其复杂的符号系统。一个人尽管可以对自己的母语运用自如, 但却无法把自己母语的构成规律、意义的表达规律和语言使用的规律用计算机可以接受的方式彻底说清楚。传统的语言学是在没有计算机参照的条件下发展起来的, 虽然为自然语言理解积累了宝贵的财富, 但那是讲给人的, 真正要让语言学知识变成计算机上可操作的, 绝不是那么简单, 也不能那么模糊。这个目标的实现,需要大量又懂语言学又懂计算机的人在正确的技术路线的指导下一起做非常大规模的基本建设, 绝不是一拍脑袋想出个“绝招”就能解决的。 其次, 自然语言的各个层次上都含有巨大的不确定性。在语音和文字层次上,有一字多

NLP入门 实战必读:一文教会你最常见的10种自然语言处理技术(附代码)

大数据文摘作品 编译:糖竹子、吴双、钱天培 自然语言处理(NLP)是一种艺术与科学的结合,旨在从文本数据中提取信息。在它的帮助下,我们从文本中提炼出适用于计算机算法的信息。从自动翻译、文本分类到情绪分析,自然语言处理成为所有数据科学家的必备技能之一。 在这篇文章中,你将学习到最常见的10个NL P任务,以及相关资源和代码。

为什么要写这篇文章? 对于处理NL P问题,我也研究了一段时日。这期间我需要翻阅大量资料,通过研究报告,博客和同类NL P问题的赛事内容学习该领域的最新发展成果,并应对NL P处理时遇到的各类状况。 因此,我决定将这些资源集中起来,打造一个对N L P常见任务提供最新相关资源的一站式解决方案。下方是文章中提到的任务列表及相关资源。那就一起开始吧。 目录: 1.词干提取

2.词形还原 3.词向量化 4.词性标注 5.命名实体消岐 6.命名实体识别 7.情感分析 8.文本语义相似分析 9.语种辨识 10.文本总结 1.词干提取 什么是词干提取?词干提取是将词语去除变化或衍生形式,转换为词干或原型形式的过程。词干提取的目标是将相关词语还原为同样的词干,哪怕词干并非词典的词目。例如,英文中: 1.b e a u t i f u l和b e a u t i f u l l y的词干同为b e a u t i 2.G o o d,b e t t e r和b e s t的词干分别为g o o d,b e t t e r和b e s t。 相关论文:M a r t i n P o r t e r的波特词干算法原文

相关算法:在P yt h o n上可以使用P o r t e r2词干算法 (h t t p s://t a r t a r u s.o r g/m a r t i n/P o r t e r S t e m m e r/d e f.t xt) 程序实现:这里给出了在p yt h o n的s t e mm i n g库中使用 (https://https://www.wendangku.net/doc/3c14771655.html,/mchaput/stemming/src/5c242aa592a6 d4f0e9a0b2e1afdca4fd757b8e8a/stemming/porter2.py?at=d efault&fileviewer=file-view-default) P o r t e r2算法做词干提取的代码: #!pip install stemmingfrom stemming.porter2 import stem stem("casually") 2.词形还原 什么是词形还原?词形还原是将一组词语还原为词源或词典的词目形式的过程。还原过程考虑到了P O S问题,即词语在句中的语义,词语对相邻语句的语义等。例如,英语中: 1.b e a u t i f u l和b e a u t i f u l l y被分别还原为b e a u t i f u l和b e a u t i f u l l y。 2.g o o d,b e t t e r和b e st被分别还原为g o o d,g o o d和g o o d 相关论文1:这篇文章详细讨论了词形还原的不同方法。想要了解传统词形还原的工作原理必读。(h t t p://www.i j r a t.o r g/d o wn l o a d s/i c a t e st2015/I CA TE S T-2015127.p d f)

自然语言处理的关键技术

自然语言处理的关键技术 自然语言处理技术是所有与自然语言的计算机处理有关的技术的统称,其目的是使计算机理解和接受人类用自然语言输入的指令,完成从一种语言到另一种语言的翻译功能。自然语言处理技术的研究,可以丰富计算机知识处理的研究内容,推动人工智能技术的发展。下面我们就来了解和分析自然语言处理的关键技术。 一、常用技术分类 1、模式匹配技术 模式匹配技术主要是计算机将输入的语言内容与其内已设定的单词模式与输入表达式之间的相匹配的技术。例如计算机的辅导答疑系统,当用户输入的问题在计算机的答疑库里找到相匹配的答案时,就会完成自动回答问题的功能。但是不能总是保证用户输入的问题能得到相应的回答,于是很快这种简单匹配式答疑系统有了改进。答疑库中增加了同义词和反义词,当用户输入关键词的同义词或反义词时,计算机同样能完成答疑,这种改进后的系统被称为模糊匹配式答疑系统。 2、语法驱动的分析技术

语法驱动的分析技术是指通过语法规则,如词形词性、句子成分等规则,将输入的自然语言转化为相应的语法结构的一种技术。这种分析技术可分为上下文无关文法、转换文法、ATN文法。上下文无关文法是最简单并且应用最为广泛的语法,其规则产生的语法分析树可以翻译大多数自然语言,但由于其处理的词句无关上下文,所以对于某些自然语言的分析是不合适的。转换文法克服了上下文无关文法中存在的一些缺点,其能够利用转换规则重新安排分析树的结构,即能形成句子的表层结构,又能分析句子的深层结构。但其具有较大的不确定性。ATN文法扩充了转移网络,比其他语法加入了测试集合和寄存器,它比转移文法更能准确地分析输入的自然语言,但也具有复杂性、脆弱性、低效性等缺点。3、语义文法 语义文法的分析原理与语法驱动相似,但其具有更大的优越性。语义文法中是对句子的语法和语义的共同分析,能够解决语法驱动分析中单一对语法分析带来的不足。它能够根据句子的语义,将输入的自然语言更通顺地表达出来,除去一些语法正确但不合语义的翻译。但是语义文法分析仍然有不容忽视的缺点,其分析的语句中有时会出现不合语法的现象,并且这类分析较为复杂,语义类难以确定,语义的规则太多……因此,语义文法技术仍需要改进措施。 4、格框架约束分析技术

高级语言、汇编语言及机器语言的区别

计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。 低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,VC,易语言,中文版的C语言习语言等等,这些语言的语法、命令格式都不相同。 高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。 高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。 机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统 它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如,操作码字段和地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。 汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编.

自然语言处理的单词嵌入及表征方法

自然语言处理的单词嵌入及表征方法 简介 过去几年,深度神经网络在模式识别中占绝对主流。它们在许多计算机视觉任务中完爆之前的顶尖算法。在语音识别上也有这个趋势了。 虽然结果好,我们也必须思考……它们为什么这么好使? 在这篇文章里,我综述一下在自然语言处理(NLP)上应用深度神经网络得到的一些效果极其显著的成果。我希望能提供一个能解释为何深度神经网络好用的理由。我认为这是个非常简练而优美的视角。 单隐层神经网络 单隐层神经网络有一个普适性(universality):给予足够的隐结点,它可以估算任何函数。这是一个经常被引用的理论,它被误解和应用的次数就更多了。 本质上这个理论是正确的,因为隐层可以用来做查询表。 简单点,我们来看一个感知器网络(perceptron network)。感知器(perceptron)是非常简单的神经元,如果超过一个阈值它就会被启动,如果没超过改阈值它就没反应。感知器网络的输入和输出都是是二进制的(0和1)。 注意可能的输入个数是有限的。对每个可能的输入,我们可以在隐层里面构建一个只对这个输入有反应的神经元(见注解1)。然后我们可以利用这个神经元和输出神经元之间的连接来控制这个输入下得到的结果(见注解2)。

这样可以说明单隐层神经网络的确是有普适性的。但是这也没啥了不起的呀。你的模型能干和查询表一样的事并不能说明你的模型有任何优点。这只能说明用你的模型来完成任务并不是不可能的罢了。 普适性的真正意义是:一个网络能适应任何你给它的训练数据。这并不代表插入新的数据点的时候它能表现地很理想。 所以普适性并不能解释为什么神经网络如此好用。真正的原因比这微妙得多…为了理解它,我们需要先理解一些具体的成果。 单词嵌入(Word Embeddings) 我想从深度学习研究的一个非常有意思的部分讲起,它就是:单词嵌入(word embeddings)。在我看来,单词嵌入是目前深度学习最让人兴奋的领域之一,尽

统计自然语言处理--概率句法分析

概率句法分析
哈工大信息检索研究室 2004年春

PCFG (Probabilistic Context Free Grammars)

Chomsky hierarchy
? 0-型(无约束文法)
– 无限制
? 1-型(上下文相关文法)
– αAβ -> αγβ
? 2-型(上下文无关文法)
– A -> γ
? 3-型(正规文法)
– A -> aB – A -> a

Motivation
? N-gram和HMM只能处理线性序列 ? 用这些方法对句子进行分析时,面临这 一些问题 ? The velocity of the seismic waves rises to ? 如何解决这种“矛盾”?

Motivation
? The velocity of the seismic waves rises to
? 自然语言是一种非线性的符号序列 ? 句子结构表现为复杂的嵌套性

Context Free Grammar
? ? ? ? ? ? (a) S NP, VP. (b) NP Det, Noun. (c) VP Verb, NP. (d) VP VP, PP. (e) PP Prep, NP. (f) Det [the]. (g) Det [a]. (h) Noun [boy]. (i) Noun [dog]. (j) Noun [rod]. (k) Verb [hits]. (l) Prep [with].

机器人编程常用的四大语言介绍

机器人编程常用的四大语言介绍 伴随着机器人的发展,机器人语言也得到了发展和完善,机器人语言已经成为机器人技术的一个重要组成部分。机器人的功能除了依靠机器人的硬件支撑以外,相当一部分是靠机器人语言来完成的。早期的机器人由于功能单一,动作简单,可采用固定程序或者示教方式来控制机器人的运动。随着机器人作业动作的多样化和作业环境的复杂化,依靠固定的程序或示教方式已经满足不了要求,必须依靠能适应作业和环境随时变化的机器人语言编程来完成机器人工作。下面就来了解一下常见的机器人编程语言吧! VAL语言 一、VAL语言及特点 VAL语言是美国Unimation公司于1979年推出的一种机器人编程语言,主要配置在PUMA和UNIMATION等型机器人上,是一种专用的动作类描述语言。VAL语言是在BASIC语言的基础上发展起来的,所以与BASIC语言的结构很相似。在VAL的基础上Unimation公司推出了VALⅡ语言。 VAL语言可应用于上下两级计算机控制的机器人系统。上位机为LSI-11/23,编程在上位机中进行,上位机进行系统的管理;下位机为6503微处理器,主要控制各关节的实时运动。编程时可以VAL语言和6503汇编语言混合编程。

VAL语言命令简单、清晰易懂,描述机器人作业动作及与上位机的通信均较方便,实时功能强;可以在在线和离线两种状态下编程,适用于多种计算机控制的机器人;能够迅速地计算出不同坐标系下复杂运动的连续轨迹,能连续生成机器人的控制信号,可以与操作者交互地在线修改程序和生成程序;VAL语言包含有一些子程序库,通过调用各种不同的子程序可很快组合成复杂操作控制;能与外部存储器进行快速数据传输以保存程序和数据。 VAL语言系统包括文本编辑、系统命令和编程语言三个部分。 在文本编辑状态下可以通过键盘输入文本程序,也可通过示教盒在示教方式下输入程序。在输入过程中可修改、编辑、生成程序,最后保存到存储器中。在此状态下也可以调用已存在的程序。 系统命令包括位置定义、程序和数据列表、程序和数据存储、系统状态设置和控制、系统开关控制、系统诊断和修改。 编程语言把一条条程序语句转换执行。 二、VAL语言的指令 VAL语言包括监控指令和程序指令两种。其中监控指令有六类,分别为位置及姿态定义指令、程序编辑指令、列表指令、存储指令、控制程序执行指令和系统状态控制指令。各类指令的具体形式及功能如下:

机器语言

机器语言 百科名片 机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。 目录 简介 指令格式 寻址方式 种类 特点 发展过程 编辑本段简介 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基 本格式如:操作码字段地址码字段其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。 各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。因此,尽管各种型号计算机的高级语言基本相同,但将高级语言程序(例如Fortran语言程序)编译成机器语言后,其差别也是很大的。因此将用机器语言表示的程序移植到其他机器上去几乎是不可能的。从计算机的发展过程已经看到,由于构成计算机的基本硬件发展迅速,计算机的更新换代是很快的,这就存在软件如何跟上的问题。大家知道,一台新机器推出交付使用时,仅有少量系统软件(如

操作系统等)可提交用户,大量软件是不断充实的,尤其是应用程序,有相当一部分是用户在使用机器时不断产生的,这就是所谓第三方提供的软件。 为了缓解新机器的推出与原有应用程序的继续使用之间的矛盾,1964年在设计IBM360计算机时所采用的系列机思想较好地解决了这一问题。从此以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容(在此基础上,产生了兼容机)。当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留了原来的全部指令,保持软件向上兼容的特点,即低档机或旧机型上的软件不加修改即可在比它高档的新机器上运行,以保护用户在软件上的投资。 CISC(复杂指令系统)和RISC(精简指令系统) 编辑本段指令格式 计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指 令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。因此,如何合理、科学地设计指令格式,使指令既能给出足够的信息,又使其长度尽可能地与机器的字长相匹配,以节省存储空间,缩短取指时间,提高机器的性能,这是指令格式设计中的一个重要问题。 计算机是通过执行指令来处理各种数据的。为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息: (1)操作码。它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。 (2)操作数的地址。CPU通过该地址就可以取得所需的操作数。 (3)操作结果的存储地址。把对操作数的处理所产生的结果保存在该地址中,以便再次使用。 (4)下条指令的地址。执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程序计数器(ProgramCounter,PC)存放指令地址。每执行一条指令,PC的指

自然语言处理大纲

课程编号:S0300010Q 课程名称:自然语言处理 开课院系:计算机科学与技术学院任课教师:关毅刘秉权 先修课程:概率论与数理统计适用学科范围:计算机科学与技术 学时:40 学分:2 开课学期:秋季开课形式:课堂讲授 课程目的和基本要求: 本课程属于计算机科学与技术学科硕士研究生学科专业课。计算机自然语言处理是用计算机通过可计算的方法对自然语言的各级语言单位进行转换、传输、存贮、分析等加工处理的科学。是一门与语言学、计算机科学、数学、心理学、信息论、声学相联系的交叉性学科。通过本课程的学习,使学生掌握自然语言(特别是中文语言)处理技术(特别是基于统计的语言处理技术)的基本概念、基本原理和主要方法,了解当前国际国内语言处理技术的发展概貌,接触语言处理技术的前沿课题,具备运用基本原理和主要方法解决科研工作中出现的实际问题的能力。为学生开展相关领域(如网络信息处理、机器翻译、语音识别)的研究奠定基础。 课程主要内容: 本课程全面阐述了自然语言处理技术的基本原理、实用方法和主要应用,在课程内容的安排上,既借鉴了国外学者在计算语言学领域里的最新成就,又阐明了中文语言处理技术的特殊规律,还包括了授课人的实践经验和体会。 1 自然语言处理技术概论(2学时) 自然语言处理技术理性主义和经验主义的技术路线;自然语言处理技术的发展概况及主要困难;本学科主要科目;本课程的重点与难点。 2 自然语言处理技术的数学基础(4学时) 基于统计的自然语言处理技术的数学基础:概率论和信息论的基本概念及其在语言处理技术中的应用。如何处理文本文件和二进制文件,包括如何对文本形式的语料文件进行属性标注;如何处理成批的文件等实践内容 3 自然语言处理技术的语言学基础(4学时) 汉语的基本特点;汉语的语法功能分类体系;汉语句法分析的特殊性;基于规则的语言处理方法。ASCII字符集、ASCII扩展集、汉字字符集、汉字编码等基础知识。 4 分词与频度统计(4学时) 中文分词技术的发展概貌;主要的分词算法;中文分词技术的主要难点:切分歧义的基本概念与处理方法和未登录词的处理方法;中外人名、地名、机构名的自

自然语言处理技术分享1

内容大概分为:自然语言处理的简介、关键技术、流程及应用。 首先,介绍一下什么是自然语言处理(也叫自然语言理解): 语言学家刘涌泉在《大百科全书》(2002)中对自然语言处理的定义为:“自然语言处理是人工智能领域的主要内容,即利用电子计算机等工具对人类所特有的语言信息(包括口语信息和文字信息)进行各种加工,并建立各种类型的人-机-人系统,自然语言理解是其核心,其中包括语音和语符的自动识别以及语音的自动合成。” 从微观上讲,自然语言理解是指从自然语言到机器(计算机系统)内部之间的一种映射。 从宏观上看,自然语言理解是指机器能够执行人类所期望的某些语言功能。这些功能包括: ①回答有关提问;计算机正确地回答用自然语言输入的有关问题 ②提取材料摘要;机器能产生输入文本的摘要 ③同词语叙述;机器能用不同的词语和句型来复述输入的自然语言信息 ④不同语言翻译。机器能把一种语言翻译成另外一种语言 自然语言处理的关键技术 自然语言处理的关键技术包括:词法分析、句法分析、语义分析、语用分析和语句分析。 1.词法分析 词法分析的主要目的是从句子中切分出单词,找出词汇的各个词素,并确定其词义。 词法分析包括词形和词汇两个方面。一般来讲,词形主要表现在对单词的前缀、后缀等的分析,而词汇则表现在对整个词汇系统的控制。在中文全文检索系统中,词法分析主要表现在对汉语信息进行词语切分,即汉语自动分词技术。通过这种技术能够比较准确的分析用户输入信息的特征,从而完成准确的搜索过程。它是中文全文检索技术的重要发展方向。 不同的语言对词法分析有不同的要求,例如英语和汉语就有较大的差距 汉语中的每个字就是一个词素,所以要找出各个词素是相当容易的,但要切分出各个词就非常难。 如”我们研究所有东西“,可以是“我们——研究所——有——东西”也可是“我们——研究——所有——东西”。

自然语言与机器语言的比较

周锡令 经过几十年的全球性的努力,以机器翻译为代表的计算机自然语言处理工作始终没有达到人们预想的境界。于是我们竟不住要问:为什么电脑处理起“编程语言”来那样轻松自如,可以作好多非常复杂的事情;而在一句普通的自然语言面前却显得像一个大笨蛋呢?自然语言和编程语言的本质区别到底在哪里? 自然语言和编程语言显然有很多地方不同。但是作为“语言”,两者都面临语言使用这所需要的一些要求:(1)有强大的表达能力(能够把事情说清楚) (2)结构化。人的短时记忆容量不多,信息如果不分层次,无论听说还是阅读都会造成困难。 (3)具有简洁、浓缩表达的机制(使听说双方都不觉得罗嗦)。 在这两种要求的驱动下,两种语言都会发展出一些机制,这些机制在两种语言中的表现可能大不相同,但是会存在某种对应关系。 在文科领域有所谓“比较文学”的行当。考虑到不同民族,不同文化发源地发展出来的文学作品既有各自的特色,又有互通的共性,可以对它们的异同加以比较。事实证明,从这种比较中,可以得到许多有益的启示。“比较”既然是观察和分析事物的有效方法,把自然形成的语言和人工设计的语言(计算机编程语言就是应用最为广泛的一种人工语言)进行一番比较也许能给我们一些工作上的启示。 语言的设计者 自然语言是在无数多人群之间的碰撞和交流之间产生、发展、筛选、淘汰之后形成的,好比是“市场经济”的产物。 计算机编程语言(以下简称“编程语言”)则是“计划经济”的产物。它所使用的词汇、规则都是事先由一位“上帝”(语言的设计者)策划好的。 词汇及其分类 “词”是自然语言中的基石,它们是具有语义的最小独立单位。 在编程语言中对应的东西就是token。Token是编译程序中的术语,它包括外形像英语单词的Word,以及“=, +, -, *, /, ==,>, <, (, ), ……” 之类的符号。 从信息处理的角度来看,“词”和token都是“符号(Symbol)”,它们可以被我们“用来”映射到各种实体或者概念上去。根据一个符号所映射到各种实体或者概念的性质来把它们进行分类。 语言学家把自然语言中的词划分为许多类:名词、动词、形容词、副词、数词、连接词、感叹词、………。我们应该注意到,它们不是在同一级别上的。 名词和动词:是最重要的。它们直接反映了我们对世界上形形色色的事物以及这些事物之间的相互作用。形容词、副词、数词、则是第二级的。它们只对事物以及这些事物之间的相互作用起修饰作用。 剩下来的连接词、感叹词、………则是第三级的。它们主要起语法的作用。(用来提示语句内部的结构性信息,起连接作用、用来表述“词”与“词”之间的关系) 与之对应,在编程语言中,可以把token划分为:

计算机原理、机器语言原理

一、计算机原理/机器语言原理 计算机的核心部件是CPU(中央处理单元),这是一个有着众多引脚的集成电路。计算机的所有动作均由其内部的“电子运算”而最终产生。从理解的角度上,可以把CPU看作是一套“约定”的集合。当我们通过一些引脚告诉它“1”、“加”、“2”、“运算”、“输出”等信号时,通过CPU设计制作时固定好的“约定”,在其另一些引脚上输出“3”的信号并通知显示设备显示出“3”的图象,我们就此得到了结果。——这些“约定”就是该CPU的机器语言。 不同的CPU有着不同的机器语言。不同机器语言基础上的软件无法通用。某一厂商新型的CPU为了软件的通用性往往向其早期的CPU保持兼容。机器语言是一切软件(包括操作系统)的基础,是计算机最终识别并执行的指令。 任何的机器语言都只接受两种信息:“指令”和“数据”;指令是告诉CPU做什么样的动作,而数据则是动作的对象。比如上文中的“加”、“运算”等是指令,而“1”、“2”是数据。从形式上讲,指令和数据都是二进制信息。但如果将数据当成指令交给CPU处理,通常CPU会无法理解而死机;反之如果将指令当成数据交给CPU则不会引起任何恶果,因为数据不会引起CPU任何的动作。 为验证这一说法,你可以随便将一个文件的扩展名改为COM在DOS下交给系统执行;也可以将命令处理器https://www.wendangku.net/doc/3c14771655.html,的扩展名改为TXT用记事本打开(切记不要存盘!)。 二、二进制和计算机存储单位 计算机使用二进制,因为表示两种状态的物质比较容易找到,比如电灯的“灭”和“亮”以及磁场的“负”和“正”。二进制其实就是“逢二进一”。在二进制里,“0”还是“0”,“1”还是“1”,但“2”就写成了“10”(请读成“壹零”而不要读成“十”),同样,“3”是“11”,“4”则是“100”——这种牺牲了位元的做法虽然浪费了存储单元但却相对较易实现。 表示二进制的位元叫“位”(Bit)。一个位有两种属性,“0”或者“1”。我们能够接触到的“xx位操作系统”或者“xx位真彩色”里的“位”就是这个“位”。 计算机的基本存储单元是“字节(Byte)”。一个字节由8个“位”组成。 1024个字节称为1KB。为什么不是1000而是1024呢?因为在二进制里多一位就是多一倍(乘2),因此计算机里充满了2的倍数,而1024是2的10次方。 更大的单位还有MB和GB,1MB=1024KB,1GB=1024MB。 三、操作系统 当人们不想再重复地向计算机输入一套套的机器语言时,操作系统随之诞生。有了它,人们不必再使用二进制的机器语言直接与硬件说话。使用一个COPY命令,就可以实现1823句的机器语言指令来完成信息的复制工作。如果需要复制八个文件,只有傻瓜才愿意重复八次机器语言,聪明人则会将这套指令做成集合然后通过一个命令来调用它——操作系统是用户和计算机硬件中间的“界面”,除了简单高效之外,更重要的是操作系统隔离了高深的理论知识,使得对计算机的使用变成了简便的对操作系统的掌握。 美国微软公司(Microsoft)在操作系统方面做出了巨大贡献。其磁盘操作系统DOS由于开放了所有的机器语言而在最需要的时刻赢得了大量的软件。在DOS里,系统提供了大量的子程序供编程调用,由此DOS 迅速打败了对手而几乎一统天下。代替DOS的图形操作系统Windows更是带领人们进入了自由探索时代。无论如何,使用鼠标器将文件扔到垃圾箱远比记忆DELETE更为直观。 四、磁盘使用原理 磁盘是计算机存储信息的设备。 在DOS/Windows系统下,将软磁盘划分为磁道(磁头静止时主轴马达带动盘片旋转一周形成的圆环)和扇区(磁道上每512个字节被划分为一个扇区)。高密度软盘有80个磁道,每磁道分为18个扇区,加上反正两面都使用,所以总容量是80*18*512*2=1474560 Bytes=1440KB=1.44MB。对于硬盘来讲,因为不

自然语言处理技术在中文全文检索中的应用

3本文为国家社会科学基金项目“基于中文X ML 文档的全文检索研究”的成果之一,项目编号:04CT Q005。 ●熊回香,夏立新(华中师范大学 信息管理系,湖北 武汉 430079) 自然语言处理技术在中文全文检索中的应用 3 摘 要:自然语言处理技术是中文全文检索的基础。首先介绍了全文检索技术及自然语言处理技术,接着详细地阐述了自然语言处理技术在中文全文检索中的应用,并对目前基于自然语言处理技术的中文全 文检索技术的局限性进行了分析,探讨了中文全文检索技术的未来发展方向。 关键词:自然语言处理;全文检索;智能检索 Abstract:Natural language p r ocessing technol ogy is the basis of Chinese full 2text retrieval .This paper firstly intr oduces the full 2text retrieval technol ogy and natural language p r ocessing technol ogy .Then,it gives a detailed 2descri p ti on of the app licati on of natural language p r ocessing technol ogy in Chinese full 2text retrieval .The p resent li m itati ons of the Chinese full 2text retrieval system based on natural language p r ocessing technol ogy is als o ana 2lyzed .Finally,the paper exp l ores the devel opment trend of Chinese full 2text retrieval technol ogy in future . Keywords:natural language p r ocessing;full text retrieval;intelligent retrieval 随着社会网络化、信息化程度的日益提高,网上信息呈指数级剧增,人们越来越强烈地希望用自然语言同计算机交流,并能方便、快捷、准确地从互联网上获得有价值的信息,因此,自然语言处理技术和中文全文检索技术成为当今计算机科界、语言学界、情报学界共同关注的课题,并共同致力于将自然语言处理技术的研究成果充分运用到全文检索中,从而促进了全文检索技术的发展。 1 全文检索技术 全文检索是一种面向全文和提供全文的检索技术,其核心技术是将文档中所有基本元素的出现信息记录到索引库中,检索时允许用户采用自然语言表达其检索需求,并借助截词、邻词等匹配方法直接查阅文献原文信息,最后将检索结果按相关度排序返回给用户。因而索引数据库的建立是全文检索系统实现的基础,它以特定的结构存储了数据资源的全文信息,从而为全文检索系统提供可检索的数据对象。在中文全文检索系统中,建立索引库的前提是运用自然语言处理技术对中文信息进行基于词(字)、句、段落等更深层次的处理。 2 自然语言处理技术 自然语言是指作者所使用的书面用语,在信息检索中包括关键词、自由词和出现在文献题名、摘要、正文或参 考文献中的具有一定实质意义的词语[1]。自然语言处理 (Natural Language Pr ocessing,NLP )是语言信息处理的一 个重要分支,在我国就是中文信息处理。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,具体来说就是用计算机对包括汉语(字)的形、音、义等信息及词、句子、篇章的输入、输出、存储和识别、分析、理解、生成等多方面的加工处理[2]。由于自然语言处理侧重于词、句子、篇章,因而词法分析、句法分析、语义分析、语用分析、语境分析便构成了自然语言处理研究内容的基础部分。 211 词法分析 词法分析包括词形和词汇两个层次,其中词形主要是对各种词形和词的可识别部分的处理。如前缀、后缀及复合词的分析;词汇的重点在于复合对词操作和词汇系统的控制。其主要目的是有助于确认词性以及做到部分理解词与词、词与文档之间的关系,提高检索的效率。由于计算机内部存储的中文信息没有明显的词与词之间的分隔符,因此,在中文全文检索系统中,词法分析首要任务之一是对文本信息进行词语切分,即汉语自动分词,汉语自动分词是中文信息处理中的关键技术,也是中文全文检索的瓶颈,只有对汉语词进行正确的切分后,才能准确地提取文献的特征信息,对文献进行正确标引,才能正确分析用户的查询意图,为用户提供准确的信息服务。 212 句法分析 句法分析是对句子中词汇短语进行分析以便揭示句子的语法结构。目的是通过对句型结构的分析,自动抽取复

句法分析

1、忘れていたら、私に注意して下さい。 2、ご請求の代金は今週中に払う。 3、その問題について検討していただきたいです。 4、他人に迷惑をかけない方がいいです。 5、これは君の書いたものなかろうか。 6、むしろその方が効果的ではないでしょうか。 7、暗い汽車の窓に流れて行く名古屋の街の灯を汽車に乗っている彼は見ていた。 8、この本は、外国人で、中国語を学習しようとする者に対して、その学習活動を効果的にする目的で編集したものである。 9、代表に選ばれた山田さんが会議に出席しました。 10、熱もないから、そんなに苦しいわけはない。仮病を使うに違いない。 11、人生の暮れ方に近づいた私にとって、このようなことが最後の機会になると思う。 12、二人は性質が合わないのを口実に離婚しました。 13、そのことは彼に任せておけば大丈夫です。 14、こんな雤の強い日には、タクシーを拾うのは難しいです。 15、貿易摩擦のため、化学繊維品の輸入は大幅に減少した。

16、9ヶ月にわたって書いてきた看病日記はとうとうこれで終わりになってしまいました。 17、顔色は血液の循環(血行)と密接にかかわっています。そのため、貧血気味の人はいつも顔色が悪く感じられることが多いようです。 18、名を変えたが、中身が変わったわけではない。 19、大好きなおばあさんが入院した。心配で帰国せずにはいられない。 20、日本語は得意だからといって、必ずしも就職に有利だとは限らない。 21、まだ子供だから、親のいうことを聞かざるを得ない。22、彼は若いながらも、経験がとても豊富だ。 23、いくらいい音楽でも毎日のように聞かされるといやになるものですよ。 24、西洋の学問、技術、社会の進んだありさまなどを日本の民衆に知らせないようにするのが徳川幕府の鎖国の大きな目的であった。 25、発送した品物が3日で届いていないなら、郵便局へ調査依頼を出して下さい。 26、自分は特に自信があるのは歯の丈夫さであった。 27、大学を卒業した以上、自分で働いて食べて行くつもりです。

相关文档
相关文档 最新文档