自然语言处理学习笔记(一)————概论

news2024/11/17 1:45:01

目录

1.自然语言处理概念

2.自然语言与编程语言的比较

(1)词汇量:

(2)结构化:

(3)歧义性:

(4)容错性:

(5)易变性:

(6)简略性:

3.自然语言处理的层次

(1)层次图

 (2)自然语言处理系统输入源

 (3)词法分析

(4)信息抽取

(5)文本分类与文本聚类

(6)句法分析

(7)语义分析

(8)篇章分析

(9)指代消解

(10)其他 NLP 任务

4. 自然语言处理的流派 

(1)基于规则的专家系统

(2)基于统计的学习方法(机器学习)

5.自然语言处理方法发展历史


1.自然语言处理概念

  • 自然语言处理(Natural Language Processing,NLP)是一门融合了计算机科学、人工智能以及语言学 的交叉学科。
  • 自然语言处理是人工智能的一个领域。
  • 自然语言处理的终极目标是理解人类语言 。

2.自然语言与编程语言的比较

(1)词汇量:

        自然语言的词汇量的丰富程度远远超过编程语言 。C 语言一共有 32 个关键字,Java语言则有 50 个。而汉语至今共收录了 56008 个词条,并且仍在不断增加。

(2)结构化:

        编程语言是“ 结构化 ”的,而自然语言是“ 非结构化 ”的

结构化指的是信息具有明确的结构关系,可以通过明确的机制来读写 。编程语言通过极少的词汇量 + 极强的结构化实现了各式各样的程序代码。自然语言通过极多的词汇量 + 极弱的结构化实现了五花八门的表达方式。

例如,Python 用 apple.funder='乔布斯' 可以明确定义苹果公司的创始人,而中文我们可以有很多不同的说法来表达这个意思。

(3)歧义性:

        自然语言含有大量“歧义”,而编程语言不允许存在“歧义”。自然语言中可能存在大量的歧义,而这些歧义在不同的语境下可能表现为不同的意思 ,而机器所处理的编程语言则不能具有任何歧义 ,有一点歧义就会导致代码的运行错误、编译错误。举一个经典的笑话:

他说:“她这个人真有意思(funy)。”她说:“他这个人怪有意思的(funy)。”于是人们以为他们有了意思(wish),并让他向她意思意思(express)。他火了:“我根本没有那个意思(thought)!”她也生气了:“你们这么说是什么意思(Intention)?”事后有人说:“真有意思(funny)。”也有人说:“真没意思(nonsense)。”

(4)容错性:

        编程语言受到编译器的管理,不存在“错误”,而自然语言存在大量的“不规范”和“错误”,而我们人类基本都可以理解这些有一些小错误的文本的意思。

(5)易变性:

        编程语言变化缓慢温和,自然语言则每时每刻都在变化

(6)简略性:

        自然语言经常省略大量背景知识和常识。而这些知识是计算机不拥有的。我们经常省略大量背景知识或常识,比如我们会对朋友说“老地方见” ,而不必指出“ 老地方” 在哪里。对于机构名称,我们经常使用简称,比如“工行” “地税局” ,假定对方熟悉该简称。

3.自然语言处理的层次

(1)层次图

 (2)自然语言处理系统输入源

        自然语言处理系统的输入源一共有 3 个 ,即语音、图像与文本 。其中文本处理是重中之重 ,其他两种数据最后也一般先要转化为文本才能进行后续的处理任务 ,对应的处理分别为语音识别(Speech Recognition)和光学字符识别(Optical Character Recognition,OCR)。

 (3)词法分析

        中文分词、词性标注和命名实体识别,这 3 个任务都是围绕词语进行分析,统称词法分析 。词法分析的主要任务是将文本分隔为有意义的词语 (中文分词) ,确定每个词语的类别和浅层的歧义消除(词性标注),并且识别出一些较长的专有名词 ( 命名实体识别) 。对中文而言,词法分析常常是后续高级任务的基础。在流水线式的系统中,如果词法分析出错,则会波及后续任务。词法分析可以说是自然语言处理的基础任务,目前中文词法分析已经非常成熟。

(4)信息抽取

        词法分析之后,文本已经呈现出部分结构化的趋势 。至少,计算机看到的不再是一个超长的字符串,而是有意义的单词列表(分词结果),并且每个单词还附有自己的词性(词性标注结果)以及一些标签(命名实体识别)。根据这些分词后的单词与标签,通过信息抽取我们可以抽取出一部分有用的信息。例如通过高频词抽取出关键词;根据词语之间的统计学信息抽取出关键短语乃至句子。

(5)文本分类与文本聚类

        将文本拆分为一系列词语之后,我们还可以在文章级别做一系列分析。把许多文档分类进行整理称作文本分类,例如判断一段话是褒义还是贬义的,判断一封邮件是否是垃圾邮件。把相似的文本归档到一起,或者排除重复的文档,而不关心具体类别,此时进行的任务称作文本聚类

(6)句法分析

        词法分析只能得到零散的词汇信息,通过句法分析可以得到句子之间的语法关系 。例如,在一些问答系统中,比如我们问智能语音助手“查询刘医生主治的内科病人”,用户真正想要查询的不 是“刘医生” ,也不是“内科” ,而是“病人” 。但这三个词语都是名词,只有通过句法分析清楚他们之间的语法关系才能理清。

(7)语义分析

        相较于句法分析,语义分析侧重语义而非语法 。 它包括词义消歧(确定一个词在语境中的含义,而不是简单的词性)、 语义角色标注(标注句子中的谓语与其他成分的关系) 乃至语义依存分析(分析句子中词语之间的语义关系 )。

(8)篇章分析

        篇章分析可以自动分析自然语言语篇或者话语的组成结构、句际关系、语句衔接、语义连贯以及交际功能并得到相应内部表示的过程、技术和方法。简单来说就是从更为广的视角—篇章角度进行分析,自然最为复杂也最为困难,目前很不成熟。

(9)指代消解

        指代消解指在文本中确定代词指向哪个名词短语的问题,举个例子:

今天晚上 10 点有国足 的比赛,他们 的对手是泰国队 。在过去几年跟泰国队 的较量中他们 处于领先,只有一场惨败 1-5。

        指代消解要做的就是分辨文本中的 他们 指的到底是 国足 还是 泰国队。

(10)其他 NLP 任务

        上述的这些任务是 NLP 中最为基础也最为重要的基本任务,除此之外还有一些更加偏向应用、与终端产品联系更为紧密的任务:

  • 自动问答,例如 Siri。
  • 自动摘要,为一篇长文档生成简短的摘要。
  • 自动翻译,例如中文自动翻译英文。

注: 信息检索,一般认为信息检索(Information Retrieve, IR)是区别于自然语言处理的独立学科。虽然两者具有密切的联系,但 IR 的目标是查询信息,而 NLP 的目标是理解语言。

4. 自然语言处理的流派 

(1)基于规则的专家系统

        专家系统是由专家人工制定的确定性流程 ,只是看起来像人工智能而已。本质上仍然是“有多少人工,就有多少智能。”专家系统在 NLP 领域的应用有波特词干算法(Poter stemming algorithm),广泛应用于英文词干提取,部分规则例如:

        专家系统要求设计者对所处理的问题具备深入的理解,并且尽量以人力全面考虑所有可能的情况。它最大的弱点是难以拓展。当规则数量增加或者多个专家维护同一个系统时,就容易出现冲突。显然对于复杂的自然语言,尤其是中文,可能只有很小很小的领域才能应用专家系统。这种方法基本已经落伍了。

(2)基于统计的学习方法(机器学习)

        现在机器学习的本质实际上就是“统计智能”,机器学习的很多算法都是来源于统计学,自然语言处理同样不例外,统计学习方法其实就是机器学习的别称,目前是自然语音处理中最为重要的一种方法。统计,指的是在语料库上进行统计,让机器自动学习一些自然语言的规律 。语料库指的是人工标注的结构化文本。

5.自然语言处理方法发展历史

        既然自然语言处理位于机器学习的应用层,那么自然语言处理的历史如同机器学习的历史一样,经历了从逻辑规则 到统计模型 的发展。

 

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

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

相关文章

【143. 重排链表】

来源:力扣(LeetCode) 描述: 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不…

Redis (一)消息订阅和发送测试

〇、redis 配置 1、概况 本文基于 Ubuntu20.04 云服务器配置Redis,且在本地进行 Redis 测试。 2、目录概况 一、配置文件 位于 /config/app.yml 中,目的用于 Redis 初始化: redis:addr: "39.104.**.28:6379"password: "p…

盛元广通实验室教学仪器设备综合信息管理系统LIMS

实验室作为学生以及教师进行科研教学环境,对于实验室设备的使用情况、维护、借还、台账管理、盘点、报废等需要得到有效的管理,以促进科研教学工作的高质量开展,介于传统手动管理方式越发不能满足现代科研的飞速发展需要,实验室的…

【element-plus】 table表格每行圆角解决方案 element也通用

系列文章目录 【Vue3ViteTselement-plus】使用tsx实现左侧栏菜单无限层级封装 前言 我们在使用element-plus或element 的table时是否有时UI给到的UI效果是如下面这样的,但是我们翻遍了组件库的文档 调整了很多次样式 发现在 左右侧栏固定的时候 普通的方法是完全…

二阶阻尼弹簧系统的simulink仿真(s函数)

文章目录 前言一.非线性反步法1.原系统对应的s函数脚本文件(仅修改模板的初始化函数、导数函数和输出函数三个部分)2.控制器对应的s函数脚本文件(仅修改模板的初始化函数和输出函数两个部分)3.其他参数脚本文件4.输入5.输出&#…

【Git系列】分支操作

🐳分支操作 🧊1. 什么是分支🧊2. 分支的好处🧊3. 分支操作🪟3.1 查看分支🪟3.2 创建分支🪟3.3 切换分支 🧊4. 分支冲突🪟4.1 环境准备🪟4.2 分支冲突演示 &am…

NPP及碳源、碳汇模拟,python蒸散发与植被总初级生产力估算

CASA模型是一个基于过程的遥感模型(Potteret al,1993;Potter et al,1994),耦合了生态系统生产力和土壤碳、氮通量,由网格化的全球气候、辐射、土壤和遥感植被指数数据集驱动。模型包括土壤有机物、微量气体通量、养分利…

DelphiZXingQRCode 库:轻松集成二维码生成功能到 Delphi 项目中

一、下载地址:GitHub - foxitsoftware/DelphiZXingQRCode: Delphi port of QR Code functionality from ZXing, a barcode image processing library. 二、使用步骤: 1)引用单元文件。 //引用单元 usesDelphiZXIngQRCode2)编写…

AD21 PCB设计的高级应用(五)模块复用的操作

(五)模块复用的操作 1.利用Room实现相同模块复用2.复制粘贴功能实现模块复用 1.利用Room实现相同模块复用 本小节介绍 Altium Designer 两种常用模块复用方法:一种是利用 Room 实现相同模块复用,另一种是利用复制粘贴功能实现。 1.利用Room实现相同模块…

《面试1v1》Kafka的ack机制

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

数组的使用(逆序、冒泡)

内存连续数据类型相同从0开始索引 找出数组中的最大值 #include <iostream> #include <stdlib.h> //随机数所在文件 using namespace std;int main() {int arr[5]{104,134,145,129,89};//初始化没有填的为0 int max0;for(int i0;i<5;i){if(arr[i]>max){ma…

算法综合篇专题一:双指针问题

"就算没有看清那株灿烂的花蕊&#xff0c;也应该放声歌颂赞美鲜红的玫瑰" 1、移动零 (1) 题目解析 (2) 算法原理 class Solution { public:void moveZeroes(vector<int>& nums) {for(int cur0,dest-1;cur<nums.size();cur){if(nums[cu…

【Unity造轮子】实现一个类csgo的武器轮盘功能

文章目录 前言素材导入开始1.放背景和中间的圆圈&#xff0c;调整合适的宽高和位置2.添加选择图像框3.添加一些武器道具选择4.书写脚本RadialMenuManager5.绑定脚本和对象6.运行效果&#xff0c;按tab键开启关闭轮盘7.优化添加显示选中的武器文本8.添加鼠标选中放大的效果9.添加…

ModaHub魔搭社区:国产大模型名录和产品信息一览表114个

取名类型 公司名 大模型名字 序号 旧词新组 百度 文心一言 1 阿里 通义千问 2 知乎 知海图 3 云知声 山海 4 中国科学院计算技术研究所 百聆

算法通过村第二关-链表青铜笔记

文章目录 再战链表|反转链表剑指 Offer II 024. 反转链表熟练掌握这两种解法建立头节点的解决思路不采用建立头节点的方法采用循环/递归的方式解决 总结 再战链表|反转链表 提示&#xff1a;多拿些酒来&#xff0c;因为生命只有乌有。 剑指 Offer II 024. 反转链表 如果不使用…

Excel修改日期格式,改变日期的筛选方式

我们有两列日期数据&#xff1a; 左边这一列筛选会显示&#xff1a; 右边这一列筛选会显示&#xff1a; 修改格式&#xff0c;将【日期1】改为【日期2】 将【日期1】的格式修改为文本格式即可 修改格式&#xff0c;将【日期2】改为【日期1】 选中日期2&#xff0c;点击【数据…

实用调试技巧(1)

什么是bug&#xff1f;调试是什么&#xff1f;有多重要&#xff1f;debug和release的介绍。windows环境调试介绍。一些调试的实例。如何写出好&#xff08;易于调试&#xff09;的代码。编程常见的错误。 什么是Bug 我们在写代码的时候遇到的一些问题而导致程序出问题的就是Bu…

C语言——函数栈帧的创建和销毁

Hello&#xff0c;好久没有写博客了&#xff0c;前两份都是之前写的&#xff0c;看来最近有点懈怠&#xff0c;最近也得快点找回学习的状态&#xff0c;那今天开始我们新的讲解 在我们刚开始学习C语言的时候&#xff0c;不知道大家有没有困惑&#xff0c;比如我们在使用局部变量…

vue 表单form-item模板(编辑,查看,新建)

目录 formatFormData 后端数据格式​编辑 JSON解析和生成 加载&#xff08;请求前&#xff0c;await后&#xff09; formComp formatFormData 后端数据格式 为空的&#xff0c;可以直接不提交/提交null/undefined JSON解析和生成 var str {"name": "…

ERROR: No matching distribution found for wxpyhton

ERROR: No matching distribution found for wxpyhton pip install 库包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.compip install wxpython -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com