5.1 自然语言处理综述

news2025/1/12 15:51:18

文章目录

      • 致命密码:一场关于语言的较量
  • 一、自然语言处理的发展历程
    • 1.1 兴起时期
    • 1.2 符号主义时期
    • 1.3 连接主义时期
    • 1.4 深度学习时期
  • 二、自然语言处理技术面临的挑战
    • 2.1 语言学角度
      • 2.1.1 同义词问题
      • 2.1.2 情感倾向问题
      • 2.1.3 歧义性问题
      • 2.1.4 对话/篇章等长文本处理问题
      • 2.1.5 探索自然语言理解的本质问题
    • 2.2 计算角度
  • 三、自然语言处理的常见任务
  • 四、使用深度学习解决自然语言处理任务的套路
  • 五、使用飞桨探索自然语言处理
    • 思考一下
    • 引用

**自然语言处理(Natural Language Processing,简称NLP)被誉为人工智能皇冠上的明珠,是计算机科学和人工智能领域的一个重要方向。**它主要研究人与计算机之间,使用自然语言进行有效通信的各种理论和方法。简单来说,计算机以用户的自然语言数据作为输入,在其内部通过定义的算法进行加工、计算等系列操作后(用以模拟人类对自然语言的理解),再返回用户所期望的结果,如 图1 所示。


图1:自然语言处理示意图

自然语言处理是一门融合语言学、计算机科学和数学于一体的科学。它不仅限于研究语言学,还是研究能高效实现自然语言理解和自然语言生成的计算机系统,特别是其中的软件系统,因此它是计算机科学的一部分。

随着计算机和互联网技术的发展,自然语言处理技术在各领域广泛应用,如 图2 所示。在过去的几个世纪,工业革命用机械解放了人类的双手,在当今的人工智能革命中,计算机将代替人工,处理大规模的自然语言信息。我们平时常用的搜索引擎,新闻推荐,智能音箱等产品,都是以自然语言处理技术为核心的互联网和人工智能产品。


图2:自然语言处理技术在各领域的应用

此外,自然语言处理技术的研究也在日新月异变化,每年投向ACL(Annual Meeting of the Association for Computational Linguistics,计算语言学年会,自然语言处理领域的顶级会议)的论文数成倍增长,自然语言处理的应用效果被不断刷新,有趣的任务和算法更是层出不穷。

本节为您简要介绍自然语言处理的发展历程、主要挑战,以及如何使用飞桨快速完成各项常见的自然语言处理任务。

致命密码:一场关于语言的较量

事实上,人们并非只在近代才开始研究和处理自然语言,在漫长的历史长河中,是否妥当处理自然语言,成为战争的胜利或是政权的更迭的关键因素。

16世纪的英国大陆,英格兰和苏格兰刚刚完成统一,统治者为英格兰女王伊丽莎白一世,苏格兰女王玛丽因被视为威胁而遭到囚禁。玛丽女王和其他苏格兰贵族谋反,这些贵族们通过信件与玛丽女王联络,商量营救方案并推翻伊丽莎白女王的统治。为了能更安全地与同伙沟通,玛丽使用了一种传统的文字加密形式 - 凯撒密码对她们之间的信件进行加密,如 图3 所示。


图3:凯撒密码

这种密码通过把原文中的字母替换成另外一个字符的形式,达到加密手段。然而他们的阴谋活动早在英格兰贵族监控之下,英格兰国务大臣弗朗西斯·沃尔辛厄姆爵士通过统计英文字母的出现频率和玛丽女王密函中的字母频率,找到了破解密码的规律。最终,玛丽和其他贵族在举兵谋反前夕被捕。这是近代西方第一次破译密码,开启了近现代密码学的先河。

一、自然语言处理的发展历程

自然语言处理有着悠久的发展史,可粗略地分为兴起、符号主义、连接主义和深度学习四个阶段,如 图4 所示:


图4:自然语言处理的发展历程

1.1 兴起时期

大多数人认为,自然语言处理的研究兴起于1950年前后。在二战中,破解纳粹德国的恩尼格玛密码成为盟军对抗纳粹的重要战场。经过二战的洗礼,曾经参与过密码破译的香农和图灵等科学家开始思考自然语言处理和计算之间的关系。


图5:恩尼格玛密码机

1948年香农把马尔可夫过程模型(Markov Progress)应用于建模自然语言,并提出把热力学中“熵”(Entropy)的概念扩展到自然语言建模领域。香农相信,自然语言跟其它物理世界的信号一样,是具有统计学规律的,通过统计分析可以帮助我们更好地理解自然语言。

1950年,艾伦图灵提出著名的图灵测试,标志着人工智能领域的开端。二战后,受到美苏冷战的影响,美国政府开始重视机器自动翻译的研究工作,以便于随时监视苏联最新的科技进展。1954年美国乔治城大学在一项实验中,成功将约60句俄文自动翻译成英文,被视为机器翻译可行的开端。自此开始的十年间,政府与企业相继投入大量的资金,用于机器翻译的研究。

1956年,乔姆斯基(Chomsky)提出了“生成式文法”这一大胆猜想,他假设在客观世界存在一套完备的自然语言生成规律,每一句话都遵守这套规律而生成。总结出这个客观规律,人们就掌握了自然语言的奥秘。从此,自然语言的研究就被分为了以语言学为基础的符号主义学派,以及以概率统计为基础的连接主义学派。

1.2 符号主义时期

在自然语言处理发展的初期阶段,大量的自然语言研究工作都聚焦从语言学角度,分析自然语言的词法、句法等结构信息,并通过总结这些结构之间的规则,达到处理和使用自然语言的目的。这一时期的代表人物就是乔姆斯基和他提出的“生成式文法”。1966年,完全基于规则的对话机器人ELIZA在MIT人工智能实验室诞生了,如 图6 所示。


图6:基于规则的聊天机器人ELIZA

然而同年,ALPAC(Automatic Language Processing Advisory Committee,自动语言处理顾问委员会)提出的一项报告中提出,十年来的机器翻译研究进度缓慢、未达预期。该项报告发布后,机器翻译和自然语言的研究资金大为减缩,自然语言处理和人工智能的研究进入寒冰期。

1.3 连接主义时期

1980年,由于计算机技术的发展和算力的提升,个人计算机可以处理更加复杂的计算任务,自然语言处理研究得以复苏,研究人员开始使用统计机器学习方法处理自然语言任务。

起初研究人员尝试使用浅层神经网络,结合少量标注数据的方式训练模型,虽然取得了一定的效果,但是仍然无法让大部分人满意。后来研究者开始使用人工提取自然语言特征的方式,结合简单的统计机器学习算法解决自然语言问题。其实现方式是基于研究者在不同领域总结的经验,将自然语言抽象成一组特征,使用这组特征结合少量标注样本,训练各种统计机器学习模型(如支持向量机、决策树、随机森林、概率图模型等),完成不同的自然语言任务。

由于这种方式基于大量领域专家经验积累(如解决一个情感分析任务,那么一个很重要的特征 — 是否命中情感词表),以及传统机器学习简单、鲁棒性强的特点,这个时期神经网络技术被大部分人所遗忘。

1.4 深度学习时期

从2006年深度神经网络反向传播算法的提出开始,伴随着互联网的爆炸式发展和计算机(特别是GPU)算力的进一步提高,人们不再依赖语言学知识和有限的标注数据,自然语言处理领域迈入了深度学习时代。

基于互联网海量数据,并结合深度神经网络的强大拟合能力,人们可以非常轻松地应对各种自然语言处理问题。越来越多的自然语言处理技术趋于成熟并显现出巨大的商业价值,自然语言处理和人工智能领域的发展进入了鼎盛时期。

自然语言处理的发展经历了多个历史阶段的演进,不同学派之间相互补充促进,共同推动了自然语言处理技术的快速发展。

二、自然语言处理技术面临的挑战

如何让机器像人一样,能够准确理解和使用自然语言?这是当前自然语言处理领域面临的最大挑战。为了解决这一问题,我们需要从语言学和计算两个角度思考。

2.1 语言学角度

自然语言数量多、形态各异,理解自然语言对人来说本身也是一件复杂的事情,如同义词、情感倾向、歧义性、长文本处理、语言惯性表达等。通过如下几个例子,我们一同感受一下。

2.1.1 同义词问题

请问下列词语是否为同义词?(题目来源:四川话和东北话6级模拟考试)

瓜兮兮 和 铁憨憨

嘎嘎 和 肉(you)

磕搀 和 难看

吭呲瘪肚 和 速度慢

2.1.2 情感倾向问题

请问如何正确理解下面两个场景?

场景一:女朋友生气了,男朋友电话道歉。

女生:就算你买包我也不会原谅你!

男生:宝贝,放心,我不买,你别生气了。

问:女生会不会生气?

场景二:甲和乙是同宿舍的室友,他们之间的对话。

甲:钥匙好像没了,你把锁别别。

乙:到底没没没?

甲:我也不道没没没。

乙:要没没你让我别,别别了,别秃鲁了咋整?

问:到底别不别?

2.1.3 歧义性问题

请问如何理解下面三句话?

一行行行行行,一行不行行行不行。

来到杨过曾经生活过的地方,小龙女说:“我也想过过过儿过过的生活”。

来到儿子等校车的地方,邓超对孙俪说:“我也想等等等等等过的那辆车”。

相信大多数人都需要花点脑筋去理解上面的句子,在不同的上下文中,相同的单词可以具有不同的含义,这种问题我们称之为歧义性问题。

2.1.4 对话/篇章等长文本处理问题

在处理长文本(如一篇新闻报道,一段多人对话,甚至于一篇长篇小说)时,需要经常处理各种省略、指代、话题转折和切换等语言学现象,给机器理解自然语言带来了挑战,如 图7 所示。


图7:多轮对话中的指代和省略

2.1.5 探索自然语言理解的本质问题

研表究明,汉字的顺序并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。

上面这句话从语法角度来说完全是错的,但是对大部分人来说完全不影响理解,甚至很多人都不会意识到这句话的语法是错的。

2.2 计算角度

**自然语言技术的发展除了受语言学的制约外,在计算角度也天然存在局限。**顾名思义,计算机是计算的机器,现有的计算机都以浮点数为输入和输出,擅长执行加减乘除类计算。自然语言本身并不是浮点数,计算机为了能存储和显示自然语言,需要把自然语言中的字符转换为一个固定长度(或者变长)的二进制编码,如 图8 所示。


图8:计算机计算自然语言流程

由于这个编码本身不是数字,对这个编码的计算往往不具备数学和物理含义。例如:把“法国”和“首都”放在一起,大多数人首先联想到的内容是“巴黎”。但是如果我们使用“法国”和“首都”的UTF-8编码去做加减乘除等运算,是无法轻易获取到“巴黎”的UTF-8编码,甚至无法获得一个有效的UTF-8编码。因此,如何让计算机可以有效地计算自然语言,是计算机科学家和工程师面临的巨大挑战。

此外,目前也有研究人员正在关注自然语言处理方法中的社会问题:包括自然语言处理模型中的偏见和歧视、大规模计算对环境和气候带来的影响、传统工作被取代后,人的失业和再就业问题等。

三、自然语言处理的常见任务

自然语言处理是是非常复杂的领域,是人工智能中最为困难的问题之一,常见的任务如 图9 所示:

<center>
图9:自然语言处理常见任务

  • 词和短语级任务:包括切词、词性标注、命名实体识别(如“苹果很好吃”和“苹果很伟大”中的“苹果”,哪个是苹果公司?)、同义词计算(如“好吃”的同义词是什么?)等以词为研究对象的任务。
  • 句子和段落级任务:包括文本倾向性分析(如客户说:“你们公司的产品真好用!”是在夸赞还是在讽刺?)、文本相似度计算(如“我坐高铁去广州”和“我坐火车去广州”是一个意思吗?)等以句子为研究对象的任务。
  • 对话和篇章级任务:包括机器阅读理解(如使用医药说明书回答患者的咨询问题)、对话系统(如打造一个24小时在线的AI话务员)等复杂的自然语言处理系统等。
  • 自然语言生成:如机器翻译(如“我爱飞桨”的英文是什么?)、机器写作(以AI为题目写一首诗)等自然语言生成任务。

四、使用深度学习解决自然语言处理任务的套路

使用深度学习解决自然语言处理任务一般需要经历如下几个步骤:

(前提)学习基本知识。 在学习相关的知识后才能对任务有一定的了解,例如了解模型的网络结构、数据集的构成等,为后续解决任务打好基础。

  1. 处理数据。 确认网络能够接收的数据形式,然后对数据进行处理。
  2. 实现网络。 搭建网络的过程。
  3. 模型训练。 训练模型调整参数的过程。
  4. 评估&上线。 对训练出的模型效果进行评估,确认模型性能。

图10:使用飞桨框架构建神经网络过程

五、使用飞桨探索自然语言处理

接下来,让我们一起探索几个经典的自然语言处理任务,包括:

  • 计算词语之间的关系(如同义词):word Embedding
  • 理解一个自然语言句子:文本分类和相似度计算

一般来说,使用飞桨完成自然语言处理任务时,都可以遵守一个相似的套路,如 图10 所示。


图11:使用飞桨框架构建神经网络过程

思考一下

[1] 你生活中有哪些地方使用了自然语言处理?

[2] 你希望如何应用自然语言处理?

引用

[1] 百度百科:玛丽女王的密码

[2] ACL2019:The Bright Future of ACL/NLP

[3] 百度百科:自然语言处理

[4] 维基百科:自然语言处理

[5] 百度百科:机器翻译

[6] 百度百科:克劳德·艾尔伍德·香农

[7] 维基百科:恩尼格玛密码机

[8] 维基百科:艾伦图灵

[9] 维基百科:图灵测试

[10] 维基百科:ELIZA

[11] 维基百科:反向传播算法

[12] 玛丽女王的密码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/94470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

猿如意中【ndm】助你轻松管理你的 NPM包

目录 一、ndm 简介 1.1、下载 ndm-1.exe 版本&#xff08;v1.2.0&#xff09; 1.2、安装 1.3、版本迭代更新记录 1.3.1、ndm v0.1.4 已发布https://github.com/720kb/ndm/releases/tag/v0.1.4 1.3.2、ndm v1.0.0 发布&#xff0c;现已完全跨平台Windows、Mac、Linux 1.3.3、…

cad 怎么取消绘图界限?cad怎么调整图形界限

1、在CAD中&#xff0c;如何设置图形界限&#xff1f; 1、电脑打开CAD&#xff0c;输入limits命令&#xff0c;空格键确定。 2、确定命令后&#xff0c;选择格式中的图形界限。 3、点击图形界限后&#xff0c;会出现重新设置模型空间界限&#xff0c;接着再点击键盘上的回车键…

gcexcel:GrapeCity Documents for Excel v6/NET/Crack

高速 .NET 6 Excel 电子表格 API 库 使用此快速电子表格 API&#xff0c;以编程方式在 .Net 6、.Net 5、.NET Core、.NET Framework 和 Xamarin 跨平台应用程序中创建、编辑、导入和导出 Excel 电子表格。 创建、加载、编辑和保存 Excel .xlsx 电子表格 保存为 .XLSX、PDF、HTM…

C#基于ASP.NET的人事薪资管理系统

ASP.NET20003人事薪资管理系统,SQL数据库&#xff1a;VS2010开发环境,包含员工管理,部门管理,工资管理,绩效管理等功能,并且包含五险一金的计算 3.3 功能需求 3.3.1 员工部分 1&#xff1a;查看工资&#xff1a;以列表的形式查看系统现存的员工工资信息。 2&#xff1a;查看个…

SpringBoot自定义banner—卡塔尔世界杯吉祥物

自定义banner文件 SpringBoot项目在启动的时候&#xff0c;会有一个大大的Spring首先展示出来 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) ) |____| .__|…

好书推荐:《Python编程:从入门到实践(第2版)》——写给Python入门者的最好教程

缘起 这段时间把图灵社区的《Python编程&#xff1a;从入门到实践&#xff08;第2版&#xff09;》看完了&#xff0c;在此做一个记录&#xff0c;先谈一下自己最直观的感受&#xff0c;这本书的定位是入门&#xff0c;在我看来&#xff0c;这个目的确实是达到了的&#xff0c…

98.(leaflet之家)leaflet态势标绘-分队战斗行动采集

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

Cantor表——洛谷(Java)

题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的&#xff1a; 1/11/1 , 1/21/2 , 1/31/3 , 1/41/4, 1/51/5, … 2/12/1, 2/22/2 , 2/32/3, 2/42/4, … 3/13/1 , 3/23/2, 3/33/3, … 4/14/1, 4/24/2, … 5/1…

04. XSS漏洞原理

04. XSS漏洞原理 XSS漏洞原理&#xff08;上&#xff09; 弹窗是怎么实现的&#xff1f; 案例 攻击利用 什么是XSS&#xff1f; XSS&#xff08;Cross Site Scripting&#xff09;&#xff1a;跨站脚本攻击&#xff0c;为了不和层叠样式表&#xff08;Cascading Style Shee…

tensorflow 歌曲题材分类

librosa音频处理 Librosa是一个用于音频、音乐分析、处理的python工具包&#xff0c;一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有&#xff0c;功能十分强大. 加载音频 import librosa x , sr librosa.load(music.au) #歌曲的时长 d librosa.get_duration(…

【Matlab】论文各种图例配色Matlab绘制

1. Matlab 绘图 1.1. Plot 函数 x-pi:pi/10:pi; %以pi/10为步长 ytan(sin(x))-sin(tan(x)); %求出各点上的函数值 plot(x,y,--rs,... %绘制红色的虚线&#xff0c;且每个转折点上用正方形表示。LineWidth,2,... % 设置线宽为2Marke…

Web(十)JavaScript知识训练-JS分支与循环

1、执行下面语句后c的值是&#xff08;D &#xff09;。 var a2,b1,c3; if(a<b){ c0; } else{ c&#xff1b; } A、 1 B、 2 C、 3 D、 4 2、var afalse; var x a?"A":"B"; 在上面的程序片段中&#xff0c;x的值是&#xff08;B &#xff09; A、 A …

XXL-Job分布式任务调度框架-- 介绍和服务搭建

一 xxl-job介绍 1.1 xxl-job介绍 xxl-job是轻量级的分布式任务调度框架&#xff0c;目标是开发迅速、简单、清理、易扩展; 老版本是依赖quartz的定时任务触发&#xff0c;在v2.1.0版本开始 移除quartz依 。 分布式任务调度平台XXL-JOB/ 二 xxl-job的服务搭建 2.1 软件包获…

【数据结构-JAVA】ArrayList

目录 1. 线性表 2. 顺序表(ArrayList) 2.1 什么是顺序表&#xff1f; 2.2 顺序表的使用 2.2.1 ArrayList 的构造方法 2.2.2 ArrayList 的常规操作 2.2.3 ArrayList 的遍历 2.3 顺序表的优缺点 3. 练习题 3.1 练习1 一道面试题 3.2 练习2 杨辉三角形 3.3 练习3 洗牌算法 3.4 …

第十四届蓝桥杯集训——switch——配套用法示例

第十四届蓝桥杯集训——switch——配套用法示例 示例题目&#xff1a; 计算某年某月某日有多少天&#xff1f; 输入三个变量&#xff0c;变量year代表年份&#xff0c;变量month代表月份&#xff0c;变量day代表当月的天数。 取值范围&#xff1a;1853>year<2050;0>…

高比例风电电力系统储能运行及配置分析(Matlab实现)

目录 0 概述 1 案例及分析及分析 2 Matlab实现 3 结论 运行结果 目录 0 概述 1 案例及分析及分析 2 Matlab实现 3 结论 0 概述 高比例风电电力系统储能运行及配置分析 1 案例及分析及分析 针对附件2所示的十五天负荷功率&#xff08;最大值1200MW&#xff09;、风电功…

基于java+springmvc+mybatis+vue+mysql的数据学院教务管理系统

项目介绍 管理员后台管理页面&#xff1a; 功能&#xff1a;首页、个人中心、学生管理、教师管理、专业管理、班级管理、课程信息管理、选课信息管理、课程成绩管理、学生申请管理、学生咨询管理、咨询回复管理、课程作业管理 学生后台管理页面功能&#xff1a;首页、注册、登…

RocketMQ的TAG过滤和SQL过滤机制

写作目的 项目中各个中台都使用同一个DB。而DB下会使用中间件监听binlog转换成MQ消息&#xff0c;而下游的各个中台去MQ去拿自己感兴趣的消息。 TAG 如果使用TAG去获取自己感兴趣的消息&#xff0c;那么对于一条学生表变更binlog&#xff0c;最少要插入三条消息&#xff0c;比…

微服务框架 SpringCloud微服务架构 多级缓存 47 Lua 语法入门 47.1 初识Lua

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存47 Lua 语法入门47.1 初识Lua47.1.1 初识Lua47.1.2 HelloWorld47 Lua 语法入门 47.1 初识Lua 47.1.1…

《纳瓦尔宝典》笔记三——做自己真正感兴趣的事情

你合上书本&#xff0c;留在你脑子里的才真正是你的智慧 目录 一、开始让你兴致盎然&#xff0c;后来又让你觉得索然无味了吗 二、在“成为自己”这件事“上&#xff0c;没有人比你做得好 三、专长无法被教授&#xff0c;但可以被学习 四、上学能带来什么 五、尽量做不需…