当前位置: 首页 > news >正文

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模型如BERTGPT等已成为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&#xff1…...

深入浅出 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 输出&#xff…...

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 &#xff1a…...

Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)

一、函数基础 1.1、函数的用法和底层分析 函数是可重用的程序代码块。 函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时&#xf…...

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,而是将这个物体隐藏后放到回收池里面,当再次需要的时候如果回收池里面有之前回收的对象,就直接拿来用…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

dify打造数据可视化图表

一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...