产品经理的人工智能课 02 - 自然语言处理
产品经理的人工智能课 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模型介绍
相关文章:
产品经理的人工智能课 02 - 自然语言处理
产品经理的人工智能课 02 - 自然语言处理 1 自然语言处理是什么2 一个 NLP 算法的例子——n-gram 模型3 预处理与重要概念3.1 分词 Token3.2 词向量化表示与 Word2Vec 4 与大语言模型的交互过程参考链接 大语言模型(Large Language Models, LLMs)是自然语…...
华为手机nova9,鸿蒙系统版本4.2.0.159,智慧助手.今天版本是14.x,如何卸载智慧助手.今天?
手欠,将手机鸿蒙系统升级到4.2.0.159后,出现了负一屏,负一屏就是主页向左滑,出现了,如图的界面: 华为鸿蒙系统负一屏的界面 通过在手机中我的华为-搜索“开启或关闭智慧助手.今天(负一屏&#…...
C#面试常考随笔13: 泛型的主要约束和次要约束是什么?
在 C# 泛型中,主要约束和次要约束用于限制泛型类型参数的使用,确保类型参数满足一定的条件,从而提高代码的可靠性和可维护性。以下是主要约束和次要约束的详细介绍: 主要约束 引用类型约束(class)&#x…...
win32汇编环境,窗口程序中自定义工具栏的使用示例
;运行效果 ;win32汇编环境,窗口程序中自定义工具栏的使用示例 ;工具栏一般放在菜单下面,相当于一个个小的对话框,当然你放在其它地方也可以。 ;原理是,创建一张BMP位图,比如下例用一张168*24的图,平均分成7部分&#x…...
【PyQt】pyqt小案例实现简易文本编辑器
pyqt小案例实现简易文本编辑器 分析 实现了一个简单的文本编辑器,使用PyQt5框架构建。以下是代码的主要功能和特点: 主窗口类 (MyWindow): 继承自 QWidget 类。使用 .ui 文件加载用户界面布局。设置窗口标题、状态栏消息等。创建菜单栏及其子菜单项&…...
2024最新版Node.js详细安装教程(含npm配置淘宝最新镜像地址)
一:Node.js安装 浏览器中搜索Nodejs,或直接用网址:Node.js — 在任何地方运行 JavaScript 建议此处下载长期支持版本(红框内): 开始下载,完成后打开文件: 进入安装界面,在此处勾选,再点击n…...
DeepSeek R1的隐藏提问技巧?
deepseek属于推理模型,而不是指令模型,R1对提示词非常敏感。 1、需要更加真诚地与deepseek进行对话。 在用r1时,需要将此前的问答方式改变。 例如: 你现在是一个新能源汽车的市场研究分析师,这里有一份调研报告总结…...
【HTML入门】Sublime Text 4与 Phpstorm
文章目录 前言一、环境基础1.Sublime Text 42.Phpstorm(1)安装(2)启动Phpstorm(3)“启动”码 二、HTML1.HTML简介(1)什么是HTML(2)HTML版本及历史(3)HTML基本结构 2.HTML简单语法(1)HTML标签语法(2)HTML常用标签(3)表格(4)特殊字符 总结 前言 在当今的软件开发领域,…...
JVS低代码逻辑引擎多种业务场景触发案例配置:涵盖列表页按钮、表单数据、流程审批、外部API接口调用等
逻辑引擎作为JVS低代码开发套件的核心组件,专注于业务逻辑的快速构建与实现,它扮演着程序配置与执行的核心角色,适用于多样化的应用场景。该逻辑引擎设计灵活,能够通过多种配置方式被触发,以精准响应各类业务需求并实现…...
开发人员笔记本
为开发人员推荐大容量且性能稳定的电脑时,需考虑处理器、内存、存储、显卡和散热等因素。以下是几款适合开发的高性能电脑推荐: 1. Apple MacBook Pro 16英寸 (M2 Max/M2 Pro) 处理器: Apple M2 Max 或 M2 Pro内存: 32GB 或 64GB 统一内存存储: 1TB 或…...
RabbitMQ 从入门到精通:从工作模式到集群部署实战(一)
#作者:闫乾苓 文章目录 RabbitMQ简介RabbitMQ与VMware的关系架构工作流程RabbitMQ 队列工作模式及适用场景简单队列模式(Simple Queue)工作队列模式(Work Queue)发布/订阅模式(Publish/Subscribeÿ…...
计算机网络笔记再战——理解几个经典的协议4
目录 IP——网际协议 IP地址 1. A类地址 2. B类地址 3. C类地址 4. D类地址(组播地址) 5. E类地址(保留地址) 特殊地址与私有地址 广播地址 IP多播 子网掩码 传统分类与CIDR/VLSM的对比 路由控制 默认路由 主机路由…...
Java CountDownLatch 用法和源码解析
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
深度学习在文本情感分析中的应用
引言 情感分析是自然语言处理(NLP)中的一个重要任务,旨在识别和提取文本中的主观信息。随着深度学习技术的发展,我们可以使用深度学习模型来提高情感分析的准确性和效率。本文将介绍如何使用深度学习进行文本情感分析,…...
C++编码规范(六)关于C++标准库STL在使用中的一些规范和建议
C 标准库STL是 C 编程语言的重要组成部分,为开发者提供了丰富的功能和工具,极大地提高了开发效率和代码的可移植性。 其主要包括:标准容器库,输入 / 输出流库,算法库,迭代器库,字符串库…...
两种文件类型(pdf/图片)打印A4半张纸方法
环境:windows10、Adobe Reader XI v11.0.23 Pdf: 1.把内容由横排变为纵排: 2.点击打印按钮: 3.选择打印页范围和多页: 4.内容打印在纸张上部 图片: 1.右键图片点击打印: 2.选择打印类型: 3.打印配置&am…...
Vue3状态管理: Pinia使用技巧与最佳实践
Vue3状态管理: Pinia使用技巧与最佳实践 随着Web应用复杂度的提升,前端状态管理变得愈发重要。而在Vue3中,Pinia作为一种全新的状态管理工具,为我们提供了更加灵活和强大的状态管理解决方案。本文将从Pinia的基本概念入手,深入探讨…...
stm32点灯 GPIO的输出模式
目录 1.选择RCC时钟 2.SYS 选择调试模式 SW 3.GPIO 配置 4.时钟树配置( 默认不变)HSI 高速内部时钟8Mhz 5.项目配置 6.代码 延时1s循环LED亮灭 1.选择RCC时钟 2.SYS 选择调试模式 SW 3.GPIO 配置 4.时钟树配置( 默认不变)…...
K8S运行时切换-从Docker到Containerd的切换实战
1. 切换的原因 性能提升:Containerd通过减少抽象层提升了整体性能。 安全性增强:它提供了更直接的系统调用,减少了潜在的安全风险。 简化架构:Containerd拥有更简洁的设计,使得维护和故障排除更为容易。 官方支持趋…...
腾讯会议win7二维码展示不出来
问题:win64更新后二维码展示不出来,手机等登陆都不行 安装所在位置创建文档命名TBSDEBUG并去掉后缀...
swift 专题三 swift 规范一
一、Swift编码命名规范 对类、结构体、枚举和协议等类型的命名应该采用大驼峰法,如 SplitViewController。 文件名采用大驼峰法,如BlockOperation.swift。 对于扩展文件,有时扩展定义在一个独立的文件中,用“原始类型名 扩展名…...
WPS计算机二级•幻灯片放映与会议
听说这是目录哦 放映PPT时常用的快捷技巧🥬设置放映模式🥕演讲备注的添加和隐藏🫚在PPT中插入附件并放映时打开🫛隐藏幻灯片 不被放映和打印🍄🟫演讲计时模式🥦能量站😚 放映PPT时…...
联想拯救者开机进入bios
如果你的联想拯救者(Lenovo Legion)笔记本电脑开机后直接进入 BIOS 设置界面,可能是以下原因之一导致的。以下是解决方法: 1. 检查启动顺序 进入 BIOS 后,找到 Boot(启动)选项卡。检查启动顺序…...
云原生周刊:K8s引领潮流
开源项目推荐 KWOK KWOK(Kubernetes WithOut Kubelet)是一个开源项目,旨在提供一个轻量级的 K8s 集群模拟环境,允许用户在不依赖真实节点的情况下,本地模拟整个 K8s 集群。它通过模拟 Kubelet 和其他集群组件的行为&…...
FBX SDK的使用:基础知识
Windows环境配置 FBX SDK安装后,目录下有三个文件夹: include 头文件lib 编译的二进制库,根据你项目的配置去包含相应的库samples 官方使用案列 动态链接 libfbxsdk.dll, libfbxsdk.lib是动态库,需要在配置属性->C/C->预…...
计算机网络笔记再战——理解几个经典的协议6——TCP与UDP
目录 先说端口号 TCP 使用序号保证顺序性和应答来保证有效性 超时重传机制 TCP窗口机制 UDP 路由协议 协议分类:IGP和EGP 几个经典的路由算法 RIP OSPF 链路状态数据库(LSDB) LSA(Link State Advertisement࿰…...
Android 单例模式:实现可复用数据存储
引言 在 Java 开发中,我们经常会遇到需要在整个应用程序中共享数据的场景。例如,配置信息、缓存数据等,这些数据需要在不同的模块或类中被访问和使用。为了确保数据的一致性和避免重复创建,我们可以使用单例模式来实现一个可复用的…...
【技海登峰】Kafka漫谈系列(二)Kafka高可用副本的数据同步与选主机制
【技海登峰】Kafka漫谈系列(二)Kafka高可用副本的数据同步与选主机制 一. 数据同步 在之前的学习中有了副本Replica的概念,解决了数据备份的问题。我们还需要面临一个设计难题即:如何处理分区中Leader与Follwer节点数据同步不匹配问题所带来的风险,这也是保证数据高可用的…...
【Linux】curl命令详解
【Linux】curl命令详解 【一】curl命令介绍【1】curl命令简介【2】curl命令的基本语法【3】常用的curl命令选项【4】常用的curl命令参数 【二】curl命令示例用法【1】下载文件【2】发送 POST 请求【3】发送请求时附加头部信息【4】请求方法【5】指定用户名和密码进行身份验证【…...
创建模态框和非模态框
主要的精简代码就这些 #include <QDialog>// 创建模态框 QDialog dialog(this); // 添加各种部件 // ... // 因为创建在栈上面,所以需要阻止程序继续运行 dialog.exec();// 非模态框 QDialog dialog new Dialog(this); // 添加各种部件 // ... dialog.show(…...
