“锻火已升,心术初鸣。控心室的觉念者,将以代码为钥,剖开幻象。”
——KeySmith · 密钥锻造坊
寻钥之人,欢迎你踏入密钥锻造坊。 我是 KeySmith,这里是技术人的打铁间。
此刻你翻开的,正是本坊锻造的第 04 把密钥,专为掌控 Python 虚拟环境 + 训练脚本实战 而锻。
无论你是初次来访的学徒,还是久经风雨的同行匠人, 愿此钥能应你所困,破你所局,开你所门。
本篇,我们将从 0 开始构建一套能识别中文评论情绪的 AI 引擎, 使用 BERT 模型,打造属于你的情绪识别系统。
所以这一节,我们将完成三件事:
🌟 —— 带图带代码,献给认真搞技术的你!
✅准备 Python 炼术器(>= 3.8)
✅设置术者专属密室(.venv 虚拟环境)
✅选择合适的控术台(推荐 VS Code)
🌟 1. 环境初始化
🔧 配置中… · Python 环境准备
“工欲善其事,必先利其器。”
✅ 推荐使用 Python ≥ 3.8
✅ 前往官网下载:python.org
⚠️ 安装时务必勾选:Add Python to PATH
🌟 2. VS Code + 虚拟环境:最佳拍档
🛠️ 锻造 · VS Code + .venv
的好处
✅ 一键打开终端执行脚本 ✅ 自动识别项目依赖 ✅ 输出日志美观清晰(便于训练调试)
虚拟环境
.venv
是一个“隔离密室”,为每个项目提供独立依赖,就像为控心术定制的法器间。
🔓 解锁 · 创建虚拟环境
假设你的项目目录为:D:\1python\python_qq_project\控心室
✅ 进入目录:cd D:\1python\python_qq_project\控心室
✅ 创建 .venv
:python -m venv .venv
✅ 启动环境:.venv\Scripts\activate
此时命令行前缀变为:
(.venv)
,说明你已进入“密室”。
☕ 想退出?输入:deactivate
🧠 思考 · 解释器选择
VS Code 初次使用虚拟环境时:Ctrl + Shift + P → Python: Select Interpreter
✅ 选择 .venv\Scripts\python.exe
🌟 3. 安装依赖:三板斧
📦 下载资源 · 三个核心包
pip install torch pip install transformers pip install accelerate
✅ 检查是否安装成功:
import torch import transformers import accelerate print("PyTorch 版本:", torch.__version__) print("Transformers 版本:", transformers.__version__)
🌟 看到输出,就说明锻造炉已经升温完毕!
🌟 4. 训练准备:加载、编码、封装!
🔍 追踪细节 · 加载数据
import pandas as pd
# 改成你的真实路径哦!
df = pd.read_csv(r'D:\7优快云\毕业设计完整源码资源(Python)\控心室\第一钥数据准备\train4000.tsv', sep='\t')
# 查看列名,防止KeyError
print("列名:", df.columns)
# 这里假设你文件列名是 'text_a' 和 'label'
texts = df['text_a'].tolist()
labels = df['label'].tolist()
🧪 测试中… · 文本编码
import pandas as pd
from transformers import BertTokenizer
# 改成你的真实路径哦!
df = pd.read_csv(r'D:\7优快云\毕业设计完整源码资源(Python)\控心室\第一钥数据准备\train4000.tsv', sep='\t')
# 查看列名,防止KeyError
print("列名:", df.columns)
# 这里假设你文件列名是 'text_a' 和 'label'
texts = df['text_a'].tolist()
labels = df['label'].tolist()
tokenizer = BertTokenizer.from_pretrained("bert-base-chinese")
#编码
encodings = tokenizer(
texts,
truncation=True,
padding=True,
max_length=128
)
📜 原理解析 · Dataset 封装
import pandas as pd
from transformers import BertTokenizer
import torch
from torch.utils.data import Dataset
# 改成你的真实路径哦!
df = pd.read_csv(r'D:\7优快云\毕业设计完整源码资源(Python)\控心室\第一钥数据准备\train4000.tsv', sep='\t')
# 查看列名,防止KeyError
print("列名:", df.columns)
# 这里假设你文件列名是 'text_a' 和 'label'
texts = df['text_a'].tolist()
labels = df['label'].tolist()
tokenizer = BertTokenizer.from_pretrained("bert-base-chinese")
#编码
encodings = tokenizer(
texts,
truncation=True,
padding=True,
max_length=128
)
# 自定义情绪数据集类
class SentimentDataset(Dataset):
def __init__(self, encodings, labels):
self.encodings = encodings
self.labels = labels
def __getitem__(self, idx):
item = {key: torch.tensor(val[idx]) for key, val in self.encodings.items()}
item['labels'] = torch.tensor(self.labels[idx])
return item
def __len__(self):
return len(self.labels)
# 实例化数据集
dataset = SentimentDataset(encodings, labels)
# 打印验证
print("数据总量:", len(dataset))
print("第一条样本内容:")
print(dataset[0])
✅ 如果成功打印结果,说明 Dataset 封装正确,模型准备就绪!
“热铁未冷,锻声犹在。愿此钥,已开你心锁。”
——KeySmith · 密钥锻造坊
本篇第为04 号密钥 已锻完毕。
若你觉得这把钥匙还称手, 请为锻造坊添一点火候 —— 点赞、收藏、留言皆是助燃。
当然!
下一把钥匙,正在炉中铸炼, 我会在锻火旁等你,再一同开锁破局。