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

自然语言处理状况简介

一、说明

        自然语言处理已经进入大模型时代,然而从业人员必须了解整个知识体系、发展过程、知识结构,应用范围等一系列知识。本篇将报道此类概况。

二、自然语言处理简介

        自然语言处理,或简称NLP,是处理和转换文本的计算机科学学科。它由几个任务组成,这些任务从标记化开始,将文本分成单独的意义单位,应用句法和语义分析来生成抽象的知识表示,然后再次将该表示转换为文本,用于翻译、问答或对话等目的。

        本文简要介绍了自然语言处理。它首先简要介绍了科学学科的历史概述,解释了所使用的不同时期和方法,然后解释了各种NLP任务,分为连贯的兴趣领域,然后概述了当前的NLP程序。在接下来的几周里,其他文章将研究 Python 库和 NLP 的具体项目。

2.1、自然语言处理的起源

来源:自然语言处理、语言学、机器学习、人工智能

        自然语言处理是一门计算机科学学科,可追溯到1950年。它是几个科学领域的综合,目标、范式和方法从中协同并具体化。这些领域是语言学、机器学习和人工智能。对这些领域的简要概述有助于理解NLP如何处理语言,以及该学科如何在不同的亿万年中发展,在此期间,其他学科的进步和见解被合并。

        语言学是对语言及其不同方面的经典研究,如句法、语义、形态学和音韵学。它试图创建一个通用的框架,语言是如何被创造和工作的。特别是在理论语言学中,引入和研究了不同类型的逻辑,以反映信息是如何从表达中表示和推断的。

        机器学习涉及设计处理结构化或非结构化数据的算法,以识别模式并评估与这些模式相关的其他或更新数据。数据以数字表示或转换为数字表示,然后应用不同的数学模型和算法。机器学习还具有几个目标:聚类、检测单独的相关数据组、异常检测、查找不属于已知模式的数据或回归,创建近似复杂输入以生成输出值的函数。

        人工智能关注的是机器如何构建或表示智能的一般问题。这是一门跨越数学算法、计算机程序、数据结构、电子学和机器人技术的学科。它制定了以下研究领域,这些领域本身代表了一个单独的目标。在推理和问题解决中,程序应该处理概念的符号表示,并执行支持程序目标或议程的计算。通过知识表示,程序需要能够表示有关其应用领域的知识,例如使用本体,连接概念并表达其关系的类似网络的数据结构。最后,自动和自主数据处理需要学习和感知,以提高知识和推理能力,特别是通过处理来自文本、图片、视频和声音等许多不同领域的数据

        如果把所有这些学科放在一起,这幅图景就会演变。人工智能的牵强附会目标塑造了NLP研究的视野:创建理解,处理和推理语言的程序,与人类交谈或形成有关文档的知识。机器学习为其处理数值数据的算法提供了数学基础。通过将文本表示为数字数据,可以对文本进行分类、分类和比较。在某种程度上,从文本的数字表示中,事实和三段论可能会受到干扰。最后,语言学塑造了语言基础结构的遗产,将语言分为句法、语义等。这种分离极大地形成了早期的NLP方法,因为程序被设计为通过创建句法模型,将启发式应用于令牌,使用最终转换为知识表示的语义表示来逐步处理文本。

2.2、自然语言处理的历史

来源:自然语言处理

        NLP在三个不同的时代发展:符号,统计和神经。通过遵循上述考虑,很明显,每个时代的目标和方法都反映了继承人相邻学科的知识体系。

        第一个时代被称为符号NLP。语言是通过其语法和语义来考虑的。语言表达是单词的有序序列,其中单词代表一个概念,其中细粒度的内部结构和单词关系塑造了整体含义。将一个句子简化为不同的词,将词简化为它们的引理,即它们的屈折词源,表达了表达的内容。然而,只有考虑其句法和语法,单词的高阶关系才会显现出来,句子的真正含义才得以实现。这个时代的NLP系统关注创建复杂的规则,这些规则以句法和语义形式处理和表示语言。直到今天,这些基于规则的系统过去和现在都用于多个NLP任务。

        第二个时代称为统计NLP。用于研究和工业的计算机越来越可用,以及计算机可读取的数据量不断增加,导致提出了处理语言的统计方法。通过使用这种先进的处理能力,可以并行处理多个文本和文档,然后应用先进的机器学习算法来检测语言模式。这个时代的典型机器学习模型是贝叶斯网络、隐马尔可夫模型和支持向量机,它们仍然用于 NLP 任务。应用统计学可以带来一些关于语言本质的见解,这些见解甚至反映在理论语言学中。这最终形成了与决策有关的专家系统和涉及符号信息的表示和推理的知识系统。

        第三个时代被称为神经NLP,因为它使用了庞大而复杂的神经网络。神经网络是由单个神经元组成的复杂结构,也称为感知器。感知器的概念可以追溯到1950年,当时它被用来对执行简单输入输出转换的函数进行建模。就像在第二个时代一样,计算处理能力的提高,特别是能够对大量数据执行数学功能的图形处理单元的提高,导致了越来越复杂。神经网络被用于困难的机器学习任务,因为它们显示出一个有前途的特征:神经网络不是手动创建重要特征,即算法工作的数据输入模式,而是自己学习特征。他们接受训练的数据越多,特征和结果就越强大。当应用于处理文本的数字表示时,考虑了相同的效果。网络学习了语言的结构,并很快在几个NLP任务中超越了既定的基准。如今,基于神经网络的NLP正在成为NLP研究的主要形式。

三、自然语言处理的目标

3.1 自然语言处理任务

资料来源:在实践中利用LLM的力量:关于ChatGPT及其他的调查,自然语言处理:最新技术,当前趋势和挑战,3:深度学习在自然语言处理中的用途调查,维基百科自然语言处理

结合科学论文,维基百科和Python中常见的NLP项目,NLP任务列表令人惊讶。以下列表并不详尽,它侧重于Python NLP库支持的任务,并且分组与维基百科的分组不同。

需要将两个主要组分开:核心NLP任务,结构为经典语言学的片段,主要操作在令牌和句子上,以及使用计算机的高级NLP任务及其经典NLP任务的组合技能,顶部操作并生成任意数量的文本。

3.2 核心 NLP 任务

  1. 文本处理 - 确定和分析句子的单个标记
  • 标记化:将句子分成单独的标记或称为块的标记组,例如通过检查原始文本的标点符号,或使用规则/启发式方法对相关单词进行分组。也称为分块和分词。
  • 词形还原:通过应用规则和启发式方法识别引理,这是一种单词核心形式
  • 词干分析:通过使用语言词典将屈折词简化为其核心形式 句法分析 - 识别并表示句子的语法。
  1. 文本语法
  • 解析:确定句子的语法结构,使用依赖解析(考虑单词的关系)或选区解析(使用概率方法)
  • 词性标记:应用 pars 树并将句子中的标记标记为名词、动词、形容词、标点符号等。
  1. 文本语义 - 识别句子中单词的含义
  • 命名实体识别 (NER):识别权利,例如人员、城市或头衔
  • 词义消歧:识别并解决给定上下文中单词的同义词、多义词、下义词和亢义词特征
  • 语义角色标签:标识句子中名词的角色,例如执行操作的代理、操作发生的主题或位置等。另请参阅语义角色
  1. 文档语义 - 识别段落和完整文本的含义
  • 文本分类:定义文本所属的不同类别,例如用于垃圾邮件筛选。
  • 主题建模:自动识别不同文档的主题。
  • 情绪分析:计算文本对主题的正、中或负的极性
  • 毒性识别:对文本的细微解释,识别语言使用的负面方面。

3.3 高级 NLP 任务

  1. 文本生成 - 为预期主题创建有意义的文本
  • 拼写更正:更正句子中单个单词的拼写
  • 文本摘要:将文档压缩为其关键思想,可以进一步指定为通用或基于查询
  • 机器翻译:将文本从一种自然语言翻译成另一种自然语言
  • 问答:从给定的文本中,确定与语言相关的相关部分(抽取模型),或生成一个新文本,将包含的事实构建成新陈述(生成模型)。同样有区别的是,他的问题是否封闭在一个领域,还是开放领域,因此也包括所有外部背景。
  1. 知识与干扰 - 从文本中提取事实并进行逻辑干扰以发现新事实。
  • 开放性问题/推理:在开放环境中,识别并解决问题。
  • 信息提取:从给定的文本中,识别与外部标准相关的信息,然后以外部格式存储此信息
  1. 自然语言理解 - 定义整个语言的抽象表示
  • 形态学:单词如何变化以表示一组单词内的时间、性别或单词间关系的规则集
  • 语法:如何形成连贯的结构化和有意义的单词组来传达含义的规则集
  • 语义:单词的固有含义,它们所代表的概念。
  • 语言建模:确定在一组单词、句子甚至段落组中给定前一个单词的下一个单词的概率

四、自然语言处理编程管道

        典型的NLP项目遵循相同的预处理和转换步骤,使文本适用于算法。这些步骤是预处理、统计/语义信息收集、数值表示转换和目标任务应用。

        在预处理期间,文本被分成有意义的单元。通常,这些单元也会进一步减少,以减少下游任务处理的信息量。

  • 标记化:将句子分隔为单个标记。
  • 词干分解:删除标记的屈折结尾,并根据规则集提供基本词。
  • 词形还原:删除标记的屈折结尾,并根据字典提供基本单词。
  • 分块:识别构成语义单元的相关单词组,例如识别一个人的名字、中间名和姓氏,而不是三个单独的名词。

        要应用任何 NLP 算法、机器学习模型或将文本输入神经网络,需要将文本转换为数字表示。通常,这种表示不仅考虑单个文本,还考虑一组作为语料库创造的相关文本。对于文本语料库,可以使用以下技术来生成数字表示:

  • 词袋:由每个单词的单词/出现次数对组成的数据结构。
  • One-Hot Encoding:二进制标识每个单词的单词是否存在于文档中。
  • TFID:一种指标,它将文本中单词的绝对出现率与整个校园中单词的反频率相结合,平衡非常频繁和很少使用的单词的出现。
  • 词嵌入:表示单词相对含义的多维向量,通过处理大量文本和分析相关单词的出现而产生。词嵌入是衡量单词相似性的非常有效的工具。这个想法可以升级为句子、段落甚至整个文档构建向量,以查找语料库中不同级别的相似性。

        从这里开始,经典的NLP任务,从语法和语义开始,以及高级NLP任务都是可行的。

五、总结

        自然语言处理是一门计算机科学学科,共享语言学、机器学习和人工智能的传统、目标和方法。通过符号、统计和神经处理的三个时代,创建了一个复杂的理解和广泛的 NLP 任务列表。今天,执行句法和语义分析从显式的笼子规则系统转变为神经网络中学习的特征表示。由此,文本翻译、问答、推理和最终文本生成等高级 NLP 任务变得可行。在本文中,您了解了时代、NLP 任务和典型 NLP 项目的步骤。下一篇文章展示了用于各种NLP任务的具体Python库。

相关文章:

自然语言处理状况简介

一、说明 自然语言处理已经进入大模型时代,然而从业人员必须了解整个知识体系、发展过程、知识结构,应用范围等一系列知识。本篇将报道此类概况。 二、自然语言处理简介 自然语言处理,或简称NLP,是处理和转换文本的计算机科学学科…...

python爬虫基于管道持久化存储操作

文章目录 基于管道持久化存储操作scrapy的使用步骤1.先转到想创建工程的目录下:cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 基于管道持久化存储的步骤:持久化存储1:保…...

【MySQL】数据类型(二)

文章目录 一. char字符串类型二. varchar字符串类型2.1 char和varchar比较 三. 日期和时间类型四. enum和set类型4.1 set的查询 结束语 一. char字符串类型 char (L) 固定长度字符串 L是可以存储的长度,单位是字符,最大长度是255 MySQL中的字符&#xff…...

基于Matlab实现连续模型求解方法

本文介绍了如何使用Matlab实现连续模型求解方法。首先,我们介绍了连续模型的概念,并明确了使用ODE和PDE求解器来求解常微分方程和偏微分方程的步骤。然后,我们通过一个简单的例子演示了如何将问题转化为数学模型,并使用Matlab编写…...

Tomcat 与 JDK 对应版本关系

对应关系 Tomcat版本 jdk版本11.0.x JDK 21及以后10.1.x JDK11及以后10.0.xJDK1.8及以后9.0.x JDK1.8及以后8.5.xJDK1.7及以后8.0.x JDK1.7及以后 查看对应关系方法: 登陆Tomcat官网:Apache Tomcat - Welcome! 结果:...

iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone

文章目录 一、环境准备1.1、软件环境1.2、硬件环境1.3、查看版本 二、安装WDA过程2.7、构建失败,这类错误有很多,比如在选择开发者账号后,就会提示:Failed to register bundle identifier表示应用唯一注册失败2.9、第二个错误,完全…...

IDEA的Maven换源

前言 IDEA是个好东西,但是使用maven项目时可能会让人很难受,要么是非常慢,要么直接下载不了。所以我们需要给IDEA自带maven换源,保证我们的下载速度。 具体操作 打开IDEA安装路径,然后打开下面的文件夹 plugins\m…...

步进电机只响不转

我出现问题的原因是相位线接错。 我使用的滑台上示17H的步进电机,之前用的是57的步进电机。 57步进电机的相位线是A黑、A-绿、B红、B-蓝。 17步进电机的相位线是A红、A-绿、B黑、B-蓝。 这两天被一个问题困扰了好久,在调试步进电机开发板的时候电机发生…...

使用select实现服务器并发

select函数介绍&#xff1a; select 函数是一个用于在一组文件描述符上进行异步I/O多路复用的系统调用。它可以同时监视多个文件描述符&#xff0c;等待其中任何一个文件描述符准备就绪&#xff0c;然后进行相应的操作。 以下是select函数的原型&#xff1a; #include <…...

【Python】基于OpenCV人脸追踪、手势识别控制的求实之路FPS游戏操作

【Python】基于OpenCV人脸追踪、手势识别控制的求实之路FPS游戏操作 文章目录 手势识别人脸追踪键盘控制整体代码附录&#xff1a;列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 视频&#xff1a; 基于OpenCV人脸追踪、手势识别控制的求实之路FPS游戏操作 手…...

力扣 -- 718. 最长重复子数组

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int findLength(vector<int>& nums1, vector<int>& nums2) {int m nums1.size();int n nums2.size();//多开一行&#xff0c;多开一列vector<vector<int>> dp(m 1, ve…...

MP、MybatisPlus、联表查询、自定义sql、Constants.WRAPPER、ew (二)

描述&#xff1a; 给定一个id列表&#xff0c;更新对应列表中动物的年龄&#xff0c;使得年龄都较少一岁。 要求&#xff1a;使用条件构造器构造条件。 mapper&#xff1a; void updateAnimalAge(Param(Constants.WRAPPER) Wrapper<Animal> wrapper, Param("age&qu…...

Ubuntu服务器安全性提升:修改SSH默认端口号

在Ubuntu服务器上&#xff0c;SSH&#xff08;Secure Shell&#xff09;是一种至关重要的远程连接工具。它提供了一种安全的方式来远程连接和管理计算机系统&#xff0c;通过加密通信来确保数据的保密性和完整性。SSH协议广泛用于计算机网络中&#xff0c;用于远程管理、文件传…...

十七,IBL-打印各个Mipmap级别的hdr环境贴图

预滤波环境贴图类似于辐照度图&#xff0c;是预先计算的环境卷积贴图&#xff0c;但这次考虑了粗糙度。因为随着粗糙度的增加&#xff0c;参与环境贴图卷积的采样向量会更分散&#xff0c;导致反射更模糊&#xff0c;所以对于卷积的每个粗糙度级别&#xff0c;我们将按顺序把模…...

7、Docker网络

docker网络模式能干嘛&#xff1f; 容器间的互联和通信以及端口映射 容器IP变动时候可以通过服务名直接网络通信而不受到影响 docker 网络模式采用的是桥接模式&#xff0c;当我们创建了一个容器后docker网络就会帮我们创建一个虚拟网卡&#xff0c;这个虚拟网卡和我们的容器网…...

MySQL学习笔记23

逻辑备份&#xff1a; 1、回顾什么是逻辑备份&#xff1f; 逻辑备份就是把数据库、数据表或者数据进行导出&#xff0c;导出到一个文本文件中。 2、逻辑备份工具&#xff1a; mysqldump&#xff1a;提供全库级、数据库级别以及表级别的数据备份。 mysqldumpbinlog&#xff…...

Java基础---第十篇

系列文章目录 文章目录 系列文章目录一、说说Java 中 IO 流二、 Java IO与 NIO的区别(补充)三、java反射的作用于原理一、说说Java 中 IO 流 Java 中 IO 流分为几种? 按照流的流向分,可以分为输入流和输出流; 按照操作单元划分,可以划分为字节流和字符流; 按照流的角色…...

NLP 03(LSTM)

一、LSTM LSTM (Long Short-Term Memory) 也称长短时记忆结构,它是传统RNN的变体,与经典RNN相比&#xff1a; 能够有效捕捉长序列之间的语义关联缓解梯度消失或爆炸现象 LSTM的结构更复杂,它的核心结构可以分为四个部分去解析: 遗忘门、输入门、细胞状态、输出门 LSTM内部结构…...

Python集成开发环境(IDE):WingPro for Mac

WingPro for Mac是一款Python集成开发环境&#xff08;IDE&#xff09;软件&#xff0c;它提供了一系列强大的工具和功能&#xff0c;帮助Python开发人员提高开发效率和质量。 WingPro for Mac拥有直观的用户界面和强大的调试器&#xff0c;可以帮助用户快速定位问题和修复错误…...

[Machine learning][Part3] numpy 矢量矩阵操作的基础知识

很久不接触数学了&#xff0c;machine learning需要用到一些数学知识&#xff0c;这里在重温一下相关的数学基础知识 矢量 矢量是有序的数字数组。在表示法中&#xff0c;矢量用小写粗体字母表示。矢量的元素都是相同的类型。例如&#xff0c;矢量不包含字符和数字。数组中元…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...