产品经理的人工智能课 02 - 自然语言处理

devtools/2025/2/7 8:09:18/

产品经理人工智能课 02 - 自然语言处理

    • 1 自然语言处理是什么
    • 2 一个 NLP 算法的例子——n-gram 模型
    • 3 预处理与重要概念
      • 3.1 分词 Token
      • 3.2 词向量化表示与 Word2Vec
    • 4 与大语言模型的交互过程
    • 参考链接

大语言模型(Large Language Models, LLMs)是自然语言处理(NLP)领域的一个重要分支和核心技术,两者关系密切。
所以我们先了解一些自然语言处理的基础概念,为后续了解大语言模型做一些铺垫。

作为一篇“科普”性质的文章,我会尽量避免使用数学公式、抽象的表述。

1 自然语言处理是什么

自然语言处理(Natural Language Processing,NLP)是人工智能和语言学的一个交叉领域,致力于让计算机理解、生成和处理人类语言,这对应了自然语言处理的三个重要领域,分别是:

  • 自然语言理解(Natural Language Understanding, NLU):给定文本输入,分析其中的情感、抽取意图、匹配语义、进行摘要
  • 自然语言转换(Natural Language Transformation, NLT):把一段文本进行翻译、风格转换,把语音识别成文字等等
  • 自然语言生成(Natural Language Generation, NLG):根据指令生成文字、形成互动聊天、生成语音等

我们可以看出大语言模型结合了自然语言理解、自然语言转换和自然语言生成。

2 一个 NLP 算法的例子——n-gram 模型

为了方便大家理解 NLP,这里举一个 NLP 算法的例子。

我们先引入一个问题:want i english food 和 i want english food 哪个更像人话?
解决思路:我们准备一大堆的“人话”,即语料库,并对语料库中的前后关系进行统计,例如 i 后边是 want 的数量是多少、eat 后边是 food 的数量是多少。计算一句话是人话的可能性,就转化成了计算这句话中每两个词都挨着的可能性。

这个图片就非常直观地体现了这个思想
在这里插入图片描述
图片来源:自然语言处理中N-Gram模型介绍

明显看出 i want to eat lunch、food to eat、i want to spend 都是比较像“人话”的表述。
回到最初问题,即:want i english food 和 i want english food 哪个更像人话?就是分别计算两句话成立的可能性。
以 i want english food 为例,就是计算几件事同时发生的概率:

  • 句子以 i 开头
  • i 后边是 want
  • want 后边是 english
  • english 后边是 food
  • 句子以 food 结尾

算法名称 n-gram,上面这个就是 n=2,即二元语言模型的示例,如果让 n=3,就是考虑连续 3 个单词同时出现的概率。
n-gram 算法的一个常见应用是推荐词备选
在这里插入图片描述

图片来源:自然语言处理中N-Gram模型介绍

3 预处理与重要概念

NLP 方法,通常都以文本数据集开始,可以来自于电子邮件、用户创作的内容、文学作品等等。

首先需要对这些文本数据集进行“预处理”,形成语料库(复数:corpora) ,常见的预处理操作包括:

  • 文本清理:例如去除表情符号、多余的空格、大小写统一等
  • 词形还原:将单词还原为词典中的标准形式(lemma),更准确但计算成本较高。例如:"running""run"
  • 分词:将文本分割成最小单元(如单词、子词或字符)的过程,这里的“最小单元”是 NLP 处理中的最小单元,例如:"我爱自然语言处理"["我", "爱", "自然语言", "处理"]
  • 词向量化表示:将文本转换为数值形式,以便模型能够处理

其中“分词”和“词向量化表示”是在大语言模型中也常常提到,这里做一些重点介绍

3.1 分词 Token

分词(Tokenization)自然语言处理(NLP)中的一项基础且关键的任务,目的是将连续的文本分割成有意义的单元(如单词、子词或字符)。
其中最小单元称为标记(Token) ,也叫“令牌”,大模型接口收费中提到的 Token 就是这个“标记”。
用来完成分词任务的算法或者程序,被称为分词器(Tokenizer)

在这里插入图片描述

图片来源:传统 NLP 快速回顾

每种 NLP 算法都会根据自己的需求设置分词方式,常见的分词器种类包括:

  • 基于规则的分词器: 这种分词器使用预定义的规则来分割文本,例如根据标点符号或特定的词语
  • 基于统计的分词器: 这种分词器使用统计模型来预测词元的边界,例如基于 n-gram 或隐马尔可夫模型
  • 基于词典的分词器:通过预先构建好的词典,将文本中的词语与词典中的词条进行匹配,从而实现分词

顺嘴一提,huggingface 中的 Tokenizer 实际上不光光是分词器,还包含了词向量化和语句编码的功能。

3.2 词向量化表示与 Word2Vec

为什么需要词向量化呢?因为计算机比较擅长处理数字,所以需要把文本数据转换成计算机可以理解的数值形式。
词的向量化表示方法有很多,目前被大语言模型广泛应用的方法是 Word2Vec,是 Google 在 2013 年推出的一个用于生成词向量的方法。

Word2Vec 通过训练一个浅层的神经网络,把每个 token 会变成一个多维向量(50 维或 100 维比较常见),当我们对这些向量进行运算, 会发现 v ( 国王 ) − v ( 男人 ) + v ( 女人 ) = v ( 女王 ) v(国王) - v(男人) + v(女人) = v(女王) v(国王)v(男人)+v(女人)=v(女王),也就是说这些词向量能够捕捉到词语之间的语义关系,例如相似性、类比关系等。
我们也可以想象,代表红灯的向量,在某些维度上一定与代表太阳向量有比较大的相似性(都是红色的发光物体),在另一些维度上和代表自行车的向量有较大的相似性(都和交通有关)。

4 与大语言模型的交互过程

大语言模型(Large Language Models, LLMs)是自然语言处理(NLP)领域的一个重要分支和核心技术。
大语言模型基于深度学习的模型,通过大规模文本数据训练,能够生成和理解自然语言。ChatGPT、Gemini、豆包、QWen 等等大模型,都属于这个范畴。

当我们与大语言模型交互时,你会输入一系列文字。
大模型首先会对你的输入文本进行预处理,形成 token,把每个 token 变成一个向量,甚至把整句话或者段落变成一个个向量,并在回话期间保存在模型中,然后进行一些计算。
如上文所述,词向量是可以捕捉词语之间的语义关系的,所以这个计算过程就有机会分析输入文本的语法结构、语义关系和上下文信息,从而理解你的意图。
而大语言模型的输出过程,实际上是预测下一个词语或句子的概率分布,根据概率给出对应的文本,最终形成完整的文本回复。

关于大语言模型的训练和算法选择和更多的原理,将在后续文章中介绍。

参考链接

传统NLP与大模型入门:基础概念篇

PyTorch 自然语言处理

自然语言处理中N-Gram模型介绍


http://www.ppmy.cn/devtools/156757.html

相关文章

路由表转发表考研知识点

一、路由表(Routing Table) 1. 定义与作用 路由表是网络层(第三层)的核心数据结构,用于存储路径选择信息,决定数据包从源到目的地的传输路径。 核心功能:根据目的IP地址,选择最佳下…

如何打开vscode系统用户全局配置的settings.json

📌 settings.json 的作用 settings.json 是 Visual Studio Code(VS Code) 的用户配置文件,它存储了 编辑器的个性化设置,包括界面布局、代码格式化、扩展插件、快捷键等,是用户全局配置(影响所有…

《Hands-On Machine Learning with Scikit-Learn, Keras TensorFlow》第一章读书笔记

第一部分:理论篇 1. 什么是机器学习? 核心定义 机器学习是让计算机从数据中学习的科学,而无需显式编程。 经典定义 Arthur Samuel (1959): “让计算机无需明确编程就具备学习能力” Tom Mitchell 的工程定义: “如果一个程序通过经验 E 在某…

jvm知识点

一、jvm组成部分 程序计数器 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。 作用 PC寄存器用来存储指向下一条指令…

【OpenGL】OpenGL游戏案例(二)

文章目录 特殊效果数据结构生成逻辑更新逻辑 文本渲染类结构构造函数加载函数渲染函数 特殊效果 为提高游戏的趣味性,在游戏中提供了六种特殊效果。 数据结构 PowerUp 类只存储存活数据,实际逻辑在游戏代码中通过Type字段来区分执行 class PowerUp …

Unity中的虚拟相机(Cinemachine)

Unity Cinemachine详解 什么是Cinemachine Cinemachine是Unity官方推出的智能相机系统,它提供了一套完整的工具来创建复杂的相机运动和行为,而无需编写大量代码。它能够大大简化相机管理,提高游戏开发效率。 Cinemachine的主要组件 1. Vi…

Java面试题及答案整理( 2022最新版,持续更新)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ Java面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来看看小编…

MySQL三大日志——binlog、redoLog、undoLog详解

日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息,能帮助我们进行很多容错及分析工作,其中有三大日志与我们这些开发者息息相关,本文将介绍binlog、redoLog、undoLog三种日志: 1. redoLog 1.1 为什么…