Elasticsearch:什么是自然语言处理(NLP)?

自然语言处理定义

自然语言处理 (natural language processing - NLP) 是人工智能 (AI) 的一种形式,专注于计算机和人们使用人类语言进行交互的方式。 NLP 技术帮助计算机使用我们的自然交流模式(语音和书面文本)来分析、理解和响应我们。

自然语言处理是计算语言学的一个子专业。 计算语言学是一个跨学科领域,结合了计算机科学、语言学和人工智能来研究人类语言的计算方面。

自然语言处理 (NLP) 的历史

自然语言处理的历史可以追溯到 20 世纪 50 年代,当时计算机科学家首次开始探索教会机器理解和产生人类语言的方法。 1950 年,数学家艾伦·图灵提出了他著名的图灵测试,将人类语音与机器生成的语音进行对比,看看哪个听起来更逼真。 这也是研究人员开始探索使用计算机翻译语言的可能性的时候。

在其研究的第一个十年中,NLP 依赖于基于规则的处理。 到 20 世纪 60 年代,科学家们开发出了利用语义分析、词性标记和句法分析来分析人类语言的新方法。 他们还开发了第一个语料库,这是大型机器可读文档,带有用于训练 NLP 算法的语言信息注释。

20 世纪 70 年代,科学家开始使用统计 NLP,它使用统计模型分析和生成自然语言文本,作为基于规则的方法的替代方案。

20 世纪 80 年代,人们开始关注开发更高效的算法来训练模型并提高其准确性。 这导致了 NLP 领域机器学习算法的兴起。 机器学习是使用大量数据来识别模式的过程,这些模式通常用于进行预测。

深度学习、神经网络和 Transformer 模型从根本上改变了 NLP 研究。 深度神经网络的出现结合 Transformer 模型和 “注意力机制 (attention mechanism)” 的发明,创造了 BERT 和 ChatGPT 等技术。 例如,注意力机制不仅仅是寻找与你的查询相似的关键字。 它根据每个连接术语的相关性来衡量其权重。 这是目前使用的一些最令人兴奋的 NLP 技术背后的技术。

自然语言处理是如何工作的?

自然语言处理以几种不同的方式工作。 基于人工智能的 NLP 涉及使用机器学习算法和技术来处理、理解和生成人类语言。 基于规则的 NLP 涉及创建一组可用于分析和生成语言数据的规则或模式。 统计 NLP 涉及使用从大型数据集导出的统计模型来分析和预测语言。 混合 NLP 结合了这三种方法。

基于人工智能的 NLP 方法如今最为流行。 与任何其他数据驱动的学习方法一样,开发 NLP 模型需要对文本数据进行预处理并仔细选择学习算法。

步骤一:数据预处理

这是清理和准备文本的过程,以便 NLP 算法可以对其进行分析。 一些常见的数据预处理技术包括文本挖掘(它获取大量文本并将其分解为数据)或标记化(将文本分割成单独的单元)。 这些单位可以是标点符号、单词或短语。 停用词删除是一种工具,可以消除对分析没有多大帮助的常见单词和言论文章。 词干提取和词形还原将单词分解为基本的词根形式,从而更容易识别其含义。 词性标记可识别句子中的名词、动词、形容词和其他词性。 句法分析分析句子的结构以及不同单词之间的关系。

步骤二:算法开发

这就是将NLP算法应用于预处理后的数据的过程。 它从文本中提取有用的信息。 以下是一些最常见的自然语言处理任务:

  • 情感分析 (sentiment analysis) 确定一段文本的情感基调或情绪。 情感分析将单词、短语和表达标记为积极、消极或中性。
  • 命名实体识别 (named entity recognition) 可识别命名实体并对其进行分类,例如人员、位置、日期和组织。
  • 主题建模 (topic modeling) 将相似的单词和短语分组在一起,以识别文档或文本集合中的主要主题或主题。
  • 机器翻译 (machine translation) 使用机器学习自动将文本从一种语言翻译成另一种语言。 语言建模预测特定上下文中单词序列的可能性。
  • 语言建模 (language modeling) 用于自动完成、自动更正应用程序和语音转文本系统。

NLP 的两个值得注意的分支是自然语言理解(natural language understanding - NLU)和自然语言生成(natural language generation - NLG)。 NLU 致力于使计算机能够使用与人类使用的类似工具来理解人类语言。 它的目标是使计算机能够理解人类语言的细微差别,包括上下文、意图、情感和歧义。 NLG 专注于从数据库或一组规则创建类人语言。 NLG 的目标是生成人类易于理解的文本。

自然语言处理的好处

自然语言处理的一些好处包括:

  • 沟通的提升:NLP 允许与搜索应用程序进行更自然的沟通。 NLP可以适应不同的风格和情绪,创造更便捷的客户体验。
  • 效率:NLP 可以自动执行许多通常需要人们完成的任务。 一些示例包括文本摘要、社交媒体和电子邮件监控、垃圾邮件检测和语言翻译。
  • 内容管理:NLP 可以根据个人用户的偏好识别最相关的信息。 了解上下文和关键词可以提高客户满意度。 使数据更易于搜索可以提高搜索工具的效率。

自然语言处理面临哪些挑战?

NLP仍然面临着许多挑战。 人类的言语是不规则的,并且常常含糊不清,根据上下文具有多种含义。 然而,程序员必须从一开始就向应用程序传授这些复杂的知识。

同音异义词和语法可能会混淆数据集。 即使是最好的情感分析也不能总能识别讽刺和反讽。 人类需要数年时间才能了解这些细微差别,即使如此,也很难读懂短信或电子邮件的语气。

文本以多种语言发布,而 NLP 模型则针对特定语言进行训练。 在输入 NLP 之前,你必须应用语言识别来按语言对数据进行排序。

不具体和过于笼统的数据会限制 NLP 准确理解和传达文本含义的能力。 对于特定领域,需要比大多数 NLP 系统更多的数据才能做出实质性主张。 特别是对于依赖最新、高度具体信息的行业。 新的研究,例如 ELSER(Elastic Learned Sparse EncodeR),正在努力解决这个问题,以产生更相关的结果。

处理人们的个人数据也会引起一些隐私问题。 在医疗保健等行业,NLP 可以从患者档案中提取信息来填写表格并识别健康问题。 这些类型的隐私问题、数据安全问题和潜在的偏见使得 NLP 难以在敏感领域实施。

自然语言处理的商业应用有哪些?

NLP 具有广泛的商业应用:

  • 聊天机器人和虚拟助理:用户可以与你的系统进行对话。 这些是常见的客户服务工具。 他们还可以指导用户完成复杂的工作流程或帮助他们浏览网站或解决方案。
  • 语义搜索:通常在电子商务中用于生成产品推荐。 它通过分析搜索引擎并使用基于知识的搜索来解码关键字的上下文。 它解释用户意图以提供更相关的建议。
  • NER:识别文本中的信息以填写表格或使其更易于搜索。 教育机构可以用它来分析学生的写作并自动评分。 此外,文本转语音和语音转文本功能使残障人士更容易获取信息并更轻松地进行沟通。
  • 文本摘要:各行业的研究人员可以快速将大型文档总结为简洁、易理解的文本。 金融业利用这一点来分析新闻和社交媒体,以帮助预测市场趋势。 政府和法律行业用它从文件中提取关键信息。

NLP的未来是什么?

ChatGPT 和生成式人工智能带来了变革的希望。 随着 ChatGPT 等技术进入市场,NLP 的新应用可能即将出现。 我们可能会看到与语音识别、计算机视觉和机器人技术等其他技术的集成,这将产生更先进和复杂的系统。

NLP 也将变得更加个性化,使机器能够更好地理解个人用户并调整他们的响应和建议。 能够理解和生成多种语言的 NLP 系统是国际业务的主要增长领域。 最重要的是,NLP 系统在生成听起来自然的语言方面不断变得更好:它们听起来越来越人性化。

开始使用 Elastic 进行 NLP

Elastic Stack 8.0 的发布引入了将 PyTorch 模型上传到 Elasticsearch 的功能,以在 Elastic Stack 中提供现代 NLP,包括命名实体识别和情感分析等功能。

Elastic Stack 目前支持符合标准 BERT 模型接口并使用 WordPiece 标记化算法的 Transformer 模型。

以下是目前与 Elastic 兼容的架构:

  • BERT
  • BART
  • DPR bi-encoders
  • DistilBERT
  • ELECTRA
  • MobileBERT
  • RoBERTa
  • RetriBERT
  • MPNet
  • 具有上述转换器架构的 SentenceTransformers 双编码器

Elastic 可让你利用 NLP 提取信息、对文本进行分类并为你的业务提供更好的搜索相关性。 开始使用 Elastic 进行 NLP。

NLP 资源

  • 更深入地研究自然语言处理 (NLP)
  • 如何部署 NLP:文本嵌入和向量搜索
  • NLP 模型和向量搜索简介

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV-Python:计算机视觉介绍

目录 1.背景 2.计算机视觉发展历史 3.计算机视觉主要任务 4.计算机视觉应用场景 5.知识笔记 1.背景 OpenCV是计算机视觉的一个框架,想要学习OpenCV,需要对计算机视觉有一个大致的了解。计算机视觉是指通过计算机技术和算法来模拟人类视觉系统的能力…

Go语言实现深度学习的正向传播和反向传播

文章目录 开发前言开发理论图解理论数据类型数学函数数据节点统一抽象变量数据节点常量数据节点单目运算封装双目运算封装算子节点统一抽象基础算子加法算子减法算子乘法算子除法算子指数算子对数算子正切算子正弦算子余弦算子数据流图正向传播反向传播运行示例开发总结 开发前…

甄知黄建华:从“天赋平平”到IT行业“六边形战士”,探索出企业数智化转型的“强IT”之路

本期我们先抛开人物和主体不表,从大环境开始谈起。随着科技的快速发展和全球商业环境的不断变化,中国企业对灵活性、创新性、全球化和效率的需求是迫切的,进行数字化转型来支撑企业的业务变革、组织优化已是业界共识。如何根据企业的实际情况…

Hdoop学习笔记(HDP)-Part.17 安装Spark2

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

接口测试 —— Requests库介绍

1、Requests库 Requests库是用Python语言编写,基于urllib3模块,采用Apache2 Licensed开源协议的 HTTP 库。 虽然Python的标准库中urllib3模块已经包含了平常我们使用的大多数功能,但是它的 API使用起来让人感觉不太友好。而Requests库使用的…

揭秘原型链:探索 JavaScript 面向对象编程的核心(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

type-c充电器输出电压5V9V12V15V20V PD协议诱骗快充应用方案

Type-C接口的PD充电器(如iPhone的20W充电器)默认是没有电压输出的,想要让Type-C的充电器输出5V、9V、12V、15V、20V,只需要在产品上使用一颗快充取电芯片XSP08即可。 工作原理: 各类小家电产品如平板电脑、智能穿戴产…

申请Azure学生订阅——人工验证

一:联系客服进行人工验证 点击 Services Hub 填写资料申请人工验证 点击 Azure - Sign up 进行学生验证 二:与客服的邮件沟通的记录 ​​​​一、结果(输入客服给的验证码后,笔者便得到了学生订阅): 二…

TypeScript编程语言学习,为学习HarmonyOS开发做准备

1. 编程语言 ArkTS是HarmonyOS优选的应用开发语言,它在TypeScript(TS)的基础上,匹配ArkUI扩展,扩展了声明式UI、状态管理等相应的能力。 JavaScript(JS),使用在Web应用开发&#xf…

linux之buildroot(3)配置软件包

Linux之buildroot(3)配置软件包 Author:Onceday Date:2023年11月30日 漫漫长路,才刚刚开始… 全系列文章请查看专栏: buildroot编译框架_Once_day的博客-CSDN博客。 参考文档: Buildroot - Making Embedded Linux Easymdev.t…

C++——初始化列表

初始化列表&#xff1a;一一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成员列表&#xff0c;每个“成员变量”后面跟一个放在括号中的初始值或表达式。 #include <iostream> using namespace std; class Date { public:Date(int year, int month, int day): _ye…

交换综合实验

目录 一、实验拓扑 二、实验要求 三、实验步骤 1、链路聚合&#xff08;配置Eth-trunk&#xff09; 2、配置vlan&#xff08;创建划分vlan&#xff0c;配置trunk干道&#xff09; 3、MSTP配置 4、VRRP配置 5、DHCP配置 6、vlan互通 7、NAT配置&#xff08;做ACL&#…

逻辑回归与正则化 逻辑回归、激活函数及其代价函数

逻辑回归、激活函数及其代价函数 线性回归的可行性 对分类算法&#xff0c;其输出结果y只有两种结果{0&#xff0c;1}&#xff0c;分别表示负类和正类&#xff0c;代表没有目标和有目标。 在这种情况下&#xff0c;如果用传统的方法以线性拟合 &#xff08; h θ ( x ) θ T…

scrapyd及gerapy的使用及docker-compse部署

一、scrapyd的介绍 scrapyd是一个用于部署和运行scrapy爬虫的程序&#xff0c;它允许你通过JSON API(也即是web api)来部署爬虫项目和控制爬虫运行&#xff0c;scrapyd是一个守护进程&#xff0c;监听爬虫的运行和请求&#xff0c;然后启动进程来执行它们 scrapyd的安装 scr…

opencv知识库:基于cv2.flip()函数对图像进行随机翻转(水平/垂直)

需求场景 欲对RGB格式的lena图像进行随机翻转&#xff0c;要求这些图像不翻转、水平翻转、垂直翻转的概率都为1/3。 功能代码 import cv2 import random# 读取并展示图像 img cv2.imread("lena.jpg") cv2.imshow(lena, img) cv2.waitKey(0)for i in range(6): #…

matlab操作方法(一)——向量及其操作

1.向量及其操作 matlab是英文Matrix Laboratory&#xff08;矩阵实验室&#xff09;的简称&#xff0c;是基于矩阵运算的操作环境。matlab中的所有数据都是以矩阵或多维数组的形式存储的。向量和标量是矩阵的两种特殊形式 向量是指单行或者单列的矩阵&#xff0c;它是构成矩阵…

QT 中 QDateTime::currentDateTime() 输出格式备查

基础 QDateTime::currentDateTime() //当前的日期和时间。 QDateTime::toString() //以特定的格式输出时间&#xff0c;格式 yyyy: 年份&#xff08;4位数&#xff09; MM: 月份&#xff08;两位数&#xff0c;07表示七月&#xff09; dd: 日期&#xff08;两位数&#xff0c…

代码浅析DLIO(四)---位姿更新

0. 简介 我们刚刚了解过DLIO的整个流程&#xff0c;我们发现相比于Point-LIO而言&#xff0c;这个方法更适合我们去学习理解&#xff0c;同时官方给出的结果来看DLIO的结果明显好于现在的主流方法&#xff0c;当然指的一提的是&#xff0c;这个DLIO是必须需要六轴IMU的&#x…

Redis--10--Pipeline

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Pipeline举例比较普通模式与 PipeLine 模式小结&#xff1a; Pipeline 前面我们已经说过&#xff0c;Redis客户端执行一条命令分为如下4个部分:1&#xff09;发送命…

基于Java SSM框架+Vue实现汉服文化平台网站项目【项目源码+论文说明】

基于java的SSM框架Vue实现汉服文化平台系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个汉服文化平台网站 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将…