畅谈自然语言处理——初识NLP

文章目录

  • 畅谈自然语言处理——初识NLP
    • 一、引言
    • 二、NLP技术的定义分类
    • 三、三个发展阶段
      • 1、基于规则的算法
      • 2、基于统计的NLP算法
      • 3、基于深度学习的NLP算法
    • 结语

一、引言

最近,一个名为ChatGPT的模型将计算机领域震撼,它以对话的方式进行交互,对话形式使 ChatGPT 能够回答后续问题、承认错误、挑战不正确的前提并拒绝不适当的请求。使人们感受到了人工智能越来越接近人类智能。

作为目前人工智能领域最前沿的研究成果之一,

ChatGPT的实现与自然语言处理—NLP技术息息相关。

二、NLP技术的定义分类

自然语言处理(Natural Language Processing)简称NLP,是人工智能的一个重要领域,NLP技术通过让计算机模拟人类语言的交际过程,使计算机理解和运用人类社会的各种语言,实现人机间的自然语言交流,从而代替人的部分脑力劳动,包括:查阅资料、解答问题、翻译等

我们使用自然语言时,需要经过哪些步骤呢?

很明显是先听,再理解,之后思考,最后说这四个步骤。计算机进行自然语言处理时也遵循这四个步骤。

按着四个步骤分为四种技术,分别为语音识别、自然语言理解、自然语言生成和语言合成。

其中自然语言理解和自然语言生成是NLP技术中最核心、最热门也是最复杂和最有趣的技术研究方向。

三、三个发展阶段

说完了NLP技术的定义与分类

接下来我们聊一聊NLP算法的三个发展阶段

在NLP发展初期,计算机的运算速度很慢,科学家们只能通过总结规律来判断自然语言的意图,用预先准备好的知识来实现自然自然语言理解。因此出现了专家系统等基于规则的NLP算法

1、基于规则的算法

在NLP发展初期,计算机的运算速度很慢,科学家们只能通过总结规律来判断自然语言的意图,用预先准备好的知识来实现自然自然语言理解。

最初的智能语音遥控系统结构长这样

当用户对智能助手说出:好热啊,能帮我打开空调吗?

那么满足了起始词、命令和结束词后就会执行相应的程序来帮用户打开空调啦。

但如果句子很长的话,构建的语法树就会很大,很复杂。且用规则处理法在多义性很难处理,因为多义词严重依赖上下文语境。但科学家们很快就解决了这个难题,在1970年以后统计语言学家的出现使得NLP重获新生

2、基于统计的NLP算法

基于统计的NLP算法是一种以基于语料库的统计分析为基础的经验主义方法。曾广泛应用于翻译、语音识别、智能客服、专家系统中。

基于统计的NLP最初是为了解决语言识别问题,常见的语言识别流程很简单,从声音到句子,一般有五个步骤

1、把音波数据分成帧

2、把帧识别成状态

3、把状态组合成音素

4、把音素转换成字

5、把字组合成句子

有了音素如何拼出合理的句子呢?如“WO3ZAI4SHANG4HAI3”是表示“我在上海”呢?还是“我载尚海”呢?

判断一个句子是否合理,就要通过一系列算法,例如

马尔科夫算法来判断这个句子在人类正常语言中出现的概率

设S为句子,句子是由汉字组成的,所以我们用
w 1 , w 2 , … , w n w_1,w_2,\dots,w_n w1​,w2​,…,wn​
表示有序的汉字列表。“我在上海”就可以表示为
w 1 = 我 , w 2 = 在 , w 3 = 上 , w 4 = 海 w_1=我,w_2=在,w_3=上,w_4=海 w1​=我,w2​=在,w3​=上,w4​=海
我们用P()表示概率,设“我在上海”为S,那么P(S)就是这句话在人类对话中可能出现的概率。

随后把P(S)中的每个字按照概率论公式进行展开,

(读作:“在S的条件下w1的概率”乘以“在w1的条件下w2的概率”…)
P ( S ) = P ( w 1 ∣ < S > ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3 ∣ w 1 , w 2 ) ⋅ ⋅ ⋅ ⋅ P ( w n ∣ w 1 , w 2 , … , w n − 1 ) P(S) = P(w_1|<S>)·P(w_2|w_1)·P(w_3|w_1,w_2)····P(w_n|w_1,w_2,\dots,w_{n-1}) P(S)=P(w1​∣<S>)⋅P(w2​∣w1​)⋅P(w3​∣w1​,w2​)⋅⋅⋅⋅P(wn​∣w1​,w2​,…,wn−1​)
S这个句子出现的概率等于每一个字出现的条件概率的乘积。

以“我在上海”为例,我们可以列出下面的公式:
P ( S ) = P ( w 1 ∣ < S > ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3 ∣ w 1 , w 2 ) ⋅ P ( w 4 ∣ w 1 , w 2 , w 3 ) P(S) = P(w_1|<S>)·P(w_2|w_1)·P(w_3|w_1,w_2)·P(w_4|w_1,w_2,w_3) P(S)=P(w1​∣<S>)⋅P(w2​∣w1​)⋅P(w3​∣w1​,w2​)⋅P(w4​∣w1​,w2​,w3​)

其中P(w1|<S>)是第一个字“我”出现在句首的概率。

P(w2|w1)是已知第一个字是“我”的前提下,第二个字“在”出现的概率

同理P(w3|w1,w2)是已知第一个字是“我”,且第二个字是“在”的前提下,第三个字“上”出现的概率。

为了解决计算概率时指数爆炸的难题,马尔科夫算法将

上述式子简化为二元模型
P ( S ) = P ( w 1 ∣ < S > ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3 ∣ w 2 ) ⋅ P ( w 4 ∣ w 3 ) P(S) = P(w_1|<S>)·P(w_2|w_1)·P(w_3|w_2)·P(w_4|w_3) P(S)=P(w1​∣<S>)⋅P(w2​∣w1​)⋅P(w3​∣w2​)⋅P(w4​∣w3​)
化成——》
P ( w n ∣ w n − 1 ) = P ( w n − 1 , w n ) P ( w n − 1 ) P(w_n|w_{n-1}) = \frac{P(w_{n-1},w_n)}{P(w_{n-1})} P(wn​∣wn−1​)=P(wn−1​)P(wn−1​,wn​)​
所以只要求出
P ( w n ∣ w n − 1 , w i ) 和 P ( w n − 1 ) ,即可求出 P ( w n ∣ w n − 1 ) 了 P(w_n|w_{n-1},w_i)和P(w_{n-1}),即可求出P(w_n|w_{n-1})了 P(wn​∣wn−1​,wi​)和P(wn−1​),即可求出P(wn​∣wn−1​)了
但这时需要借助语料库了,语料库的大小和能力成正相关(数据量和复杂度图)

假设语料库有2000亿条内容,

“我在”于语料库中出现了1000万次,那么
P ( w 1 ∣ w 2 ) = 1000 万 2000 亿 = 0.00005 P(w_1|w_2)=\frac{1000万}{2000亿}=0.00005 P(w1​∣w2​)=2000亿1000万​=0.00005
就是1000万除以2000亿,等于0.00005

P ( w n − 1 ) = 2 亿 2000 亿 = 0.00001 P(w_{n-1})=\frac{2亿}{2000亿}=0.00001 P(wn−1​)=2000亿2亿​=0.00001
“我”于语料库出现了2亿次,那么P(wn-1)就是2亿除以2000亿,等于0.001

因此可以求得

‘我在’出现的条件下‘我’出现的概率为
P ( w n ∣ w n − 1 ) = P ( w n − 1 , w n ) P ( w n − 1 ) = 0.00005 0.001 = 0.05 P(w_n|w_{n-1}) = \frac{P(w_{n-1},w_n)}{P(w_{n-1})}= \frac{0.00005}{0.001}= 0.05 P(wn​∣wn−1​)=P(wn−1​)P(wn−1​,wn​)​=0.0010.00005​=0.05
以此类推,最后选取组合概率最高的词,计算概率后,“我在上海”比“我载尚海”的可能性更高。由此就可以准确地识别语音啦。

但这个算法也存在这问题,即数据稀疏问题。由于语料库不能覆盖所有词语,在计算时会出现大多数的数值缺失,数据越稀疏结果越不准确。为了解决这个问题,在2003年研究者尝试用神经网络来研究语言模型。

3、基于深度学习的NLP算法

伴随着计算处理能力的提升,深度学习有了较快的发展。

在2003年这个想法被提出后,2011年罗南·科洛伯特等人用一个简单的深度学习模型在命名实体识别(NER)、**词性标注(POS tagging)**等NLP任务中取得SOTA(技术发展最新水平)成绩(画:No.1)

2013年,以Word2vec为代表的词向量模型开始普及,此外基于深度学习的研究经历了CNN、RNN、Transformer等特征提取器。

2019年至2020年,谷歌公司的BERT模型、OpenAI的GPT-3模型在很多指标上超越了人类。

2023年3月14日基于GPT-4的Chat-GPT的回答准确性不仅大幅提高,还具备更高水平的识图能力,且能够生成歌词创意文本实现风格变化

深度学习经过几十年的发展,深度学习的成功秘诀有以下三点

(1)海量数据(big data)

(2)深度神经网络模型

(3)大规模并行计算

Chat-GPT离不开这三个要素,当然也离不开科研人员的辛勤付出。

结语

我还为大家准备了相关习题和资料以便课后学习,谢谢大家。

http://nlp.aitianhai.top/#/Nlp

畅谈自然语言处理——初识NLP技术相关推荐

  1. 「自然语言处理(NLP)」入门系列(一)初识NLP

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-01-07 初识自然语言处理(NLP) 本次主要内容: 1.解释自然语言处理的目标和 ...

  2. lr0文法分析表示例_详解自然语言处理(NLP)5大语义分析技术及14类应用(建议收藏)...

    导读:自然语言处理(Natural Language Processing,NLP)技术是与自然语言的计算机处理有关的所有技术的统称,其目的是使计算机能够理解和接受人类用自然语言输入的指令,完成从一种 ...

  3. 自然语言处理(NLP)技术在医疗保健领域中的八个案例

    译者 | 东哥 审校 | 梁策 孙淑娟 在医疗保健领域,数据并不只是来自患者健康记录.医嘱条目和医生处方.事实上,目前已有数百万人通过家用工具包将他们的基因信息上传到商业数据库. 可穿戴技术也为消费者 ...

  4. 阿里自然语言处理部总监分享:NLP技术的应用及思考

    https://www.toutiao.com/a6679610377992405507/ 本文整理自阿里巴巴iDST自然语言处理部总监郎君博士的题为"NLP技术的应用及思考"的演 ...

  5. NLP:自然语言处理技术之NLP技术实践—自然语言/人类语言“计算机化”的简介、常用方法分类(基于规则/基于统计,离散式/分布式)之详细攻略

    NLP:自然语言处理技术之NLP技术实践-自然语言/人类语言"计算机化"的简介.常用方法分类(基于规则/基于统计,离散式/分布式)之详细攻略 导读:在NLP的技术实践中,处理自然语 ...

  6. 自然语言处理(NLP):概述【NLP技术的四个维度:声音、单词、句子结构、语义】

    深度学习-自然语言处理:概述[NLP技术的四个维度:声音.单词.句子结构.语义] 一.NLP的主要问题 二.NLP技术的四个维度 1.声音 2.单词/Morphology层面的技术 2.1 Word ...

  7. 阿里巴巴副总裁司罗:达摩院如何搭建NLP技术体系?

    出品 | AI科技大本营(ID:rgznai100) 司罗把人工智能分为四个层面.在计算智能层面,近年来取得了一定成就,而在更高层面的感知.认知和创造智能上还在探索中. 感知智能是指找出自然界的实体, ...

  8. NLP技术在海外金融机构的应用

    来源:DataFunTalk 本文长度为5500字,建议阅读10分钟 本文带你了解如何运用自然语言处理来辅助投资分析,涵盖了主题抽取.事件抽取.公众情绪这三类典型的应用场景. [ 导读 ] 他山之石, ...

  9. 从算法到产品:NLP技术的应用演变

    文章回顾了近几年NLP的发展历程,从项目实施的两个阶段中带我们梳理了NLP技术的应用演变. 第一个与大家分享的Case,基于NLP展开.分为3个部分,分别是NLP的发展.项目叙述.以及Lesson L ...

最新文章

  1. 2022-2028年中国新零售行业深度调研及投资前景预测报告(全卷)
  2. Intellij IDEA 添加jar包
  3. 算法笔记_114:等额本金(Java)
  4. [转载]jQuery.extend 函数详解
  5. 文本编辑器实现拖放功能
  6. Nginx server_name正则表达式匹配配置
  7. modemcu 打包_nodemcu固件的烧录及lua开发
  8. ubuntu 中怎么添加和删除用户
  9. 9张图带你了解全宇宙最神秘的团体——程序员
  10. Leetcode之路径总和II
  11. 在Windows Embedded CE下进行Native C++开发,一次错误使用多线程的经验教训
  12. 2019数模美赛规则
  13. PHP 公众号文章 转 pdf,使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)...
  14. 头条 上传图片大小_遇到不会注册今日头条号,这么办?
  15. Spring5全面详解
  16. 编程常用小技巧(持续更新~)
  17. python给图片加边框,照片加边框,照片加描边,图片加描边,批量给图片加描边
  18. ASP.NET 新闻发布网站
  19. 2021年安全员-C证(陕西省)考试资料及安全员-C证(陕西省)免费试题
  20. Hadoop MapReduce Job 相关参数设置 概念介绍与理解

热门文章

  1. 抵制屠杀鲸类,关注自然生态。
  2. 老电脑跑win7卡慢的解决办法
  3. threejs uv贴图
  4. ARM 之九 Cortex-M/R 内核 Keil(ARMCC) 程序启动流程
  5. TOP1 TOP5
  6. linux pclint配置_64位系统下,执行pclint检查的问题: Unable to open include file 'stddef.h'...
  7. windows 操作手册
  8. 1169: 大整数(指针专题)
  9. 专家级配方--玻尿酸抗敏修复精华液
  10. 将无限循环小数化成分数