自然语言处理-NLP

目录

自然语言处理-NLP

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

自然语言处理的发展历程

兴起时期

符号主义时期

连接主义时期

深度学习时期

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

语言学角度

同义词问题

情感倾向问题

歧义性问题

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

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

计算角度

自然语言处理的常见任务

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

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


自然语言处理-NLP

自然语言处理(Natural Language Processing,简称NLP)被誉为人工智能皇冠上的明珠,是计算机科学和人工智能领域的一个重要方向。

它主要研究人与计算机之间,使用自然语言进行有效通信的各种理论和方法

简单来说,计算机以用户的自然语言数据作为输入,在其内部通过定义的算法进行加工、计算等系列操作后(用以模拟人类对自然语言的理解),再返回用户所期望的结果,如 图1 所示。
 


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


 

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

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


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


 

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


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

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

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


图3:凯撒密码


 

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


自然语言处理的发展历程

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


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

兴起时期

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


图5:恩尼格玛密码机

图灵测试(The Turing test)

由艾伦·麦席森·图灵提出,指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。
进行多次测试后,如果机器让平均每个参与者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能。图灵测试一词来源于计算机科学和密码学的先驱艾伦·麦席森·图灵写于1950年的一篇论文《计算机器与智能》,其中30%是图灵对2000年时的机器思考能力的一个预测,我们已远远落后于这个预测

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

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

1956年,乔姆斯基(Chomsky)提出了“生成式文法”这一大胆猜想,他假设在客观世界存在一套完备的自然语言生成规律,每一句话都遵守这套规律而生成。总结出这个客观规律,人们就掌握了自然语言的奥秘。

从此,自然语言的研究就被分为了

以语言学为基础的符号主义学派,

以概率统计为基础的连接主义学派。

符号主义时期

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


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


 

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

连接主义时期

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

起初研究人员尝试使用浅层神经网络,结合少量标注数据的方式训练模型,虽然取得了一定的效果,但是仍然无法让大部分人满意。

后来研究者开始使用人工提取自然语言特征的方式,结合简单的统计机器学习算法解决自然语言问题。其实现方式是基于研究者在不同领域总结的经验,将自然语言抽象成一组特征,使用这组特征结合少量标注样本,训练各种统计机器学习模型(如支持向量机、决策树、随机森林、概率图模型等),完成不同的自然语言任务。

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

深度学习时期

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

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

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

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

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

语言学角度

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

同义词问题

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

瓜兮兮 和 铁憨憨

嘎嘎 和 肉(you)

磕搀 和 难看

吭呲瘪肚 和 速度慢

情感倾向问题

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

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

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

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

问:女生会不会生气?

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

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

乙:到底没没没?

甲:我也不道没没没。

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

问:到底别不别?

歧义性问题

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

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

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

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

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

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

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


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



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

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

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

计算角度

自然语言技术的发展除了受语言学的制约外,在计算角度也天然存在局限。顾名思义,计算机是计算的机器,现有的计算机都以浮点数为输入和输出,擅长执行加减乘除类计算

自然语言本身并不是浮点数,计算机为了能存储和显示自然语言,需要把自然语言中的字符转换为一个固定长度(或者变长)的二进制编码,如 图8 所示。


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


 

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

此外,目前也有研究人员正在关注自然语言处理方法中的社会问题:

包括自然语言处理模型中的偏见和歧视、大规模计算对环境和气候带来的影响、传统工作被取代后,人的失业和再就业问题等。

自然语言处理的常见任务

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


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


 

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

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

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

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

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


图10:

探索自然语言处理

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

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

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


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

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

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

相关文章

电脑莫名其妙重启 为设备 ROOT\DISPLAY\0000 加载驱动程序 \Driver\WUDFRd 失败

卸载向日葵即可解决!!!!!下面是报错日志,估计是远程连接导致的问题

JVM工具-1. jps 虚拟机进程状态工具

文章目录 1. jps介绍2. jps命令格式3. jps工具主要选项4. jps -q5. jps -m6. jps -l7. jps -v 1. jps介绍 jps(JVM Process Status Tool):虚拟机进程状态工具,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class&…

ARM寄存器组

CM3 拥有通用寄存器 R0‐R15 以及一些特殊功能寄存器。 R0-R7,通用目的寄存器 R0-R7也被称为低组寄存器,所有指令可以访问它们,它们的字长为32位,复位后的初始值是不可预料的。 R8-R12,通用目的寄存器 R8-R12也被称…

汽车以太网协议栈

《大师说》栏目上线啦# 《大师说》栏目是怿星科技2023年推出的深度思考栏目,通过邀请内部专家,针对智能汽车行业发展、技术趋势等输出个性化的观点。每期一位大师,每位一个话题,本期由我们怿星的CTO虞胜伟,进行分享。…

Elasticsearch 优化

Elasticsearch 优化 2.1硬件选择 Elasticsearch 的基础是 Lucene ,所有的索引和文档数据是存储在本地的磁盘中,具体的 路径可在 ES 的配置文件 ../config/elasticsearch.yml 中配置,如下: #----------------------------…

C#,《小白学程序》第十二课:日历的编制,时间DateTime的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十二课&#xff1a;日历的编制&#xff0c;时间DateTime的计算方法与代码 /// 本课学习时间类型的数据 DateTime 的简单方法&#xff0c;并编制一个月的日历。 /// </summary> /// <param name"sender"…

idea 链接mysql连不上

打开文件 C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.1\jbr\conf\security\java.security修改内容 搜索&#xff1a;jdk.tls.disabledAlgorithms 修改 链接地址 在链接后面添加 ?useSSLfalse jdbc:mysql://127.0.0.1:3306/db_admin3?useSSLfalse

stable diffusion实践操作-提示词

本文专门开一节写提示词相关的内容&#xff0c;在看之前&#xff0c;可以同步关注&#xff1a; stable diffusion实践操作 提示词网站&#xff1a; https://promptheroes.cn/https://prompthero.com/https://www.prompthunt.com/promptthunt无界AI 正文 1、提示词的原理 提…

计算机视觉-卷积神经网络

目录 计算机视觉的发展历程 卷积神经网络 卷积&#xff08;Convolution&#xff09; 卷积计算 感受野&#xff08;Receptive Field&#xff09; 步幅&#xff08;stride&#xff09; 感受野&#xff08;Receptive Field&#xff09; 多输入通道、多输出通道和批量操作 …

苹果使用3D打印技术制造Apple Watch Series 9手表外壳

据彭博社的马克・古尔曼报道&#xff0c;苹果公司正在使用 3D 打印技术来制造即将推出的部分Apple Watch Series 9 的外壳。这种制造工艺可以节省传统数控加工所需的大量金属材料&#xff0c;同时缩短生产时间。这与之前苹果分析师郭明錤的说法相吻合。 苹果公司自2021年推出Ai…

个性化定制界面还是极简版原装界面?我的选择是……

个性化定制界面和极简版原装界面&#xff0c;哪一个你用起来更加顺手呢&#xff0c;相比之下你更喜欢哪一个&#xff1f;来聊一聊原因吧&#xff01; 一、我的观点和选择 个性化定制界面和极简版原装界面&#xff0c;二者各有优缺点。 &#xff08;一&#xff09;极简版原装…

如何判断自己的qt版本呢?

如何判断自己的qt版本呢? 前情提要很简单,按照如下图所示,即可查看当前打开的qtCreator的版本如何打开5.15.2版本的qtCreator呢?安装教程 前情提要 我的电脑已经安装了qt5.14.1,然后我又安装了qt5.15.2,我想尝试一下同一台电脑能否适应两个版本的qt? 当我安装完成qt5.15.2后…

Idea安装免注册版ChatGPT

文章目录 一、前期准备二、开始使用 一、前期准备 1.准备Idea开发软件并打开&#xff08;VS Code同理&#xff09;! 2.【CtrlAltS】快捷键调出Settings窗口&#xff0c;如图 3.找到NexChatGPT 此插件不需要注册&#xff0c;可以直接使用&#xff08;高级一些的需要会员收费限…

Kubernetes(k8s)当中安装并使用ingress暴露应用

Kubernetes当中安装并使用ingress暴露应用 为什么需要Ingress前期准备集群准备LoadBalancer准备 安装Ingress-Nginx下载地址v1.3.1v1.8.1 修改文件v1.3.1v1.8.1修改ingress服务类型配置 执行安装 部署应用通过ingress-nginx暴露应用部署ingress的yaml文件v1.3.1v1.8.1 为什么需…

Linux(CentOS7)下如何配置多个Tomcat容器?

一、在 liunx 系统安装 jdk 1、安装jdk&#xff08;yum install 安装&#xff09; 查看是否系统是否自带jdk并卸载 rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 其中&#xff0c;GCJ是GNU的Java编译器,可以把java程序编译成本地代码&#xff0c;编译成功后的可…

浅谈多人游戏原理和简单实现。

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;websocket、网络、原理、多人游戏☀️每日 一言&#xff1a;这世上有两种东西无法直视&#xff0c;一是太阳&#xff0c;二是人心&#xff01; 一、我的游戏史 我最开始接触游戏要从一盘300游戏…

nginx反向代理 负载均衡

目录 1.反向代理介绍&#xff1a; 2.七层代理和四层代理&#xff1a; 2.1 七层代理&#xff1a; 2.2 四层代理&#xff1a; 3.反向代理web服务器&#xff1a; 3.1 代理服务器配置&#xff1a; 3.2 服务器配置 &#xff1a; 3.3 客户端访问&#xff1a; 3.4 代理不同端口&am…

VMware虚拟机的安装以及安装CentOS系统

VMware虚拟机是一款非常受欢迎的虚拟化软件&#xff0c;它可以模拟一台计算机运行在另一台计算机上&#xff0c;从而实现在一台物理机器上运行多个虚拟机的目的。在本文中&#xff0c;我们将会介绍如何安装VMware虚拟机并在其中安装CentOS操作系统。 文章目录 &#x1f4c0;VMw…

微机原理 || 8253接口芯片知识点+4道经典例题+手写解题过程

&#xff08;二&#xff09;经典考题&#xff1a; 【例1】: 设8253端口地址为300H&#xff5e;303H&#xff0c;要求计数器2工作在方式5&#xff0c;二进制计数&#xff0c;CLK22MHz&#xff0c;OUT21KHz。试按上述要求完成8253的初始化。 【例2】&#xff1a;选择计数器0工…

说说FLINK细粒度滑动窗口如何处理

分析&回答 Flink的窗口机制是其底层核心之一&#xff0c;也是高效流处理的关键。Flink窗口分配的基类是WindowAssigner抽象类&#xff0c;下面的类图示出了Flink能够提供的所有窗口类型。 Flink窗口分为滚动&#xff08;tumbling&#xff09;、滑动&#xff08;sliding&am…