基于面向对象语言模型的自然语言处理

2020-11-14 08:37乔士君
网络安全技术与应用 2020年11期
关键词:面向对象形容词小明

◆乔士君

安全模型、算法与编程

基于面向对象语言模型的自然语言处理

◆乔士君

(郑州大学北校区软件学院 河南 45002)

本文尝试采用一种全新的语法来构建自然语言模型,本文构建的新模型可以更好地处理语句之间的逻辑关系。在处理过于抽象语句的过程中,该模型灵活度远高于现有的语言模型灵活度。该模型参考了计算机语言中面向对象思想,如果对面向对象思想概念较为熟悉的话,就会更加容易理解本文采用的新语法。

自然语言;处理;面向对象;设计

在当今互联网快速发展的时代,计算机硬件的更新迭代更加迅速,软件的架构与功能愈加复杂和完善。在计算机汇编语言中,面向对象思想可以帮助程序员更好的编写更加复杂的功能更加完善的计算机程序。人工智能等会是未来的大趋势,未来的软件也会向智能化发展。目前而言,制约软件智能化发展的关键因素已不再是计算机的计算能力,而是现有的计算机语法理论的制约。如果计算机语法在理论方面没有什么革命性的突破进展,那么软件智能化也将会难以快速发展。

绝大多数程序员设计程序时采用的面向对象思想,可以帮助建立一种新的语法模型,从而可以更好地将自然语言转化为机器语言。采用面向对象思想建立的语言模型比现有语法模型更加灵活,并且适用性更强,从而能够处理复杂语句的逻辑关系,它将极大影响未来计算机领域对自然语言的处理。

1 自然语言处理技术发展

自然语言处理并不是常规地研究人类语言,而在于实现能有效地实现人与计算机用自然语言通信的计算机系统,特别是其中的软件系统。传统的自然语言处理方式简单粗暴,回复答案需要手工输入且其不能进行自主学习,对于未录入语句无法处理,而且句子之间没有明显的逻辑关系。当前自然语言处理技术采用的是旧式语法,旧式语法不能给出句子与句子之间的逻辑关系,因此在理论层面上就不可能处理复杂的逻辑问题。

2 面向对象思想

面向对象思想来源于计算机程序设计,面向对象思想描述的是类与类之间的关系,可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。通过将编程语言转换成类对象来帮助程序员处理逻辑关系。

面向对象编程中最基本的逻辑单位是类,一个类有类名、属性值、方法名、父类等基本信息,类与类之间有继承、关联、聚合、依赖、组合等基本关系。例如“汽车”转换成类:“汽车”是类名,“重量”、“移动速度”是属性值,“移动”是方法,“交通工具”是父类。“汽车”继承于“交通工具”,“汽车”和“加油站”是关联关系,“汽车”和“轮胎”是聚合关系,“汽车”和“司机”是依赖关系,“汽车”和“发动机”是组合关系。

3 面向对象的语言模型

面向对象语言模型是构建的全新的语言模型,现有语法模型只能够孤立的分析句子成分,但面向对象语言模型可以将句子转化为类,将句子之间的关系转化为类与类之间的关系。

一个句子通常描述某物做某事,某物怎么样。把它们与面向对象思想中的类联系后,“某物”可以代表为类名,“做”这个动作可以表示为方法,“某物”和“某事”中的宾语可以表示为方法的参数,“怎么样”可以表示为某物的属性值。“小明给花浇水”,“小明”为类名,“给…浇水”为方法,“小明”和“花”为“给…浇水”的参数。“给…浇水”是“小明”这个类里面的一个方法。“这个房子非常大”,“这个房子”为类名,“大”为“这个房子”的属性,“非常”表示属性的值是多少,到底有多“大”,作用类似于数词。

“金钱”可以单独作为实体对象,它也可以用于表示一个人的属性。“金钱”在作为实体时有“重量”属性,它的父类“小型物体”是“投掷”方法的参数。“小明在投掷”这句话中,缺失了被投掷物,可以补全为“小明投掷小型物体”。至于投掷后的结果,需要根据“小型物体”和“小明”的属性确定。假如“小型物体”换成子类“金钱”,那么可以通过查询“金钱”的“重量”属性,借助机器学习给出确定的返回结果。

小明投掷了金钱,“小明”的“金钱”属性就会减少。“金钱”在这里是名词而不是形容词,因为“投掷”方法的参数是“小型物体”而不是基本属性。“金钱”和其他属性,如“温度”,“形状”等不同,这些属性没有实体但“金钱”有实体。“金钱”和“小明”的关系类似于基本属性但不能当基本属性处理。“金钱”和“小明”的关系更像是面向对象方法中的聚合关系。它在新模型中被称为类属性。

4 面向对象的语言模型和旧语法模型的关联

旧模型中的名词相当于类名,动词相当于方法名,名词和形容词相当于动作的参数,形容词相当于属性,副词和数词相当于属性的具体数值,部分宾补相当于方法的返回值,如果“小明”做一个事,“小明”这个类就多一个方法,“小明”怎么样,“小明就多一个属性。

属性分为基本属性和类属性,基本属性是“温度”,“重量”,“数量”等无实体对象,类属性是“金钱”等有实体对象。在编程语言中,基本属性可以直接用基本数据类型来代替。

旧模型中很多名词在新模型中作为形容词或副词,如“优势”在新模型中属于副词,很多复合名词在新模型中可以看作被形容词修饰的名词,如“知识分子”可以看作这个人的知识属性特别高。很多形容词需要和其他形容词划分为同一属性。如“金钱”,“财富”在作为“人”的属性时需要当同一个属性处理。并且很多形容词自带副词修饰,这里简称为复合形容词。如“大”和“小”在描述物体时都属于“体积”属性,并且自带副词修饰(表1)。

表1 属性表

5 成分残缺语句的处理

一个句子之中经常会出现省略某些词语后,仍然可以得出正确意思并被人理解。比如“我有优势”,在旧语法中,“有”后面常跟名词,这里一般把“优势”当作名词看待,但是下一句话“我在资金上有优势”优势好像是修饰资金的,所以“优势”又是形容词了。其这里称这种现象为成分残缺。成分残缺并不会影响人们对句子的理解,但是如果想把句子转换为对象,那就必须把残缺的部分补出来。

存在一种如下的情况,某些语句在旧模型没有问题不存在错误,但是放在新模型则需要补全缺失成分才能转换为类模型。“小明在投掷”中就缺失了方法参数,补全缺失部分需要借助于机器学习,通过比较“投掷”后跟的对象,可以判断出被投掷物的公共父类,那么就可以使用被投掷物的公共父类来当作补全内容,如“小型物体”。如果追求更高精度预测,推荐通过补全更多的形容词来增加参数数量,如“身体强壮程度未知的小明在使用未知的力度以未知的角度投掷未知的物体”。

6 高度抽象语句的处理

在旧模型中是无法处理数学模型的。如1+1=2,旧模型不能判断主语谓语和宾语。但是新模型可以处理,这便是新模型的一大优势。

前边提到过成分残缺现象,而数学其实就是成分残缺的极致表现。数量为1的苹果添加数量为1的香蕉等于数量为1的苹果,这里1+1=1,当然这里的等于和数学中的等于有点不同。1是苹果的数量属性的具体值,数学为了便于分析,常常将多余的部分省略,但是只要补全缺失成分,抽象如数学的语句也能够转换为类模型。

7 方法的参数和返回值

方法是类与类之间最重要的关系,方法返回对象有时候是修改参数属性值,如“小明身体长高了”,“长高”方法返回对象仍是小明,但是修改了小明属性值。有时候方法返回全新对象,如“木炭,氧气,在高温下燃烧产生二氧化碳和热量”这里燃烧的参数是“木炭”,“氧气”,“高温”,返回值是全新对象而且毫无规律可言。在判断返回值时通常借助于神经网络模型,比较方法输入的参数判断具体返回值内容。这里建议让“燃烧”方法属于“木炭”的父类“可燃物”和“氧气”,“高温”属于“可燃物”或“氧气”的“温度”属性。

8 疑问句和面向对象语言模型

面向对象语言模型处理的是对象之间的逻辑关系,疑问句属于逻辑判断,但是疑问部分不描述类与类之间的关系,因此疑问句的疑问部分无法转换为面向对象模型。但面向对象语言模型可以轻松判断一般疑问句,在对比疑问句中的类模型和计算机已经存储的类模型后可以轻松回答yes或no。而对于部分特殊疑问句的处理类似于对象补全,也不会特别麻烦。在对于神经网络训练集中的自然人的问答中,一个人的疑问句后通常会得到另一个人的解答,这个解答有时候就是前一个人的疑问句中的动作的执行后的结果,如“氧气和二氧化碳燃烧后会产生什么物质?”“二氧化碳”。第二个人的回答在这时候可以当作“燃烧”方法在参数为“氧气”和“二氧化碳”时的返回值,但具体是否合适需要进一步分析。

9 祈使句和面向对象语言模型

祈使句无对象,无法转换为面向对象语言模型。

10 面向对象语言模型和主谓双宾结构

如“小红坐火车去北京”中“小红坐火车”,“小红去北京”,“火车去北京”按三句话处理,有三个动作所以有三个返回值,分别由机器学习给出。然后“小红坐火车”的返回值是“某物去北京”的参数,“火车去北京”的返回值是“小红坐某物”的参数,“小红去北京”的返回值是“某物坐火车”的参数。

11 宾补什么时候可以做返回值

“1个苹果加1个苹果等于2个苹果”,出现“等于”,“会”等词汇时宾补就可以当返回值了。因此,本文构建全新的自然语言处理模型可以更好处理语言中的上下文关系,对于语句的适应性也远高于旧的语法模型。但是自然语言处理技术仍存在不少难题,例如单词的歧义处理。处理有歧义的单词需要大量的经验,现如今仍然缺乏良好的模型来处理单词的歧义。自然语言处理技术可用于机器翻译、打击垃圾邮件、信息提取、文本情感分析、自动问答、个性化推荐等领域。

自然语言处理是计算机科学,人类语言学之间的相互作用的领域。用自然语言与计算机进行智能化的沟通交流,这是长期以来的研究所追求的目标。自然语言处理的最终目标是减少自然语言与机器语言之间的差距,让计算机能够像人类一样理解并处理自然语言。在未来的自然语言处理技术发展将会帮助人工智能处理更加复杂且困难的问题,最终将会带来一个更加智能化的时代。

[1]冯志伟.计算机语言的历史回顾与现状分析[J].上海外国语大学学报, 2011(01).

[2]李生.自然语言处理的研究与发展[J].燕山大学学报, 2013(9).

猜你喜欢
面向对象形容词小明
GEE平台下利用物候特征进行面向对象的水稻种植分布提取
认识形容词
小明照相
面向对象方法在水蓄冷PLC编程中应用分析
面向对象的组合软件工程研究
小明系列漫画小明篇
做不到
从面向过程到面向对象思维方式的教学引导
形容词