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 模型和向量搜索简介

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一进三出宿舍限电模块的改造升级

一进三出宿舍限电模块改造升级石家庄光大远通电气有限公司智能模块功能特点: 电能控制功能:可实施剩余电量管理,电量用完时将自动断电; 剩余电量可视报警提示功能:剩余电量可视,并当电量剩余5度时&#xff…

R语言中的机器学习

转载自 R中文论坛(http://rbbs.biosino.org/Rbbs/posts/list/192.page) Machine Learning & Statistical Learning (机器学习 & 统计学习) 网址:http://cran.r-project.org/web/views/MachineLearning.html维护人员:To…

C#和MySQL技巧分享:日期的模糊查询

文章目录 前言一、EF Core 模糊查询二、MySql 日期模糊查询分析和优化2.1 测试环境准备2.1.1 创建数据库2.1.2 查看测试数据 2.2 查询日期的运行效率对比2.3 运行效率优化 三、EF Core 模糊查询优化3.1 字符串转日期3.2 使用日期格式查询 四、优化建议总结 前言 在处理数据库查…

新手必读!网上买的手机卡和实体店一样吗?对比一下你就知道了!

当我们在刷短视频时,总会看到很多关于流量卡的广告,其中各种优惠套餐真的让人“难以置信”,看到这里,很多朋友就会有疑问了,网上购买的流量卡是真是假呢?和线下营业厅的一样吗,接下来&#xff0…

go开发之个人微信号机器人开发

简要描述: 下载消息中的文件 请求URL: http://域名地址/getMsgFile 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型…

Re56:读论文 A Brief History of the Changing Roles of Case Prediction in AI and Law

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:A Brief History of the Changing Roles of Case Prediction in AI and Law 论文下载地址:https://journals.latrobe.edu.au/index.php/law-in-context/article/view/88 本…

Linux Spug自动化运维平台本地部署与公网远程访问

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件…

版本控制系统Git学习笔记-Git分支操作

文章目录 概述一、Git分支简介1.1 基本概念1.2 创建分支1.3 分支切换1.4 删除分支 二、新建和合并分支2.1 工作流程示意图2.2 新建分支2.3 合并分支2.4 分支示例2.4.1 当前除了主分支,再次创建了两个分支2.4.2 先合并test1分支2.4.3 合并testbranch分支 2.5 解决合并…

算法基础三

电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits "…

4.10 文件的读写(C语言实现)

【题目描述】创建一个后缀名为txt的文件&#xff0c;并向该文件中写入一个字符串&#xff0c;保存起来。再打开该文件&#xff0c;读出文件中的内容。 【代码实现】 // 文件的读写 # include <stdio.h> # include <stdlib.h> # include <time.h> int main()…

PG时间计算

PG数据库&#xff0c;时间计算使用场景总结 日期之差 --**获取秒差** SELECT round(date_part(epoch, TIMESTAMP 2019-05-05 12:11:20 - TIMESTAMP 2019-05-05 10:10:10)); --**获取分钟差** SELECT round(date_part(epoch, TIMESTAMP 2019-05-05 12:11:20 - TIMESTAMP 20…

识别当前是浏览器还是微信浏览器的问题

/mozilla|chrome|safari|firefox/.test(navigator.userAgent) /mozilla|chrome|safari|firefox/.test(navigator.userAgent.toLowerCase() 这两个的值是相反的, console.log(/mozilla|chrome|safari|firefox/.test(navigator.userAgent),/mozilla|chrome|safari|firefox/.test…

【集合篇】Java集合概述

Java 集合概述 集合与容器 容器&#xff08;Container&#xff09;是一个更广泛的术语&#xff0c;用于表示可以容纳、组织和管理其他对象的对象。它是一个更高层次的概念&#xff0c;包括集合&#xff08;Collection&#xff09;在内。集合&#xff08;Collection&#xff0…

C++的std命名空间

总以为自己懂了&#xff0c;可是仔细想想&#xff0c;多问自己几个问题&#xff0c;发现好像又不是很清楚 命名空间&#xff08;Namespace&#xff09;是C中一种用于解决命名冲突问题的机制&#xff0c;它能够将全局作用域划分为若干个不同的区域&#xff0c;每个区域内可以有…

【使用`model.status`来获取gurobi求解过程中的模型状态】

在Gurobi中&#xff0c;你可以使用model.status来获取求解过程中的模型状态。可以使用了model.status来检查模型是否找到最优解。模型状态是一个Gurobi的常量&#xff0c;表示了求解过程中的不同状态。 以下是一些常见的模型状态&#xff1a; GRB.OPTIMAL: 最优解被找到。GRB…

深入理解Servlet(中)

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 上篇有一张图&#xff…

TypeScript与JavaScript封装事件的防抖与节流

防抖和节流都是可以限制短时间内事件的频繁触发导致前端资源开销过大或者对后端服务器造成压力的问题。 1. 防抖 防抖是当事件被频繁触发时&#xff0c;只有最后一次事件会成功执行&#xff0c;一般的实现方式是&#xff0c;每次触发先检查是否有定时器存在&#xff0c;有的话…

Redis的安装

本文采用原生的方式安装Redis&#xff0c;Redis的版本为5.0.5 安装 下载 下载网站&#xff1a;https://download.redis.io/releases/ wget http://download.redis.io/releases/redis-5.0.5.tar.gz解压 tar -zxvf redis-5.0.5.tar.gz进入redis目录 cd redis-5.0.5执行编译…

c++滑动窗口

C中实现滑动窗口&#xff0c;可以使用双指针法。双指针法适用于有序数组或者字符串的问题&#xff0c;可以将时间复杂度从O(n^2)优化到O(n)。 具体实现步骤如下&#xff1a; 1. 定义left和right两个指针&#xff0c;分别指向滑动窗口的左右边界。 2. 当滑动窗口满足条件时&am…

u盘一插上就提示格式化解决办法,帮助重新使用,避免数据丢失

在我们使用U盘的过程中&#xff0c;有时会遇到一插上就提示格式化的问题。这个问题可能会给我们带来很多麻烦&#xff0c;因为格式化操作会导致数据的丢失。为了解决这一问题&#xff0c;本文将介绍一些解决办法&#xff0c;帮助读者重新使用U盘&#xff0c;并避免数据丢失的风…