NLP自然语言——基础

一、介绍

1、概念

NLP(Natural Language Processing,自然语言处理)是计算机科学领域以及人工智能领域的一个重要的研究方向,它研究用计算机来处理、理解以及运用人类语言(如中文、英文等),达到人与计算机之间进行有效通讯。所谓“自然”乃是寓意自然进化形成,为了区分一些人造语言(如:c++、java等人为设计的语言)这些年, NLP 研究取得了长足的进步,逐渐发展成独立的学科,从自然语言的角度出发,NLP 基本可以分为两个部分 自然语言处理以及自然语言生成,演化为理解和生成文本的任务。
在这里插入图片描述

2、分类

NLP 基本可以分为两个部分 自然语言处理以及自然语言生成,演化为理解和生成文本的任务。

1)自然语言理解

自然语言的理解是个综合的系统工程,它又包含了很多细分学科,有代表声音的音系学,代表构词法的词态学,代表语句结构的句法学,代表理解的语义句法学和语用学。

  • 音系学:指代语言中发音的系统化组织
  • 词态学 :研究单词构成以及相互之间的关系
  • 句法学: 给定文本的哪部分是语法正确的
  • 语义学: 给定文本的含义是什么
  • 语用学:文本的目的是什么?

2)自然语言生成

语言理解涉及语言、语境和各种语言形式的学科 而自然语言生成( Naturnguage Generation, NLG )恰恰相反,从结构化数据中以读取的方式自动生成文本,该过程主要三个阶段:

  • 文本规划(完成结构化数据中的基础内容规划)
  • 语句规划(数据中组合语句来表达信息流)
  • 实现(产生语法通顺的语句来表达文本)

3、NLP 的研究任务

NLP 可以被应用于很多领域,这里大概总结出以下几种通用的应用:

  • 机器翻译:计算机具备将一种语言翻译成另一种语言的能力。
  • 情感分析:计算能够判断用户评论是否积极。
  • 智能问答:计算机能够正确回答输入的问题。
  • 文摘生成:计算机能够准确归纳、总结并产生文本摘要。
  • 文本分类:计算机能够采集各种文章, 进行主题分析,从而进行自动分类。
  • 舆论分析:计算机能够判断目前舆论的导向。
  • 知识图谱:知识点相互连接而成的语义网络。

二、基本术语

1、分词( segment)

  • 词是最小的能够独立活动的有意义的语言成分, 英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文分词的基础与关键
  • 中文和英文都存在分词的需求,不过相较而言,英文单词本来就有空格进行分割,所以处理起来相对方便。但是,由于中文是没有分隔符的,所以分词的问题就比较重要。分词常用的手段是基于字典的最长串匹配,据说可以解决 85%的问题,但是歧义分词很难。举个例子,“美国会通过对台售武法案”,我们既可以切分为 “美国/会/通过对台售武法案”, 又可 以切分成“美/国会/通过对台售武法案”。

2、词性标注(part of speec tagging )

  • 词性标注是自然语言处理中的一项任务,旨在为一段文本中的每个词汇确定其相应的词性(也称为词类)。
  • 词性通常包括名词、动词、形容词、副词、代词、介词、连词等,通过对文本进行词性标注,可以帮助计算机理解文本的语法结构和语义含义。

3、命名实体识别(NER, Named Entity Recognition )

命名实体是指从文本中识别具有特定类别的实体(通常是名词),例如人名、地名、机构名、专有名词等。

4、句法分析(synta parsing )

  • 句法分析的目的是解析句子中各个成分的依赖关系
  • 所以,往往最终生成的结果是一棵句法分析树
  • 句法分析可以解决上下文无关问题(类似于编译的句法分析)

5、指代消解( anaphora resolution)

中文中代词出现的频率很高,它的作用的是用来表征前文出现过的人名、地名等例如,清华大学坐落于北京,这家大学是目前中国最好的大学之一 在这句话中,其实“清华大学”这个词出现了两次,“这家大学”指代的就是清华大学 但是出于中文的习惯,我们不会把“清华大学”再重复一遍。

6、情感识别( emotion recognition)

  • 所谓情感识别,本质上是分类问题,经常被应用在舆情分析等领域
  • 情感一般可以分为两类,即正面、负面,也可以是三类,在前面的基础上,再加上中性类别一般来说,在电商企业,情感识别可以分析商品评价的好坏,以此作为下一个环节的评判依据
  • 通常可以基于词袋模型+分类器,或者现在流行的词向模型+RNN。经过测试发现,后者比前者准确率略有提升

7、纠错( correction)

  • 自动纠错在搜索技术以及输入法中利用得很多。
  • 由于用户的输入出错的可能性比较大,出锚的场景也比较多。所以,我们需要一个纠错系统
  • 具体做法有很多,可以基于N-Gram 进行纠错,也可以通过字典树 有限状态机等方法进行纠错。

8、问答系统( QA system)

这是一种类似机器人的人工智能系统 比较著名的有:苹果 Siri, IBM Watson 、微软小冰等 问答系统往往需要语音识别 合成,自然语言理解、知识图谱等多项技术的配合才会实现得比较好。

三、知识结构

作为一门综合学科, NLP 是研究人与机器之间用自然语言进行有效通信的理论和方法这需要很多跨学科的知识,需要语言学、统计学、最优化理论、机器学习、深度学习以及自然语言处理相关理论模型知识做基础 作为一门杂学, NLP 可谓是包罗万象,体系化与特殊化并存,这里简单罗列其知识体系:

1、语法语义分析

针对目标句子,进行各种句法分析,如分词、词性标记、命名实体识别及链接、句法分析、语义角色识别和多义词消歧等。

2、关键词抽取

抽取目标文本中的主要信息,比如从一条新闻中抽取关键信息主要是了解是谁、于何时、为何、对谁、做了何事 、产生了有什么结果 涉及实体识别、时间抽取 、因果关系抽取等多项关键技术。

3、文本挖掘

  • 主要包含了对文本的聚类、分类、信息抽取
  • 摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的呈现界面。

4、机器翻译

  • 将输入的源语言文本通过自动翻译转化为另一种语言的文本
  • 根据输入数据类型的不同,可细分为文本翻译 、语音翻译、手语翻译、图形翻译等。
  • 机器翻译从最早的基于规则到二十年前的基于统计的方法,再到今天的基于深度学习(编解码)的方法,逐渐形成了一套比较严谨的方法体系。

5、信息检索

  • 对大规模的文档进行索引 可简单对文档中的词汇,赋以不同的权重来建立索引,也可使用算法模型来建立更加深层的索引
  • 查询时,首先对输入比进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。

6、问答系统

针对某个自然语言表达的问题,由问答系统给出个精准的答案。需要对自然语言查询语句进行语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。

7、对话系统

系统通过多回合对话 ,跟用户进行聊天、回答、完成某项任务 主要涉及用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮到话能力 同时,为了体现个性化,对话系统还需要 基于用户画像做个性化回复。知识结构结构图如图1-3所示。
在这里插入图片描述

四、NLP的几个层面

1、词法分析

  • 词法分析包括汉语的分词和词性标注这两部分
  • 之前有提过,汉语分词与英文不同,汉语书面词语之间没有明显的空格标记,文本中的句子以字符串的方式出现,句子中由逗号分隔,句子和句子之间常以句号分隔
  • 针对汉语这种独特的书面表现形式,汉语的自然语言处理的首要工作就是要将输入的文本切分为单独的词语,然后在此技术上进行其他更高级的分析。
    上述这个步骤称为分词
    除了分词之外,词性标注也通常被认为是词法分析的一部分,词性标注的目的是为每一个词赋予一个类别,这个类别可以是名词( noun)、动词(verb)、形容词(adjectiv)等。通常来说,属于相同词性的词,在句法中承担类似的角色。

2、句法分析

  • 句法分析是对输入的文本以句子为单位,进行分析以得到句子的句法结构的处理过程
  • 对句法结构进行分析,一方面是为了帮助理解句子的含义,另一方面也为更高级的自然语言处理任务提供支持(比如机器翻译、情感分析等)
  • 目前业界存在三种比较主流的句法分析方法:
    • 短语结构句法体系,作用是识别出句子中的短语结构,以及短语之间的层次句法关系;
    • 依存结构句法体系,作用是识别句子中词与词之间的相互依赖关系;
    • 深层文法句法分析,利用深层文法,例如词汇树邻接文法,组合范畴文法等对句子进行深层的句法以及语义分析。

上述几种句法分析,依存句法分析属于浅层句法分析,其实现过程相对来说比较简单而且适合在多语言环境下应用,但是其所能提供的信息也相对较少。深层文法句法分析可以提供丰富的句法和语义信息,但是采用的文法相对比较复杂,分析器的运行复杂度也比较高,这使得深层句法分析不太适合处理大规模的数据。短语结构句法分析介于依存句法分析和深层文法句法分析之间。

3、语义分析

  • 语义分析的最终目的是理解句子表达的真实语义 但是,语义应该采用什么表示形式一直困扰着 究者 ,至今这个问题也没有个统一的答案
  • 语义角色标注( semantic role labeling )是目前比较成熟的浅层语义分析技术。
    • 语义角色标注一般都在句法分析的基础上完成,句法结构对于语义角色标注的性能至关重要
    • 基于逻辑表达的语义分析也得到学术界的长期关注。出于机器学习模型复杂度、效率的考虑,自然语言处理系统通常采用级联的方式,即分词、词性标注、句法分析、语义分析分别训练模型
  • 实际使用时,给定输入句子,逐一使用各个模块进行分析,最终得到所有结果。

近年来,随 研究工作的深入,研究者们提出了很多有效的联合模型,将多个任务联合学习和解码,如分词词性联合、词性句法联合、分词词性句法联合、句法语义联合等。联合模型通常都可以显著提高分析质量,原因在于联合模型可以让相互关联的多个任务互相帮助,同时对于任何单任务而言,人工标注的信息也更多了 然而,联合模型的复杂度更高,速度也更慢。

五、语料库

1、中国维基百科

  • 维基百科是最常用且权威的开放网络数据集之一 ,作为极少数的人工编辑、内容丰富、格式规范的文本语料,各类语言的维基百科在 NLP 等诸多领域应用广泛
  • 维基百科提供了开放的词条文本整合下载,可以找到你需要的指定时间、指定语言、指定类型、指定内容的维基百科数据,中文维基百科数据是维基提供的语料库。

2、搜狗新闻语料库

来自若干新闻站点 2012年6月~7月期间国内、国际 体育、社会、娱乐等 18个频道的新闻数据,提供 URL 和正文信息。

3、IMDB 情感分析语料库

  • 互联网电影资料库( Internet Movie Database ,简称 IMDb )是 个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库 IMDb 的资料中包括了影片的众多信息、演员、片长、内容介绍 分级、评论等 对于电影的评分目前使用最多的就是 IMDb评分。

  • ​ 还有豆瓣读书相关语料(爬虫获取) 邮件相关语料等。

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

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

相关文章

Java 解决异步 @Async 失效问题

1.问题描述 使用Async进行异步处理时,异步没有生效 2.原因分析 经过排查后发现是因为使用Async的方法没有跨2个Service导致的 错误示例 控制器接口 > 直接调用 custAdminService.importCBuy() 3.解决方案 Controller接口不变,多添加一层Service&a…

内网渗透NC木马后门复现

本文章仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若读者因此作出任何危害网络安全的行为,后果自负,与作者无关。 首先假设已经通过Kail成功入侵靶机:https://blog.csdn.net/mshxuyi/article/details/1…

使用cmd命令运行java

1.普通项目(不带lib文件夹) 1.在桌面上建一个名为com的文件夹,在文件夹中用记事本写两个类文件,后缀改为.java。两个类文件的内容如下图所示: 2.使用javac命令编译主函数,命令行为javac TestMain.java。结果可以看到自动生成了两…

Linux第68步_旧字符设备驱动的一般模板

file_operations结构体中的函数就是我们要实现的具体操作函数。 注意: register_chrdev()和 unregister_chrdev()这两个函数是老版本驱动使用的。现在新字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。 1、创建C…

zerotier局域网组建 笔记

背景 家里的windows电脑:home-win10-pc 家里的windows电脑上vmware运行的ubuntu虚拟机:home-ubuntu-vm 公司的mac电脑:company-mac-pc 由于xxx需求,需要组建一个局域网,前东家都是用的zerotier,出于路径依…

代码学习记录10

随想录日记part10 t i m e : time: time: 2024.03.03 主要内容:今天的主要内容是深入了解数据结构中栈和队列,并通过三个 l e e t c o d e leetcode leetcode 题目深化认识。 20. 有效的括号1047. 删除字符串中的所有…

FL Studio怎么分轨导出音频文件 FL Studio轨道怎么合并 音乐编曲软件推荐 FL Studio下载

对于现在的编曲人来说,熟练掌握各类编曲软件已经是硬性要求了。掌握编曲软件的使用方法需要我们付出一些学习时间,例如编曲软件中各个轨道的拆分与合并等等,这些都是非常实用的编曲软件使用技巧。今天我就以FL Studio举例,向大家展…

轻薄蓝牙工牌室内人员定位应用

在现代化企业管理的背景下,轻薄蓝牙工牌人员定位应用逐渐崭露头角,成为提升企业效率和安全性的重要工具。本文将从轻薄蓝牙工牌的定义、特点、应用场景以及未来发展趋势等方面,对其进行全面深入的探讨。 一、轻薄蓝牙工牌的定义与特点 轻薄…

今日arXiv最热大模型论文:哈工深新研究发现!无需额外资源,SelectIT方法助力大语言模型精准调优

在当今的人工智能领域,大语言模型(LLMs)已经成为了研究的热点,它们在理解指令和解决复杂问题方面展现出了令人印象深刻的能力。然而,要想进一步提升这些模型的性能,指令调优(Instruction Tuning…

Material UI 5 学习01-按钮组件

Material UI 5 学习01-按钮组件 一、安装Material UI二、 组件1、Button组件1、基础按钮2、variant属性3、禁用按钮4、可跳转的按钮5、disableElevation属性6、按钮的点击事件onClick 2、Button按钮的颜色和尺寸1、Button按钮的颜色2、按钮自定义颜色3、Button按钮的尺寸 3、图…

量化交易日记 基础概念篇

联系方式 17710158550 NBEATS (Neural Basis Expansion Analysis for Time Series)、NHiTS (Neural Hierarchical Interpolation for Time Series Forecasting)、LSTNet (Long Short-Term Memory Network)、TCN (Temporal Convolutional Network)、Transformer、DeepAR (DeepAR…

TikTok(字节跳动)的新人工智能Boximator

AI 视频生成器最近占据了科技头条新闻,特别是在 OpenAI 宣布推出Sora之后,Sora 是他们的第一个视频模型,可以通过简单的文本提示生成令人惊叹的 AI 视频。 如今,制作 TikTok 的公司字节跳动也加入了这一行动。他们创建了Boximato…

FPGA AXI4总线操作教程

AXI(Advanced Extensible Interface)总线是一种高性能、低延迟的片上系统(SoC)接口标准,广泛应用于现代数字系统设计中。它允许不同的硬件组件以高效、可靠的方式进行数据传输和控制。本教程将介绍AXI总线的基本操作和…

卧室装修干货|榻榻米的4种类型及优缺点。福州中宅装饰,福州装修

卧室想要做榻榻米设计,不知道如何下手,这篇文章一定要看:常见榻榻米的类型有哪些?这些类型分别有哪些优缺点呢? 榻榻米是一种传统的日本床铺设计,近年来在现代室内设计中越来越受欢迎。它以低矮的床垫和简洁的线条为…

004-执行上下文事件循环

执行上下文&事件循环 1、执行上下文2、执行上下文类型3、执行上下文的生命周期4、示例说明5、事件循环机制6、宏任务7、微任务8、同步任务、宏任务、微任务9、代码执行顺序 - 示例 💡 Tips:用于说明 浏览器 对 JavaScript 执行顺序,涉及知…

Unity UGUI之Scrollbar基本了解

Unity的Scrollbar组件是用于在UI中创建滚动条的组件之一。滚动条通常与其他可滚动的UI元素(如滚动视图或列表)一起使用,以便用户可以在内容超出可见区域时滚动内容。 以下是Scrollbar的基本信息和用法: 1、创建 在Unity的Hierarchy视图中右…

Debian篇——系统安装在SD卡上如何调整系统分区大小

背景:我的SD卡是128G的,开发商安装好系统后,我发现SD的系统分区才8.9G空间(剩下的108G未分区),不够使用,于是需要调整系统分区的大小。 1.查看系统盘挂载情况 df -h 2.查看系统盘在哪个分区 …

解决java: 无法访问javax.servlet.ServletException

问题 在对历往项目工具类总结和归纳更新过程中,common模块在compile编译过程中遇到了“Error java: 无法访问javax.servlet.ServletException 找不到javax.servlet.ServletException的类文件”这个报错问题。 IDE使用的是idea2021。 解决方法 pom中增加如下依赖&…

十七、IO流

IO 目录 一、IO流的概述IO流的分类 二、基本流2.1字节流2.2 字节输出流写出数据的三种方式2.3 换行和续写2.4 字节输入流2.5 文件拷贝2.6 IO流中不同JDK版本捕获异常的方式2.7 字符集详解2.7.1 ASCII字符集2.7.2 GBK字符集2.7.3 Unicode字符集 2.8 为什么会有乱码2.9 Java中的编…

python之海龟绘图

海龟绘图(turtle)是一个Python内置的绘图库,也被称为“Turtle Graphics”或简称“Turtles”。它采用了一种有趣的绘图方式,模拟一只小海龟在屏幕上爬行,而小海龟爬行的路径就形成了绘制的图形。这种绘图方式最初源自20…