如何创建沙箱及关联 PyCharm
1 课程概览
本课介绍文本处理的基本方法,重点讲解分词(Tokenization)的定义、作用及原理,并对比中文与英文分词的差异。同时介绍 jieba 分词库及其他常见中文分词工具(SnowNLP、pyltp、THULAC、IK 分词器),最后说明创建虚拟环境(沙箱)的必要性。
2 核心概念与定义
- 分词(Tokenization):将连续的字序列按照一定的规范(语法规则:主谓宾、定状补等)重新组合成词序列的过程。
- Token:分词后的每个结果称为一个 token,是大模型计费和文本处理的基本单位。
- 分界符(Delimiter):用于分隔词的符号。英文以空格作为天然分界符,中文没有明显分界符,因此需要分词。
- jieba(结巴分词):Python 实现的中文分词库,对中文有很强的分词能力,愿景是做最好的 Python 中文分词组件。
- NER(Named Entity Recognition,命名实体识别):从文本中识别出特定意义的实体。
- POS(Part-of-Speech Tagging,词性标注):为文本中每个词标注词性。
- 沙箱(Sandbox)/虚拟环境:独立的 Python 运行环境,避免包冲突,便于管理 GPU/CPU 环境。
3 模型与算法详解
分词的原理与作用
- 分词过程:本质是找到分界符的过程
- 分词作用:
- 词是语言语义理解的最小单位
- 是人类理解文本语言的基础
- 遵循"字→词→句→段→篇章"的层级结构
- 是 AI 解决 NLP 高阶任务(自动问答、机器翻译、文本生成)的重要基础环节
中文 vs 英文分词
| 对比项 | 英文 | 中文 |
|---|---|---|
| 分界符 | 空格(天然分界符) | 无明显分界符 |
| 是否需要分词 | 不需要 | 需要 |
| 示例 | Hello world → Hello + world | 传智教育是一家上市公司 → 传智教育/是/一家/上市公司 |
Token 计算方式
- 不同模型的 token 计算方式不同
- 有的模型:2 个字 = 1 个 token
- 有的模型:4~6 个字母 = 1 个 token
- 示例:阿里千问系列(千问 max vs plus),同样输入计算 token 方式不同,精准模型收费更高
常见中文分词工具对比
| 工具 | 来源/特点 | 适用场景 |
|---|---|---|
| jieba(结巴) | Python 中文分词库 | 通用,支持多种模式 |
| SnowNLP | 基于概率算法的中文 NLP 工具包 | 通用 |
| pyltp | 哈工大 | 复杂 NLP 任务 |
| THULAC | 清华大学 | 通用 |
| IK 分词器 | 用于 Elasticsearch(ES) | 搜索引擎 |
虚拟环境(沙箱)的必要性
- 到公司后第一件事是创建自己的沙箱(虚拟环境)
- 避免在 base 环境中安装所有包导致冲突
- 便于管理 GPU 环境(后续课程将部署 GPU 环境)
4 数学原理与推导
本课无数学推导。
5 代码示例
本课为概念介绍,无完整代码。后续课程将演示 jieba 分词的具体代码实现。
6 重难点与易错提醒
- ❗重点:分词的本质是找到分界符的过程,每个分词结果等于一个 token。
- ⚠️易错:中文没有天然分界符(不像英文有空格),因此中文必须分词。
- 💡深入理解:不同模型的 token 计算方式不同,直接影响使用成本。
- ❗重点:创建虚拟环境(沙箱)是工程实践的基本要求,避免环境冲突。
7 课堂问答精选
Q1:为什么中文需要分词,而英文不需要?
A:英文单词之间天然有空格作为分界符,无需额外分词。中文没有明显的分界符,需要通过分词工具(如 jieba)按照语法规则将字序列组合成词序列。
Q2:什么是 token?不同模型的 token 计算方式一样吗?
A:分词后的每个结果就是一个 token。不同模型计算 token 的方式不同——有的 2 个字算 1 个 token,有的 4~6 个字母算 1 个 token。例如阿里千问 max 和 plus 模型,同样输入的 token 计算方式不同,精准模型收费更高。
Q3:到公司后要做的第一件事是什么?
A:创建自己的沙箱(虚拟环境)。不要在 base 环境中安装所有包,否则可能导致环境冲突,尤其是 GPU 环境部署后。
8 本课小结
- 分词是将字序列按语法规则组合成词序列的过程,本质是找分界符。
- 中文无天然分界符,需分词;英文有空格作分界符,不需分词。
- 每个分词结果 = 一个 token,不同模型 token 计算方式不同。
- 常见分词工具:jieba、SnowNLP、pyltp(哈工大)、THULAC(清华)、IK(搜索引擎)。
- 工程实践需创建虚拟环境(沙箱)避免包冲突。
9 延伸思考
- jieba 分词支持哪几种模式?各自适用什么场景?
- Elasticsearch 的 IK 分词器与 jieba 有何异同?