自然语言处理学习笔记(一)————概论
目录
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.自然语言处理方法发展历史
既然自然语言处理位于机器学习的应用层,那么自然语言处理的历史如同机器学习的历史一样,经历了从逻辑规则 到统计模型 的发展。

相关文章:
自然语言处理学习笔记(一)————概论
目录 1.自然语言处理概念 2.自然语言与编程语言的比较 (1)词汇量: (2)结构化: (3)歧义性: (4)容错性: (5࿰…...
C# wpf程序
--App.xaml namespace WpfMyproject { /// <summary> /// App.xaml 的交互逻辑 /// </summary> public partial class App : PrismApplication { protected override Window CreateShell() { return Container.R…...
4G WWAN设备类型
WWAN设备类型 USB dongle是设备接入互联网的重要方式之一,典型的通过USB接口与主设备连接,然后主设备通过4G/5G接入互联网,作为移动宽带设备,它有那些设备类型及暴露方式呢? 移动宽带设备类型:ModemManage…...
windows环境下安装elasticsearch、kibana
通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候,要非常小心,因为100等于100、但是200不等于200,当然,如果你会一点小花招,也可以让100不等于100、让200等于200。(运算符比较…...
Java Selenium WebDriver 网页填报
一、windows环境安装配置 1.安装chrome浏览器 在“关于chrome”界面,查看浏览器版本号 2.下载chromeDriver 在https://registry.npmmirror.com/binary.html?pathchromedriver/下载对应版本的驱动(如果浏览器版本过新,建议下载最接近的版…...
【NLP概念源和流】 06-编码器-解码器模型(6/20 部分)
一、说明 在机器翻译等任务中,我们必须从一系列输入词映射到一系列输出词。读者必须注意,这与“序列标记”不同,在“序列标记”中,该任务是将序列中的每个单词映射到预定义的类,如词性或命名实体任务。 作者生成 在上面的...
运维必备的免费在线画图工具,你觉得哪个最好用呢
都说一图胜千言,一个IT工程师如果能画的一手好图,无论是在方案选项、还是技术交流,都能快速表达自己的想法,让你的思路更加的直观明了;市面上的制图工具有很多,下面就推荐几款好用且免费的工具,…...
skywalking全链路追踪
文章目录 一、介绍二、全链路追踪1. 测试1 - 正常请求2. 测试2 - 异常请求 三、过滤非业务请求链路1. 链路忽略插件2. 配置3. 测试 一、介绍 在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构…...
Nacos配置中心设置Mongodb
目录 1.common模块导入nacos config依赖 2.common模块新建bootstrap.yaml 3.在自己的模块导入common模块依赖 4.打开nacos新建配置,发布 5.运行服务并测试 效果:在部署完成后,其他人可以自动连接到你本地mongoDB数据库,无需再…...
【Spring Boot】请求参数传json对象,后端采用(map)CRUD案例(101)
请求参数传json对象,后端采用(map)接收的前提条件: 1.Spring Boot 的Controller接受参数采用:RequestBody 2.需要一个Json工具类,将json数据转成Map; 工具类:Json转Map import com…...
微软开测“Moment4”启动包:Win11 23H2要来了
近日, 有用户在Win11最新的7月累积更新中发现,更新文件中已经开始出现了对“Moment4”的引用。 具体来说,在7月累积更新中,微软加入了“Microsoft-Windows-UpdateTargeting-ClientOS-SV2Moment4-EKB”“Microsoft-Windows-23H2Ena…...
SpringCloud《Eureka、Ribbon、Feign、Hystrix、Zuul》作用简单介绍
概述 SpringCloud是一个全家桶,包含多个组件。 本文主要介绍几个重要组件,也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。 一、业务场景介绍 业务流程,支付订单功能 订单服务改变为已支付订单服务调用库存服务,扣减…...
运维项目—K8S命令
文章目录 一、基本操作1、命名空间kubectl get ns 获取命名空间kubectl get ns default -o yaml 以yaml的格式查看某个nskubectl describe ns hoc-prod 查看某个ns详情1、命名空间与Podkubectl get pods --all-namespaces查看所有命名空间下的所有podkubectl get pod -A查看所有…...
java框架整合Springmvc+···+maven
框架整合: Springmvc Mybatis Shiro(权限) REST(服务) WebService(服务) JMS(消息) Lucene(搜搜引擎) Quartz(定时调度) Bootstrap Html5(支持PC、IOS、Android) 系统模块: 1. 用户管理: 用户信…...
答辩PPT怎么做?在线PPT软件哪个好?
又是一年毕业季,相信很多毕业生都开始准备论文答辩,有些同学正在为论文奋夜苦战,有些则是为论文答辩PPT而烦恼。做PPT要用什么软件好呢?这篇文章就来告诉你。 当下有很多PPT制作工具,其中自然也包括Office三件套。这些…...
Astro + Vercel 快速搭建自己的博客网站
Astro 和 Vercel 彼此相得益彰,前者提供出色的开发者体验,用于构建现代静态站点,而后者负责部署和托管代码。 两者结合我们就可以轻轻松松零成本搭建自己的博客网站。查看示例。 步骤 1,创建评论仓库 在部署博客之前ÿ…...
TensorFlow
什么是 TensorFlow TensorFlow是一个开源的机器学习框架,由Google于2015年推出。它被设计用来构建深度神经网络和其他机器学习模型,从而可以实现图像识别、语音识别、自然语言处理、推荐系统、搜索引擎、预测和控制等应用。TensorFlow是一个基于数据流图…...
【iOS RunLoop】
文章目录 前言-什么是RunLoop?默认情况下主线程的RunLoop原理 1. RunLoop对象RunLoop对象的获取 CFRunLoopRef源码部分(引入线程相关) 2. RunLoop和线程3. RunLoop相关的类RunLoop相关类的实现CFRunLoopModeRef五种运行模式CommonModes CFRun…...
阿里云平台注册及基础使用
首先进入阿里云官网: 阿里云-计算,为了无法计算的价值 点击右上角“登录/注册”,如果没有阿里云账号则需要注册。 注册界面: 注册完成后需要开通物联网平台公共实例: 注册成功后的登录: 同样点击右上角的…...
Mr. Cappuccino的第58杯咖啡——MacOS配置Maven和Java环境
MacOS配置Maven和Java环境 查看Mac使用的是哪个shell下载并准备Maven下载Maven配置前准备 下载并安装JDK下载JDK安装JDK 配置Maven和Java环境添加配置加载配置 验证环境 查看Mac使用的是哪个shell echo $SHELL如果使用的是bash,则使用以下命令 open ~/.bash_profi…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
