自然语言理解

摘要 自然语言理解一直是一个很大很麻烦的问题,本文讨论了自然语言理解的基本概念,以及几个实现自然实现方法的讨论。最后,提出一个叫做nltk的工具,并介绍这个工具如何使得开发自然语言理解应用更加迅速

关键词 自然语言理解;规则;nltk

中***分类号TP31 文献标识码A 文章编号 1674-6708(2010)30-0243-02

1 自然语言理解之原理解析

如何来理解自然语言呢?怎样才能让机器理解自然语言呢?这是自然语言理解,特别是计算语言学要讲的问题。

“理解”是什么意思?事实我们常常说,“我明白了你的意思”。一个人说这句话的意思实际上时说,他可以利用你刚告诉他的东西进行事情推理和利用了。实际上,对于计算机来说,机器明白了人的意思实际上说,机器可以利用人用自然语言输入的信息进行计算。

那么如何进行映射呢?这里可以参考下编译原理,编译原理通过一个开始符号一步步往下推导,一直到一个非终结符号都没有的情况,这个时候一个句子就算是解析完成了,而解析出来的句子通过一些符号运算,最终可以映射成计算机可以理解的机器语言。

那么该如何转换呢?比较直观的想法就是使用编译原理技术,使用一个开始符号 S,然后一步步推导到每个单词(这里的单词实际上就是终结符号)。然后对于每次归约,使用action来操作,最终映射成电脑所能理解的sql。对于一个像c语言的语法解析器来说,它在很大的程度上依赖于用户―也就是程序员―对于语言的理解,像那个if else 语法,不管你怎么对齐,else也就只能和最近的一个if组成一个句子。但自然语言的情况就复杂得多了。在现实的生活中,不但有一词多义的多义的情况,而且就是对于同一句话,断句不同都会造成非常不同的效果。比如说对于like这个词来说,在不同的情况就有不同的意思。We like flying 和you are like your mom.的时候就分别是喜欢和像的意思。如何区分?我们可以根据搭配来解决这个问题。对于像is like 这种情况我们可以给like的“像”意思一个比较高的概率,而在另一种情况则给“喜欢”一个比较高的概率,这样,碰到不同的搭配就可以有不同意思理解。这个这种方法可以参考《统计自然语言处理基础》中的马可夫链。马可夫链就是就是根据概率状态转移模型来分析在什么样的情况下,使用哪个表达方式更好。

当然,在分析一句话的时候,我们可能会碰到大量的重复情况,比如说,对于“I see a boy on the chair,使用普通分析技术,必定是先分析掉“I” “see”

“a boy on the chair ”再继续分析“I see a boy”“on the chair ”。对于一个比较大型的系统来说,时间上可能会非常吃不消。而在自然语言理解中,我们一般可以这样做在分析一个句子的时候,不是每次只规约一种情况,而是把所有可规约的情况都规约出来,然后再继续分析,这样缓存的结果就是,我们不必要每次都回溯到开始符号s来重新分析,而是在分析到每个词的时候更新一下当前分析句子的状态就可以了。经过统计,使用这中技术的系统比不使用的要快5 000倍~100 000倍,当然,同时因为缓存中间结果,系统开销也大得多。

但是,如何才能句子的意思进行理解呢?我们回到我开始的那个问题。对于像下面一个对话:

a. Which country is Athens in? b. Greece

来说,我们可以使用下面的规则来进行

% start S

S[SEM=(?np + WHERE + ?vp)] -> NP[SEM=?np] VP[SEM=?vp]

VP[SEM=(?v + ?pp)] -> IV[SEM=?v] PP[SEM=?pp]

VP[SEM=(?v + ?ap)] -> IV[SEM=?v] AP[SEM=?ap]

NP[SEM=(?det + ?n)] -> Det[SEM=?det] N[SEM=?n]

PP[SEM=(?p + ?np)] -> P[SEM=?p] NP[SEM=?np]

AP[SEM=?pp] -> A[SEM=?a] PP[SEM=?pp]

NP[SEM='Country="greece"'] -> 'Greece'

NP[SEM='Country="china"'] -> 'China'

Det[SEM='SELECT'] -> 'Which' | 'What'

N[SEM='City FROM city_table'] -> 'cities'

IV[SEM=''] -> 'are'

A[SEM=''] -> 'located'

P[SEM=''] -> 'in'

其中,s是代表开始符号,后面的则是一个个的推导符号。而中间最关键的地方就是那个sem特征,这个特征可以帮助分析器在规约的时候将一个简单的句子分析成相应的sql.

2 自然语言理解之工具与实现

除了有基础的理论之外,实现自然语言理解系统也很重要。出于效率的情况,真正的系统可能使用分布式计算,然后在每个节点上使用像c++这样的语言来进行计算。但是对于像c++这样的语言,可能在开发与调试上需要大量的时间和极度的细致,这对于新应用的研究工作来说是不太合适的。在这种情况,使用基于python的nltk会比较好一些。

Nltk的全称是”自然语言工具包”,可以再google code上找到这个开源项目。目前的最新版本是2.0b9。这个工具支持了很多关于自然语言理解方面的技术,是一个比较好的开发框架。

我们可以使用这个工具来简单的对上面的情况进行一些讲解,首先,我们可以先以上面第2节提到的规则作为一个模板来写一个文法文件,它的后缀名是.fcfg(比如a.fcfg)。nltk在处理的时候会根据你所提供文法文件来装入相应的规则。我们可以进行类似如下的操作

>>> from nltk import load_parser

>>> cp = load_parser('grammars/book_grammars/sql0.fcfg')

>>> query = 'What cities are located in China'

>>> trees = cp.nbest_parse(query.split())

>>> answer = trees[0].node['sem']

>>> q = ' '.join(answer)

>>> print q

SELECT City FROM city_table WHERE Country="china"

注意上面的操作,我们通过load_parser方法装入语法文件,然后再使用nbestparser就可以实现这些操作了。

3 结论

从目前的情况的看,自然语言理解不管在从学术研究到商业市场的各个领域都有比较迫切和强烈的需求,它本身也涵盖了从人工智能,数据挖掘等非常广泛的领域,而且对于理论和技术的要求都比较高。

自然语言理解

转载请注明出处学文网 » 自然语言理解

学习

浅析营运资金的管理

阅读(26)

本文为您介绍浅析营运资金的管理,内容包括浅谈营运资金管理,营运资金管理分析哪些指标。【摘要】随着社会主义市场经济的不断发展,加强内部管理,提高经济效益,是企业发展的必由之路。企业管理的目标是生存、发展、获利,财务管理是企业管理的

学习

洗手作羹汤

阅读(18)

本文为您介绍洗手作羹汤,内容包括洗手作羹汤全文阅读,为君洗手作羹汤原文。印象里,羹最纯粹,最简洁,随便什么都可以拿来制作羹汤:白菜、芋艿、萝卜、土豆、茄子……鱼、肉、牛下水、羊杂碎……净菜清煮,抑或荤素搭配,尽可悉听尊便。烹羹所用的

学习

关于矩阵求逆的几种方法

阅读(32)

本文为您介绍关于矩阵求逆的几种方法,内容包括2阶矩阵求逆计算方法,矩阵的逆有什么软件可以求。摘要:矩阵求逆是高等代数中很重要的内容之一,本文介绍了矩阵求逆的几种方法。

学习

浅谈“花重锦官城”中“重”的读音

阅读(21)

本文为您介绍浅谈“花重锦官城”中“重”的读音,内容包括花重锦官城的重的读音,花重锦官城读音。杜甫的《春夜喜雨》是咏春的名篇,传诵千年。在古代文学作品选中吟诵此诗时,对“花重锦官城”中“重”的读音颇有疑惑,于是对此进行了一番考查

学习

真没想到作文400字

阅读(25)

本文为您介绍真没想到作文400字,内容包括没想到作文四年级400字,真没想到作文400字写事。在我的生活中,我觉得我好象没有什么事不知道,但是从一件小事中,我明白了其实并不是什么事都知道,没想到的事有很多。有一次,妹妹、弟弟到家里玩,我正在

学习

《论语》中的“义利”观

阅读(25)

本文为您介绍《论语》中的“义利”观,内容包括论语中的义利观,论语中如何处理义利观。关键词:孔子《论语》义利

学习

席慕蓉:青春是一本太仓促的书

阅读(46)

她是一位著名的诗人,她的诗犹如一泉甘泓,润泽着一代人的成长。对于生于上世纪七八十年代的人来说,她是他们青葱岁月中无法忘怀的记忆。她也是一位出色的画家,年少时开始绘画,23岁赴比利时留学,以第一名的成绩毕业于世界著名美术学府布鲁塞尔皇

学习

浅析小电流接地

阅读(23)

本文为您介绍浅析小电流接地,内容包括电流互感器要接地吗,小电流接地什么意思。[关键词]小电流接地;应用

学习

计划行为理论经济结构论文

阅读(22)

本文为您介绍计划行为理论经济结构论文,内容包括计划行为理论的实际应用,计划行为理论怎么用到论文里。一、我国经济结构对当代大学生就业的影响

学习

系统管理学报

阅读(14)

本文为您介绍系统管理学报,内容包括系统管理学报投稿,管理学报。1.具有斯塔克尔贝格及古诺博弈行为容量约束时优化分配机制设李建斌,唐志鹏,许明辉,LIJian-bin,TANGZhi-peng,XUMing-hui

学习

汉字故事:六书造字法

阅读(19)

本文为您介绍汉字故事:六书造字法,内容包括汉字造字六书分别指,汉字六书造字法和用字法。思考:书写时代的“没落”

学习

黄渤 一个演员的自我修养

阅读(25)

本文为您介绍黄渤 一个演员的自我修养,内容包括黄渤演员的自我素养完整版,黄渤自我修养完整版。黄渤曾经做过歌手、节目主持人和舞蹈编导,后来又经过了专业的配音学习,这些丰富的人生经历,成就了他如今演什么像什么的深厚功底。在电影界大

学习

我国市民社会

阅读(23)

本文为您介绍我国市民社会,内容包括市民社会名词解释,完善市民公约等社会规范。1市民社会在中国

学习

CASS工艺特点及应用

阅读(19)

本文为您介绍CASS工艺特点及应用,内容包括cass工艺的特点,cass工艺中曝气量怎么计算。【摘要】通过一项工程实例介绍采用CASS工艺处理城镇生活污水的方法。针对该工艺的运行特点和工程实际运行中存在的问题,来分析、探讨其在城镇污水处理

学习

电影《翻译风波》中的译者伦理解读

阅读(23)

本文为您介绍电影《翻译风波》中的译者伦理解读,内容包括看完电影翻译风波的感想,对翻译风波电影的理解。[摘要]翻译活动作为一种跨文化的交际活动,译者在此活动中是主体,必然要受到社会各因素的制约,遵循有关价值观念和思想意识形态体系

学习

正确理解电流做功

阅读(20)

本文为您介绍正确理解电流做功,内容包括电流做功公式是什么,该怎样理解电流做功的实质。电功与机械功具有相似的意义,但电功比较抽象,没有机械功那么直观.我们可从能量转化的角度去理解电功的意义,电流通过用电器或一段电路时,要消耗电能,将

学习

劳动最光荣手抄报内容范文精选

阅读(34)

本文为您介绍劳动最光荣手抄报内容范文精选,内容包括51劳动最光荣手抄报简单又漂亮,劳动最光荣的手抄报一等奖超级难。劳动最光荣手抄报内容篇1在五一劳动节到来之际,学校想要举办相关的活动。以下是为大家收集的2017学校关于五一劳动节

学习

开学第一课主要内容范文精选

阅读(31)

本文为您介绍开学第一课主要内容范文精选,内容包括开学第一课2022观后感范文,开学第一课2022观后感600字范文。开学第一课主要内容篇1《开学第一课》先播放了《我的梦,中国梦》,然后就说了关于梦的演讲。“少年智则国智,少年强则国强”。每

学习

怎样理解完全平方式

阅读(47)

本文为您介绍怎样理解完全平方式,内容包括完全平方式配方的技巧,完全平方式求k的值。关键词:理解完全平方式灵活运用完全平方公式

学习

八荣八耻社会主义荣辱观的基本内容

阅读(36)

本文为您介绍八荣八耻社会主义荣辱观的基本内容,内容包括社会主义荣辱观当中八荣八耻是啥,社会主义荣辱观八耻八荣主要内容。同志关于“八荣八耻”的概括,精辟阐明了社会主义荣辱观的重要内容,体现了爱国主义、集体主义、社会主义思想,体现

学习

解读麦克卢汉的《理解媒介》

阅读(40)

本文为您介绍解读麦克卢汉的《理解媒介》,内容包括麦克卢汉的媒介观简答题,如何理解麦克卢汉的媒介观点。20世纪60年代的国际背景是美苏争霸,这两个世界大国在世界范围内的霸权存在着意识形态的激烈对峙。在传播学界,美国传播学经验学派的

学习

感恩教育的内容

阅读(36)

本文为您介绍感恩教育的内容,内容包括感恩的教育的内容,感恩教育的班会教案。1、感激父母的养育之恩