问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

自然语言处理:从传统到深度学习的全面解析

创作时间:
作者:
@小白创作中心

自然语言处理:从传统到深度学习的全面解析

引用
CSDN
1.
https://blog.csdn.net/hcx25909/article/details/145225080

自然语言处理(NLP)是人工智能领域的重要分支,它让机器能够理解、解释和生成人类语言。从传统的计算语言学方法到现代的深度学习技术,NLP经历了巨大的发展。本文将全面解析NLP的核心概念、主要任务及其工作原理,帮助读者深入了解这一前沿技术领域。

一、简述

自然语言处理 (NLP) 是人工智能 (AI) 最热门的领域之一,现在主要指大语言模型了。这要归功于人们热衷于能编写故事的文本生成器、欺骗人们的聊天机器人以及产生照片级真实感的文本到图像程序等应用程序。近年来,计算机理解人类语言、编程语言,甚至类似于语言的生物和化学序列(例如 DNA 和蛋白质结构)的能力发生了革命。最新的人工智能模型正在解锁这些领域,以分析输入文本的含义并生成有意义的、富有冲击力(你懂的)的输出。

自然语言处理 (NLP) 从计算语言学发展而来,计算语言学利用计算机科学来理解语言原理,但 NLP 不是开发理论框架,而是一门工程学科,旨在构建技术来完成有用的任务。 NLP 可以分为两个重叠的子领域:自然语言理解 (NLU),重点是语义分析或确定文本的预期含义;自然语言生成 (NLG),重点是机器生成文本。 NLP 与语音识别分开,但经常结合使用,语音识别旨在将口语解析为单词,将声音转换为文本,反之亦然。

二、任务清单

NLP 用于各种与语言相关的任务,包括回答问题、以各种方式对文本进行分类以及与用户对话。

以下是 NLP 可以解决的任务:

  • 情感分析:是对文本的情感意图进行分类的过程。一般来说,情感分类模型的输入是一段文本,输出是所表达的情感是正面、负面或中性的概率。通常,此概率基于手动生成的特征、单词 n-gram、TF-IDF 特征,或使用深度学习模型来捕获连续的长期和短期依赖性。情绪分析用于对各种在线平台上的客户评论进行分类等。

  • 毒性分类:是情感分析的一个分支,其目的不仅是对敌对意图进行分类,而且还对特定类别进行分类,例如威胁、侮辱、淫秽和对某些身份的仇恨。这种模型的输入是文本,输出通常是每类毒性的概率。毒性分类模型可用于通过压制攻击性评论、检测仇恨言论或扫描文档是否存在诽谤来调节和改善在线对话。

  • 机器翻译:可以自动实现不同语言之间的翻译。这种模型的输入是指定源语言的文本,输出是指定目标语言的文本。谷歌翻译可能是最出名的之一,不过总感觉近几年来百度翻译(指英译汉)的准确度要高于谷歌了。

  • 命名实体:用于将一段文本中的实体提取到预定义的类别中,例如人名、组织、位置和数量。这种模型的输入通常是文本,输出是各种命名实体及其开始和结束位置。命名实体识别在总结新闻文章和打击虚假信息等应用中非常有用。

  • 垃圾邮件检测:是 NLP 中常见的二元分类问题,其目的是将电子邮件分类为垃圾邮件或非垃圾邮件。垃圾邮件检测器将电子邮件文本以及标题和发件人姓名等各种其他潜文本作为输入。他们的目的是输出邮件是垃圾邮件的概率。 很多电子邮件提供商使用此类模型,通过检测未经请求和不需要的电子邮件并将其移至指定的垃圾邮件文件夹来提供更好的用户体验。

  • 语法错误纠正:模型对语法规则进行编码以纠正文本中的语法。这主要被视为序列到序列的任务,其中模型以不符合语法的句子作为输入和正确的句子作为输出进行训练。

  • 主题建模:是一种无监督的文本挖掘任务,它获取文档语料库并发现该语料库中的抽象主题。主题模型的输入是文档的集合,输出是主题列表,该列表定义了每个主题的单词以及文档中每个主题的分配比例。潜在狄利克雷分配 (LDA) 是最流行的主题建模技术之一,它尝试将文档视为主题的集合,将主题视为单词的集合。主题建模正在商业上用于帮助律师在法律文件中查找证据。

  • 文本生成:更正式地称为自然语言生成 (NLG),生成与人类编写的文本相似的文本。这些模型可以进行微调,以生成不同类型和格式的文本,包括自媒体文章、博客,甚至计算机代码。文本生成是使用马尔可夫过程、L LSTM、BERT、GPT-2、LaMDA......和其他方法执行的。它对于自动完成和聊天机器人特别有用。

  • 自动完成功能:可以预测接下来出现的单词,一些聊天应用程序中使用了不同复杂程度的自动完成系统。搜索引擎使用自动完成来预测搜索查询。 GPT-2 是最著名的自动完成模型之一,它已被用于撰写文章、歌词等。

  • 聊天机器人:它们可以分为以下两类:

  • 数据库查询:我们有一个问题和答案的数据库,我们希望用户使用自然语言对其进行查询。

  • 对话生成:这些聊天机器人可以模拟与人类伙伴的对话。有些人能够进行广泛的对话。一个例子是谷歌的 LaMDA,它对问题提供了类似人类的答案,以至于它的一位开发人员确信它有感情。

  • 信息检索:找到与查询最相关的文档。这是每个搜索和推荐系统都面临的问题。目标不是回答特定的查询,而是从可能数以百万计的文档集合中检索与查询最相关的集合。文档检索系统主要执行两个过程:索引和匹配。在大多数现代系统中,索引是通过两塔网络的向量空间模型完成的,而匹配是使用相似性或距离分数完成的。搜索引擎将其搜索功能与可处理文本、图像和视频数据的多模式信息检索模型集成在一起。

  • 摘要:用来抽取最相关信息的任务。 摘要分为两个方法类:

  • 提取式摘要,侧重于从长文本中提取最重要的句子,并将它们组合起来形成摘要。通常,提取摘要对输入文本中的每个句子进行评分,然后选择几个句子来形成摘要。

  • 抽象摘要通过释义产生摘要。这类似于撰写包含原文中不存在的单词和句子的摘要。抽象摘要通常被建模为序列到序列的任务,其中输入是长格式文本,输出是摘要。

  • 问答:涉及用自然语言回答人类提出的问题。一般来说,问答任务有两种类型:

  • 多项选择:多项选择题由一个问题和一组可能的答案组成。学习任务是选择正确答案。

  • 开放域:在开放域问答中,模型通常通过查询大量文本,以自然语言提供问题的答案,而不提供任何选项。

三、工作原理

NLP 模型的工作原理是查找语言组成部分之间的关 系,例如文本数据集中的字母、单词和句子。 NLP 架构使用各种方法进行数据预处理、特征提取和建模。

数据预处理

在模型处理特定任务的文本之前,通常需要对文本进行预处理以提高模型性能或将单词和字符转换为模型可以理解的格式。以数据为中心的人工智能是一项不断发展的运动,优先考虑数据预处理。在此数据预处理中可以使用各种技术:

  • 词干提取和词形还原:词干提取是使用启发式规则将单词转换为其基本形式的非正式过程。例如,“university”、“universities”和“university's”可能全部映射到基础univers。 (这种方法的一个限制是“universe”也可以映射到univers,尽管universe和university没有密切的语义关系。)词形还原是一种更正式的方法,通过使用以下词汇分析单词的形态来查找词根:一本字典。词干提取和词形还原由 spaCy 和 NLTK 等库提供。

  • 句子分割:将大段文本分解为具有语言意义的句子单元。这在英语等语言中很明显,句子的结尾用句号标记,但这仍然不是微不足道的。句点可用于标记缩写以及终止句子,在这种情况下,句点应该是缩写标记本身的一部分。对于没有标记句子结尾的分隔符的语言(例如古汉语),该过程变得更加复杂。

  • 停用词删除:旨在删除最常出现的不会为文本添加太多信息的单词。例如,“the”、“a”、“an”等等。

  • TOKENIZERS:将文本分割成单独的单词和单词片段。结果通常由单词索引和标记化文本组成,其中单词可以表示为数字标记以用于各种深度学习方法。指示语言模型忽略不重要标记的方法可以提高效率。

特征提取

大多数传统的机器学习技术都是基于特征(通常是描述文档与包含该文档的语料库相关的数字),这些特征由词袋、TF-IDF 或通用特征工程(例如文档长度)创建、单词极性和元数据(例如,如果文本具有关联的标签或分数)。最近的技术包括 Word2Vec、GLoVE 以及在神经网络训练过程中学习特征。

  • Bag-of-Words:Bag-of-Words 计算每个单词或 n-gram(n 个单词的组合)在文档中出现的次数。例如,下面的词袋模型根据 word_index 中每个单词在文档中出现的数量来创建数据集的数字表示。

  • Word2Vec 于 2013 年推出,使用普通神经网络从原始文本中学习高维词嵌入。它有两种变体:Skip-Gram(在给定目标单词的情况下尝试预测周围单词)和 Continuous Bag-of-Words(CBOW)(尝试从周围单词预测目标单词)。在训练后丢弃最后一层后,这些模型将一个单词作为输入并输出一个单词嵌入,该单词嵌入可以用作许多 NLP 任务的输入。 Word2Vec 的嵌入捕获上下文。如果特定的单词出现在相似的上下文中,它们的嵌入将是相似的。

  • GLoVE 与 Word2Vec 类似,因为它也学习词嵌入,但它是通过使用矩阵分解技术而不是神经学习来实现的。 GLoVE 模型根据全局单词间共现计数构建一个矩阵。

建模

数据经过预处理后,将被输入到 NLP 架构中,该架构对数据进行建模以完成各种任务。

通过上述技术提取的数字特征可以根据手头的任务输入到各种模型中。例如,对于分类,可以将 TF-IDF 矢量器的输出提供给逻辑回归、朴素贝叶斯、决策树或梯度提升树。或者,对于命名实体识别,我们可以使用隐马尔可夫模型和 n 元语法。

深度神经网络通常在不使用提取特征的情况下工作,尽管我们仍然可以使用 TF-IDF 或词袋特征作为输入。

  • 语言模型:用非常基本的术语来说,语言模型的目标是在给定输入单词流时预测下一个单词。

深度学习也用于创建此类语言模型。深度学习模型将单词嵌入作为输入,并在每个时间状态返回下一个单词的概率分布作为字典中每个单词的概率。预训练的语言模型通过处理大型语料库(例如维基百科)来学习特定语言的结构。然后可以针对特定任务对它们进行微调。例如,BERT 已经针对从事实检查到撰写头条新闻等任务进行了微调。

四、自然语言处理 (NLP) 技术

1、传统机器学习NLP技术

  • 逻辑回归:是一种监督分类算法,旨在根据某些输入预测事件发生的概率。在自然语言处理中,逻辑回归模型可用于解决情感分析、垃圾邮件检测和毒性分类等问题。

  • 朴素贝叶斯:是一种监督分类算法,它使用以下贝叶斯公式查找条件概率分布 P(标签 | 文本):

P(标签 | 文本) = P(标签) x P(文本|标签) / P(文本)

并根据哪个联合分布具有最高概率进行预测。朴素贝叶斯模型中的朴素假设是各个单词是独立的。在自然语言处理中,此类统计方法可用于解决垃圾邮件检测或查找软件代码中的错误等问题。

  • 决策树:是一类监督分类模型,它根据不同的特征分割数据集,以最大化这些分割中的信息增益。

  • 潜在狄利克雷分配(LDA):用于主题建模。 LDA 尝试将文档视为主题的集合,将主题视为单词的集合。 LDA 是一种统计方法。其背后的直觉是,可以仅使用语料库中的一小部分单词来描述任何主题。

  • 隐马尔可夫模型:马尔可夫模型是根据当前状态决定系统下一个状态的概率模型。例如,在 NLP 中,我们可能会根据前一个单词建议下一个单词。我们可以将其建模为马尔可夫模型,在该模型中我们可能会找到从 word1 到 word2 的转换概率,即 P(word1|word2)。然后我们可以使用这些转移概率的乘积来找到句子的概率。隐马尔可夫模型(HMM)是一种在马尔可夫模型中引入隐藏状态的概率建模技术。隐藏状态是不能直接观察到的数据的属性。 HMM 用于词性 (POS) 标记,其中句子的单词是观察到的状态,POS 标记是隐藏状态。 HMM 增加了一个概念,叫发射概率;给定隐藏状态的观察概率。在前面的示例中,这是给定词性标签的单词的概率。 HMM 假设这种概率可以逆转:给定一个句子,我们可以根据一个单词具有特定词性标签的可能性以及特定词性标签的概率来计算每个单词的词性标签。词性标记遵循分配给前一个单词的词性标记。实际上,这是使用维特比算法来解决的。

2、深度学习 NLP 技术

点击自然语言处理:从传统到深度学习的全面解析查看全文。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号