6. NLP自然语言处理(Natural Language Processing)
自然语言是指人类日常使用的语言,如中文、英语、法语等。
自然语言处理是人工智能(AI)领域中的一个重要分支,它结合了计算机科学、语言学和统计学的方法,通过算法对文本和语音进行分析,使计算机能够理解、解释和生成自然语言。
随着深度学习技术的发展,NLP在文本分类、机器翻译、情感分析、对话系统等任务中取得了显著进展,推动了人工智能技术在多个领域的广泛应用。 自然语言处理的核心任务涉及如何使计算机理解和处理语言的不同方面,以下是NLP的主要概念和技术:
1. 自然语言处理的基础任务
1.1 分词(Tokenization)
分词是将一段文本分解成更小的单位(称为“词”或“标记”)的过程。在英语中,分词通常是通过空格分割单词;但在中文等无空格语言中,分词需要根据词汇和语法规则来拆分。例如:
- 英文:“Natural Language Processing is amazing.” → ["Natural", "Language", "Processing", "is", "amazing"]
- 中文:“自然语言处理很有趣。” → ["自然", "语言", "处理", "很", "有趣"]
1.2 词性标注(Part-of-Speech Tagging,POS)
词性标注是给每个词汇分配一个语法标签,标识其在句子中的语法角色,如名词、动词、形容词等。通过分析词性,计算机可以理解句子的结构和含义。
- 例如,句子:“The cat sleeps.”,词性标注为:
- "The" → 冠词(Determiner)
- "cat" → 名词(Noun)
- "sleeps" → 动词(Verb)
1.3 命名实体识别(Named Entity Recognition,NER)
命名实体识别是识别文本中具有特定意义的实体,如人名、地名、组织名、日期等。它是信息抽取(Information Extraction,IE)的一部分,帮助计算机从文本中提取有用的结构化信息。
- 例如,句子:“Barack Obama was born in Hawaii.”,NER可能会标记:
- "Barack Obama" → 人名(PERSON)
- "Hawaii" → 地名(LOCATION)
1.4 句法分析(Syntactic Parsing)
句法分析是分析句子结构的过程,目的是构建句子的语法树,识别句子中各个成分(如主语、谓语、宾语等)之间的关系。句法分析帮助计算机理解句子的语法结构。
- 例如,句子:“John gave Mary a gift.”,其句法树会揭示:
- "John" 是主语(subject)
- "gave" 是动词(verb)
- "Mary" 是间接宾语(indirect object)
- "a gift" 是直接宾语(direct object)
1.5 语义分析(Semantic Analysis)
语义分析是理解句子意义的过程,目的是从字面意义之外的层面去理解语言。包括词义消歧(Word Sense Disambiguation,WSD)和句子层次的语义推理。
- 例如,词“bank”有“银行”和“河岸”两个意思。通过上下文判断,计算机能够正确理解其意义。
1.6 情感分析(Sentiment Analysis)
情感分析是识别文本中的情感倾向的任务,通常用于分析用户评论、社交媒体帖子等文本内容,以判断其中的情感色彩(如积极、消极、中立等)。
- 例如,句子:“I love this phone!” 的情感分析结果为“积极”。
- 句子:“This product is terrible.” 的情感分析结果为“消极”。
2. 自然语言处理的高级任务
2.1 机器翻译(Machine Translation,MT)
机器翻译是将一种自然语言的文本自动转换为另一种语言的任务。最著名的例子是谷歌翻译和百度翻译。现代机器翻译系统通常基于神经网络(神经机器翻译,NMT)模型。
- 例如,将英文句子 “Hello, how are you?” 翻译成中文 “你好,你怎么样?”
2.2 问答系统(Question Answering,QA)
问答系统的目标是根据用户提出的问题,自动从给定的文档或数据库中找出答案。问答系统可以基于简单的关键词匹配,也可以基于深度学习模型来理解和推理。
- 例如,问题:“Who wrote 'Romeo and Juliet'?” 系统会返回答案:“William Shakespeare”。
2.3 自动文本摘要(Automatic Text Summarization)
自动文本摘要是将长篇文章或文档的关键信息提炼成简短摘要的技术。根据生成摘要的方式,分为抽取式摘要(Extractive Summarization)和生成式摘要(Abstractive Summarization)。
- 抽取式摘要:直接选取原文中的句子或短语作为摘要,比如CSDN的文章摘要就是抽取式。
- 生成式摘要:通过生成新的句子来概括原文的内容。
2.4 对话系统(Dialogue Systems)
对话系统是通过计算机与用户进行对话的系统,目的是模拟人类的对话行为。常见的对话系统包括智能客服、语音助手(如Siri、Alexa)等。
- 对话系统通常采用两种类型:
任务导向型(Task-oriented),比如客服助手、预订机票、查询天气、购买商品等特定任务。
开放域对话(Open-domain Dialogue),比如聊天机器人、社交机器人等。
3. 现代自然语言处理的技术与方法
3.1 词嵌入(Word Embeddings)
词嵌入是将词汇映射到低维向量空间的一种技术,目的是使词汇之间的相似性可以通过向量距离来量化。常见的词嵌入方法包括:
- Word2Vec:通过上下文来学习词向量,具有很好的语义捕捉能力。
- GloVe:基于全局词汇共现统计信息生成词嵌入。
- FastText:考虑到词的子词信息,特别适用于低频词和词形变化。
3.2 深度学习在NLP中的应用
近年来,深度学习特别是基于Transformer架构的模型在NLP任务中取得了突破性进展。Transformer模型如BERT、GPT等已成为NLP领域的核心技术。
- BERT(Bidirectional Encoder Representations from Transformers):BERT是一个预训练的语言模型,能够通过大量的语料学习语言的上下文信息。它对各种NLP任务(如情感分析、问答系统、文本分类等)都有很好的表现。
- GPT(Generative Pretrained Transformer):生成式预训练变换器GPT是一个生成式模型,专注于文本生成和对话系统等任务。它基于大规模的无监督预训练,通过少量样本可以很好地执行各种语言任务。
3.3 预训练和微调(Pre-training and Fine-tuning)
预训练和微调是现代NLP模型的常用训练策略。首先,通过大量语料进行预训练,以学习语言的一般知识。然后,在特定任务上进行微调,使模型能够更好地适应特定任务的需求。
3.4 多模态学习(Multimodal Learning)
多模态学习是指将语言与其他类型的数据(如图像、视频、音频等)结合起来进行处理。比如,视觉语言模型(Visual-Linguistic Models)可以同时处理图像和文字,在图像描述生成、视频理解等任务中取得了良好的效果。
4. 应用场景
NLP的技术已广泛应用于多个领域,而且比较成熟,主要包括:
- 搜索引擎:通过NLP提高搜索结果的相关性,理解用户查询的意图。
- 智能助手:如Siri、Google Assistant、Alexa等,利用NLP进行语音识别、命令解析和对话管理。
- 社交媒体分析:情感分析、趋势分析等。
- 客服机器人:自动应答和解决用户问题,减少人工干预。
- 医疗:从病历文本中提取关键信息,辅助医生诊断。
- 法律文书分析:从法律文本中提取有价值的信息,辅助法律研究和案件分析。
注意:
ChatGPT也是 NLP 技术中非常重要且强大的应用,它的特点和优势在于 生成式对话和文本生成,这些特点使得它在很多现代应用场景中成为一个强有力的工具,但因为它属于 自然语言生成(NLG)生成式模型(而非传统的规则或检索式模型),它的应用更偏向于 对话系统、内容创作、复杂问答 等新兴的领域。
相关文章:
6. NLP自然语言处理(Natural Language Processing)
自然语言是指人类日常使用的语言,如中文、英语、法语等。 自然语言处理是人工智能(AI)领域中的一个重要分支,它结合了计算机科学、语言学和统计学的方法,通过算法对文本和语音进行分析,使计算机能够理解、解…...

win10电脑 定时关机
win10电脑 定时关机 https://weibo.com/ttarticle/p/show?id2309405110707766296723 二、使用任务计划程序设置定时关机打开任务计划程序: 按下“Win S”组合键,打开搜索框。 在搜索框中输入“任务计划程序”,然后点击搜索结果中的“任务…...
linux删除用户
1、查看账号 cat /etc/passwd 查看所有用户账号信息:该文件记录了系统中的所有用户账号信息,包括用户名、用户ID、用户所属组等。 2、删除账号 基本删除:使用userdel命令删除用户账号,格式为userdel [选项] 用户名。如果不加任…...

FPGA的 基本结构(Xilinx 公司Virtex-II 系列FPGA )
以Xilinx 公司Virtex-II 系列FPGA 为例,其基本结构由下图所示。它是主要由两大部分组成:可编程输入/输出(Programmable I/Os)部分和内部可配置(Configurable Logic)部分。 可编程输入/输出(I/Os…...
Springboot项目如何消费Kafka数据
目录 一、引入依赖二、添加Kafka配置三、创建 Kafka 消费者(一)Kafka生产的消息是JSON 字符串1、方式一2、方式二:需要直接访问消息元数据 (二)Kafka生产的消息是对象Order 四、创建 启动类五、配置 Kafka 生产者&…...
LeetCode 热题 100 | 子串
子串基础 前缀和:前面的数加在一起等于多少,放进map里,key为和,value为这个和出现的次数。单调队列:单调递增/递减队列,每次加入新元素,比新元素大/小的元素全部弹出。滑动窗口:两层…...

深度学习笔记11-优化器对比实验(Tensorflow)
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 目录 一、导入数据并检查 二、配置数据集 三、数据可视化 四、构建模型 五、训练模型 六、模型对比评估 七、总结 一、导入数据并检查 import pathlib,…...
【掌握 JavaScript 数组迭代:map 和 includes 的使用技巧】
map map()方法是数组原型的一个函数,用于对数组的每个元素执行一个函数,并返回一个新的数组,其中包含么哦一个元素执行的结果。 语法 const newArray array.map(callback(currentValue, index, arr), thisValue)参数 callback࿱…...

深入浅出 Android AES 加密解密:从理论到实战
深入浅出 Android AES 加密解密:从理论到实战 在现代移动应用中,数据安全是不可忽视的一环。无论是用户隐私保护,还是敏感信息的存储与传输,加密技术都扮演着重要角色。本文将以 AES(Advanced Encryption Standard&am…...

Clickhouse基础(一)
数据存储的目录,在存储数据时是先经过压缩后再存储的,压缩效率很高 操作命令: sudo clickhouse start sudo clickhouse restart sudo clickhouse status进入clickhouse clickhouse-client -mCREATE TABLE db_13.t_assist (modelId UInt64,…...

深度学习|表示学习|一个神经元可以干什么|02
如是我闻: 如果我们只有一个神经元(即一个单一的线性或非线性函数),仍然可以完成一些简单的任务。以下是一个神经元可以实现的功能和应用: 1. 实现简单的线性分类 输入:一组特征向量 x x x 输出ÿ…...

ubuntu22.04降级安装CUDA11.3
环境:主机x64的ubuntu22.04,原有CUDA12.1,但是现在需要CUDA11.3,本篇文章介绍步骤。 一、下载CUDA11.3的run文件 下载网址:https://developer.nvidia.com/cuda-11-3-1-download-archive?target_osLinux&target_…...
为AI聊天工具添加一个知识系统 之32 三“中”全“会”:推理式的ISA(父类)和IOS(母本)以及生成式CMN (双亲委派)之1
本文要点和问题 要点 三“中”全“会”:推理式的ISA的(父类-父类源码)和IOS的(母本-母类脚本)以及生成式 CMN (双亲委派-子类实例)。 数据中台三端架构的中间端(信息系统架构ISA :…...

Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)
一、函数基础 1.1、函数的用法和底层分析 函数是可重用的程序代码块。 函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时…...
spring解决循环依赖的通俗理解
目录标题 1、什么是循环依赖2、解决循环依赖的原理3、Spring通过三级缓存解决循环依赖4、为什么要使用三级缓存而不是二级缓存?5、三级缓存中存放的是lambda表达式而不是一个半成品对象 1、什么是循环依赖 众所周知,Spring的容器中管理整个体系的bean对…...

用 Python 从零开始创建神经网络(十九):真实数据集
真实数据集 引言数据准备数据加载数据预处理数据洗牌批次(Batches)训练(Training)到目前为止的全部代码: 引言 在实践中,深度学习通常涉及庞大的数据集(通常以TB甚至更多为单位)&am…...
介绍PyTorch张量
介绍PyTorch张量 介绍PyTorch张量 PyTorch张量是我们在PyTorch中编程神经网络时将使用的数据结构。 在编程神经网络时,数据预处理通常是整个过程的第一步,数据预处理的一个目标是将原始输入数据转换为张量形式。 torch.Tensor类的实例 PyTorch张量…...

Vision Transformer (ViT)原理
Vision Transformer (ViT)原理 flyfish Transformer缺乏卷积神经网络(CNNs)的归纳偏差(inductive biases),比如平移不变性和局部受限的感受野。不变性意味着即使实体entity(即对象)的外观或位…...

移动云自研云原生数据库入围国采!
近日,中央国家机关2024年度事务型数据库软件框架协议联合征集采购项目产品名单正式公布,移动云自主研发的云原生数据库产品顺利入围。这一成就不仅彰显了移动云在数据库领域深耕多年造就的领先技术优势,更标志着国家权威评审机构对移动云在数…...

Unity中对象池的使用(用一个简单粗暴的例子)
问题描述:Unity在创建和销毁对象的时候是很消耗性能的,所以我们在销毁一个对象的时候,可以不用Destroy,而是将这个物体隐藏后放到回收池里面,当再次需要的时候如果回收池里面有之前回收的对象,就直接拿来用…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...