FastText 环境搭建
1 课程概览
本课介绍 FastText 训练工具包的环境搭建,包括 FastText 的背景、功能、数据来源(维基百科英文数据)、数据预处理及安装方法。FastText 是 Facebook 开源的工具包,可用于训练词向量和文本分类。
2 核心概念与定义
- FastText:Facebook 开源的 NLP 工具包,两大功能:①训练词向量;②文本分类。
- 托马斯·米格洛夫(Tomas Mikolov):Word2Vec 的发明者,同时也是 RNN 和 FastText 工具的作者。
- 无监督训练(Unsupervised Training):使用
train_unsupervised方法,无需标签数据进行词向量训练。
3 模型与算法详解
FastText 简介
| 属性 | 说明 |
|---|---|
| 来源 | Facebook 开源 |
| 功能 | 训练词向量 + 文本分类 |
| 作者 | Tomas Mikolov(Word2Vec 发明者) |
| 当前用途 | 训练词向量(后续课程用于文本分类) |
训练词向量的四大步骤(需背诵)
- 获取序列数据(训练数据)
- 词向量的训练、保存、加载和查看
- 模型效果的检验
- 模型超参的设定
数据来源与预处理
| 项目 | 说明 |
|---|---|
| 数据来源 | 英语维基百科 |
| 原始大小 | 约 300MB |
| 解压后大小 | 约 680MB |
| 预处理后文件 | file9(680MB) |
| 预处理内容 | 用正则将每个单词切出,单词间用空格隔开 |
| 训练时间 | 100MB 约 4 分钟,680MB 约 30 分钟 |
数据拆分
为方便训练,将 680MB 的 file9 拆分为 7 个文件:
| 文件名 | 大小 |
|---|---|
| wiki02_7A | 100MB |
| wiki02_7B | 100MB |
| wiki02_7C | 100MB |
| wiki02_7D | 100MB |
| wiki02_7E | 100MB |
| wiki02_7F | 100MB |
| wiki02_7G | 80MB |
安装方式
# 方式一:pip 安装(推荐,最简单)
pip install fasttext
# 方式二:从 GitHub 克隆安装(Linux 环境)
git clone https://github.com/facebookresearch/fastText.git
cd fastText
pip install .
4 数学原理与推导
本课为环境搭建,无数学推导。
5 代码示例
# 安装 FastText
pip install fasttext
# 验证安装
import fasttext
print("FastText 安装成功!")
6 重难点与易错提醒
- ❗重点:训练词向量的四大步骤需要背诵——获取数据、训练/保存/加载/查看、效果检验、超参设定。
- ⚠️易错:数据文件较大(680MB),建议使用拆分后的小文件(100MB)进行训练。
- 💡深入理解:FastText 底层默认使用 Skip-Gram 方式训练词向量。
- ❗重点:FastText 后续课程还会用于文本分类(迁移学习部分),需在沙箱中安装。
7 课堂问答精选
Q1:FastText 是什么?有哪些功能?
A:FastText 是 Facebook 开源的 NLP 工具包,由 Tomas Mikolov(Word2Vec 发明者)开发。两大功能:①训练词向量;②文本分类。当前课程先用于训练词向量,后续迁移学习部分用于文本分类。
Q2:训练词向量的步骤有哪些?
A:四大步骤(需背诵):①获取序列数据;②词向量的训练、保存、加载和查看;③模型效果的检验;④模型超参的设定。
Q3:数据文件为什么需要拆分?
A:原始数据 file9 有 680MB,训练时间约 30 分钟。拆分为 7 个文件(6 个 100MB + 1 个 80MB),使用 100MB 文件训练约 2-4 分钟,更方便练习。
8 本课小结
- FastText:Facebook 开源工具,功能为训练词向量 + 文本分类。
- 作者:Tomas Mikolov,同时也是 Word2Vec 和 RNN 的作者。
- 训练四步:获取数据 → 训练/保存/加载/查看 → 效果检验 → 超参设定。
- 数据来源:英语维基百科,680MB,拆分为 7 个文件便于训练。
- 安装:
pip install fasttext。
9 延伸思考
- FastText 相比 Word2Vec 有什么改进?
- FastText 的文本分类功能如何使用?(后续课程)