一文了解什么是NLP(自然语言处理)

文章目录

  • 简介
  • NLP 的应用
  • NLP 的工作原理
    • 步骤1:文本预处理
    • 步骤2:文本表示
    • 步骤3:分析和建模
  • 结语
  • 主要参考

简介

自然语言处理(NLP)是一种专业分析人类语言的人工智能。(下文皆简称为“NLP”),它的工作原理:

  • 接收自然语言,这种语言是通过人类的自然使用演变而来的,我们每天都用它来交流
  • 转译自然语言,通常是通过基于概率的算法
  • 分析自然语言并输出结果

简而言之,这就是一个创建算法的过程。

苹果公司的人工智能语音助手 Siri 的工作过程就是自然语言处理在实践中应用的一个鲜活案例。

NLP 正在成为我们生活中不可或缺的一部分,其与机器学习、深度学习一起达成的高度远远优于几年前取得的成就。

在本文中我们将深入了解NLP是如何应用、如何工作的。


NLP 的应用

NLP 应用广泛,其中包括:

  • 机器翻译:通过使用 NLP 把一种语言翻译成另一种语言。

    为了使 NLP 在机器翻译方面做得更好,它使用了深度学习技术。这种形式的机器翻译因为利用了神经网络,所以有时被称为神经机器翻译(NMT)。因此,基于统计、试错等方法翻译语言的 NMT 能够联系语境翻译语言,处理语言的其他微妙之处。

    除了翻译外语,NMT 也被使用在翻译纯文本、网页或文件,如 Excel、Powerpoint 或者 Word,翻译财务文件,如年报、投资评论和信息文件等场景。

  • 语音识别

    语音识别的核心是识别口语单词、解释它们并将其转换为文本的能力。然后可以采取一系列行动,如回答问题、执行指示或编写电子邮件。

    Siri 使用 NLP 一个非常明显的特征就是语音识别。当然,Alexa 和谷歌语音助手同样也是 NLP 语音识别的著名应用。

    语音识别不是一项新的科学技术,距今已有50多年的历史了。直到最近,多亏有了 NLP,它的准确性和易用性才有了质的提升。在 NLP 中使用强大的深度学习的方法使今天的语音识别应用程序比以往任何时候都表现得更出色。

  • 聊天机器人

    聊天机器人是一种模仿人类对话聊天的程序。

    第一个聊天机器人Eliza Doolittle 出现在 20 世纪 60 年代,经过几十年的发展,NLP 已经成为创建聊天机器人的基础,尽管这样的系统仍不算完美,但它们可以轻松地处理标准任务。聊天机器人当前可在多种渠道上运行,包括 Internet,应用程序和消息传递平台。很多公司用聊天机器人来进行客户服务、售前咨询和售后咨询。

    虽然简单的聊天机器人使用基于规则的方法,但如今功能更强的聊天机器人使用 NLP 来理解客户在说什么以及如何响应。

  • 情感分析

    情感分析是种有趣的 NLP 和数据挖掘任务,对文本数据中包含的情绪进行解析和分类,衡量人们的观点倾向。

    例如被用来分析观众对电影的评论或由该电影引起的情绪状态,又例如将在线客户对产品或服务的反馈按照正面或负面的体验进行分类。

    情感分析最简单的形式是,根据传达情感的特定词语,如“爱”、“恨”、“高兴”、“伤心”或“生气”,对文本进行分类。这种情绪分析方法已经存在了很长时间,但由于其简单性,实际应用非常有限。

    今天的情感分析使用基于统计和深度学习方法的 NLP 对文本进行分类,其结果就是能够处理复杂的、自然发音的文本。

    如今,世界各地的企业都对情感分析非常感兴趣。因为其可以在客户偏好、满意度和意见反馈等方面提供有助于市场活动和产品设计的数据。

  • 电子邮件分类

    电子邮件过载是现代职场常见的难题。NLP 可以协助分析和分类收到的电子邮件,以便它们可以自动转发到正确的收件方。

    曾经,人们使用简单的关键词匹配技术对电子邮件进行分类。这种做法成败参半。NLP 可以更好的进行分类,因为它可以理解整个句子、段落和文本的文本中的上下文。

    鉴于当今企业必须处理的电子邮件数量庞大,基于 NLP 的电子邮件分类可以极大地提高工作效率。使用 NLP 进行分类有助于确保邮件不会被遗忘在负担过重的收件箱中,还可以适当地归档以备进一步处理。


NLP 的工作原理

本质上,NLP 是通过将一组文本信息转换成指定的输出数据来工作的。

例如:如果应用程序是机器翻译,那么输入的文本信息将是源语言(比如英语)的文档,输出将是目标语言(比如法语)的翻译文档;如果应用程序是情感分析,则输出的是将输入文本分类转换为情感类别;诸如此类。

NLP 工作流

现代 NLP 是一门融合了语言学、计算机科学和机器学习的混合学科。NLP 使用的过程或工作流有以下三个主要步骤:

  1. 文本预处理
  2. 文本表示
  3. 分析和建模

每一步都可能使用一系列技术,这些技术随着研究的深入而不断发展。


步骤1:文本预处理

首先准备输入文本,以便更容易地分析。这部分的 NLP 在借鉴了一系列传统语言方法的基础上,已经很好的建立起来了。

在这个步骤中使用的一些关键方法是:

  • 标记法:将文本分解成有用的单位(标记),例如,使用空格分隔单词,或者使用句号分隔句子。

    标记法也能识别经常连在一起的单词,比如“New York”或“machine learning”。例如,将“Customer service couldn 't be better.”这句话进行标记,会产生以下标签:“Customer service”、“could”、“not”、“be”和“better”。

  • 标准化:使用词干提取和词形还原等技术将单词转换为基本形式

    这样做是为了帮助减少干扰和简化分析。

    词干分析通过删除后缀来识别单词的词干。例如,“研究”一词的词干是“studi”。类似地,词元化除去后缀,必要时也除去前缀,从而产生通常在自然语言中使用的单词。例如,“studies”一词真正的词形还原就是“study”。

    在大多数应用程序中,由于产生的单词在自然语言中有更多的意义,所以词形还原比词干提取更为可取。

  • 词性标注(POS):利用词法,或研究词与词之间的关系。

    单词(或标记)是根据它们在句子中的功能来标记的。这是通过使用文本语料库中的既定规则来识别单词在言语中的目的,即动词、名词、形容词等。

在这里插入图片描述

  • 句法分析:利用句法或分析单词和句子如何组合在一起,有助于理解句子的结构,并根据语法规则将句子分解成短语来实现。

    一个短语可以包含一个名词和一个冠词,比如“我的兔子”,或者一个动词,比如“喜欢吃胡萝卜”。

  • 语义分析:是指句子中使用的词语的预期意义。

    单词可以有不止一种意思。例如,“pass”可以意味着把某件物品交给别人、决定不参加某件事、或考试合格。

    通过观察目标词前后出现的单词,可以更好地理解目标词的意思。


步骤2:文本表示

为了使用机器学习和深度学习方法分析文本,需要将文本转换为数字。这就是文本表示的目的。在此步骤中使用的一些关键方法包括:

  • 词袋模型

    词袋模型(BoW)是描述文档中单词出现的文本的一种表示形式,它通过计算输入文档中每个单词与已知词汇的词汇表相比出现的次数来表示文本。

    结果是一组向量,其中包含描述每个单词出现次数的数字。这些向量被称为“词袋”,因为它们不包含任何关于输入文档结构的信息。

    为了说明 BoW 是如何工作的,请看示例“the cat sat on the mat”。其中包含“the”、“cat”、“sat”、“on”和“mat”等词。这些词的出现频率可以用形式为 [2,1,1,1,1] 的向量来表示。这里,单词“the”出现两次,其他单词出现一次。

    与一个巨大的词汇表相比,向量将扩展为包含许多零。这是因为词汇表中没有包含在例句中的所有单词的频率都是零。结果向量可能包含大量的零,因此称为“稀疏向量”。

    BoW 简单易懂。然而,当词汇量很大时,生成的稀疏向量可能非常大。这会导致在计算上产生数量可观的包含无效信息的向量(例如,大部分都是零)。

    此外,BoW 查看的是单个单词,因此不会捕捉到任何组合词的相关信息。这会导致接下来分析文本时造成上下文丢失。

  • N 元模型

    使用 BoW 减少上下文丢失的一种方法是创建组合单词而不是单个单词的词汇表。这些分组的单词被称为“n-grams”,其中“n”是分组大小。由此产生的方法称为“N元模型”(BNG)。

    该模型基于这样一种假设,第 N 个词的出现只与前面 N-1 个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计 N 个词同时出现的次数得到。常用的是二元的 2-grams 和三元的 3-grams。

    BNG 的优点是每个 n-gram 比单个单词能捕捉更多的上下文。

    在前面的例句中,“sat on”和“the mat”是 2-grams 的例子,“on the mat”是 3-grams 的例子。

  • TF-IDF

    计算单词在文档中出现的次数会出现一个问题,一些单词开始在计算中占据主导地位。

    像“the”、“a”或“it”之类的词。这些词经常出现,但并不包含太多信息。

    处理此种问题的一种方法是将文档中频繁出现的单词与唯一出现的单词区别对待。经常出现的词往往是像“The”这样的低值词。这些词的计数将被惩罚,以降低其支配地位。

    这种方法被称为“词频-逆向文件频率”或 TF-IDF。词频是指单词在给定文档中的出现频率,而逆文档频率则是指单词在所有文档中的出现频率。

    TF-IDF 方法的作用是淡化频繁出现的单词,并突出显示具有有用信息的更独特的单词,例如“cat”或“mat”。这样做可以带来更好的结果。

  • 词嵌入

    在这里插入图片描述

    现有的机器学习方法往往无法直接处理文本数据,因此需要找到合适的方法,将文本数据转换为数值型数据,由此引出了 Word Embedding 的概念。

    一种更复杂的文本表示方法涉及到词嵌入。它将每个单词映射到单独的向量,其中向量趋向于“密集”而不是“稀疏”(即更小,零更少)。在映射过程中,会考虑每个单词及其周围的单词。由此产生的密集向量可以帮助更好地分析比较单词和上下文。

    词嵌入方法利用强大的机器学习和深度学习来完成映射。这是一个不断发展并且已经有了一些出色成果的的领域。目前使用的关键算法包括 Word2Vec、**GloVe **和 FastText


步骤3:分析和建模

NLP 过程的最后一步是对通过步骤 1 和步骤 2 生成的向量,利用机器学习和深度学习方法执行计算,以产生期望的结果。许多来自非 NLP 领域的相同的机器学习技术,例如图像识别或欺诈检测,可用于该分析。

考虑情感分析。可以使用有监督或无监督的机器学习来完成。有监督的机器学习需要预先标记的数据,而无监督的机器学习则使用预先准备好的词库对情感进行分类。

利用机器学习,用概率方法对输入文本向量进行分类。这可以通过一个训练模型(有监督的机器学习)或者通过与合适词库(无监督的机器学习)的比较来实现。

最后呈现的结果是基于机器学习过程中产生的概率的情绪分类。


结语

NLP 发展迅速,对社会的影响越来越大。从语言翻译到语音识别,从聊天机器人到识别情感,NLP 正在提供有价值的见解,使我们的生活更高效。

现代自然语言处理运用语言学、计算机科学和机器学习。近几年来,NLP 取得的成果远远超过过去我们所见。

NLP 的基本工作流程包括文本预处理、文本表示和文本分析。现在有各种各样的技术在使用,更多的技术正在不断的研究中发展。

NLP 将彻底改变工业和消费者体验的许多领域,并且已经成为我们日常生活中熟悉的一部分。

有了 NLP,我们就有了一种利用我们天生就习惯的媒介参与数字未来的有力方式,那就是我们用语言沟通交流的能力。


主要参考

  • 科普丨什么是NLP(自然语言处理)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

一个基于Zookeeper+Dubbo3+SpringBoot3的完整微服务调用程序示例代码

一、关于 Dubbo3 的一些优化改进介绍 Dubbo3 的官方文档地址: https://cn.dubbo.apache.org/zh-cn/overview/what/overview/ 其针对一些问题进行了优化和改变。个人整理3个小的方面: 1. 在服务注册方面使用 DubboService 注解,不再使用 Servi…

群控系统服务端开发模式-应用开发-上传配置功能开发

下面直接进入上传配置功能开发,废话不多说。 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_upload (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,upload_type tinyint(1) UNSIGNED NOT NULL COMMENT 上传类型 1:本站 2&a…

一:时序数据库-Influx应用

目录 0、版本号 1、登录页面 2、账号基本信息 3、数据库案例 4、可视化 5、java案例 0、版本号 InfluxDB v2.4.0 1、登录页面 http://127.0.0.1:8086/signin 账号:自己账号 密码:自己密码 2、账号基本信息 查看用户id和组织id!&…

Linux高阶——1027—进程间关系相关

本章节介绍,进程间的各种关系:亲缘关系,终端进程,进程组,会话,孤儿进程,守护进程 1、亲缘关系 Linux或unix操作系统,进程间具备亲缘关系,分为强亲缘与弱亲缘 强亲缘&a…

leetcode动态规划(二十三)-打家劫舍III

题目 337.打家劫舍III 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树…

(七)Python运算符和优先级

一、算数运算符 算数运算符,如下表所示: x1 y2 z3 # 加法运算 axy print(a,a) # 减法运算 by-x print(b,b) # 乘法运算 cy*z print(c,c) # 除法运算 dz/y print(d,d) # 取模运算 ez%y print(e,e) # 幂运算 fy**z print(f,f) 输出结果: 二…

echarts地图,柱状图,折线图实战

1.地图 <template><div style"height: 100%;" class"cantainerBox"><div class"top"><div class"leftTop"><span class"firstSpan">推广进度</span><div>省份选择&#xff1a;&l…

JAVA语言多态和动态语言实现原理

JAVA语言多态和动态语言实现原理 前言invoke指令invokestaticinvokespecialinvokevirtualinvokeintefaceinvokedynamicLambda 总结 前言 我们编码java文件&#xff0c;javac编译class文件&#xff0c;java运行class&#xff0c;JVM执行main方法&#xff0c;加载链接初始化对应…

技术星河中的璀璨灯塔 —— 青云交的非凡成长之路

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Chromium127编译指南 Linux篇 - 额外环境配置(五)

引言 在成功获取 Chromium 源代码后&#xff0c;接下来我们需要配置适当的编译环境&#xff0c;以便顺利完成开发工作。本文将详细介绍如何设置 Python 和相关的开发工具&#xff0c;以确保编译过程无碍进行。这些配置步骤是开发 Chromium 的必要准备&#xff0c;确保环境设置…

基于华为atlas环境下的OpenPose人体关键点检测的人员跨越、坐立检测

整体思路&#xff1a; 收集数据集&#xff0c;数据集中包含3种类型的数据&#xff0c;分别是跨越、坐立、其他&#xff08;站立、睡着等等&#xff09;。3种类型的数据样本量持平。 首先基于OpenPose进行人体关键点的检测&#xff0c;得到人体的18个关键点。然后基于该算法将…

ubuntu20.04 加固方案-设置限制su命令用户组

一、编辑/etc/pam.d/su配置文件 打开终端。 使用文本编辑器&#xff08;如vim&#xff09;编辑/etc/pam.d/su文件。 vim /etc/pam.d/su 二、添加配置参数 在打开的配置文件的中&#xff0c;添加以下参数&#xff1a; auth required pam_wheel.so 创建 wheel 组 并添加用户 …

迅为itop-3568开发板AMP双系统使用手册之烧写AMP镜像

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

2024 年最佳解压缩软件免费下载推荐

在如今的信息时代&#xff0c;解压缩软件对于处理各种压缩文件至关重要。随着互联网的飞速发展&#xff0c;我们在日常工作和生活中会接触到大量的文件&#xff0c;而很多时候这些文件会以压缩的形式进行传输和存储。 对于个人用户而言&#xff0c;解压缩软件能够帮助我们轻松…

MySQL数据库之存储过程的创建与应用

存储过程 procedure 一.存储过程 作用&#xff1a;将经常使用的功能写成存储过程&#xff0c;方便后续重复使用。 二.创建存储过程 三.调用存储过程 call在计算机中是调用的意思 案例1&#xff1a;查看MySQL用户数 如上图所示&#xff0c;这是查看MySQL数据库中的user个数…

JAVA:数据库(mysql)编程初步学习\JDBC(附带项目文件)

给入门的同学初步了解JDBC&#xff0c;本人学疏才浅也希望可以给新人启发&#xff0c;编程的函数比较简单没有用更多库&#xff0c;方便给新人一个舒适的理解 tips&#xff1a;附带编程全套的代码&#xff0c;欢迎大家自由使用,仅供学习&#xff01; &#xff08;文件代码几千…

网页上视频没有提供下载权限怎么办?

以腾讯会议录屏没有提供下载权限为例&#xff0c;该怎么办呢&#xff1f; 最好的办法就是找到管理员&#xff0c;开启下载权限。如果找不到呢&#xff0c;那就用这个办法下载。 1.打开Microsoft Edge浏览器的扩展 2.搜索“视频下载”&#xff0c;选择“视频下载Pro” 3.点击“…

第15课 算法(下)

掌握冒泡排序、选择排序、插入排序、顺序查找、对分查找的的基本原理&#xff0c;并能使用这些算法编写简单的Python程序。 一、冒泡排序 1、冒泡排序的概念 冒泡排序是最简单的排序算法&#xff0c;是在一列数据中把较大&#xff08;或较小&#xff09;的数据逐次向右推移的…

USB摄像头使用V4L2采集图像\视频

背景 V4L2&#xff08;Video for Linux Two&#xff09;是Linux内核自带的一部分&#xff0c;专门用于处理视频设备的管理和控制。‌ V4L2框架提供了统一的API和抽象层&#xff0c;使得开发者可以编写通用的视频驱动程序&#xff0c;同时使用户空间的应用程序能够轻松地访问和…

栈和队列(三)

队列的链式存储表示和实现 链队的类型定义 typedef struct qnode{char data;struct qnode *next; }qnode,*queneptr;typedef struct{queneptr front;queneptr rear; }linkqueue; typedef struct qnode{}&#xff1a; 定义了一个名为qnode的结构体。结构体成员包括&#xff1a…