# 实验四(文本序列建模,PyTorch 版) 本目录提供“人工智能实验4”的完全重构实现,移除了对 Keras 的依赖,改用 PyTorch 并在离线环境下可运行(若未提供语料,将使用内置的极小玩具语料做演示)。 ## 结构 - `lab04/data.py` - 加载英文/法文语料;优先搜索 `Lab04/data/` 与 `人工智能实验4/data/`,若均不存在则回退到内置少量句子。 - `lab04/preprocess.py` - 轻量分词(按空格)与词表构建;id 映射;序列 padding(支持按参考长度对齐)。 - `lab04/models.py` - 简单的 BiGRU + 线性分类头,对每个时间步预测目标词(等价于原 Keras 版本的 Bidirectional(SimpleRNN) + TimeDistributed(Dense) 思路)。 - `lab04/train.py` - 端到端训练与评估脚本:读取语料、预处理、训练模型、输出 `Lab04/result.txt` 前 10 个样本的翻译结果(演示用)。 ## 运行 1) 可选:放置语料 - 将 `small_vocab_en.txt` 与 `small_vocab_fr.txt` 放入 `Lab04/data/`(或保留在 `人工智能实验4/data/`)。每行一条句子,对齐的同一行互为翻译。 2) 训练与导出示例结果 ```bash python3 Lab04/lab04/train.py --epochs 3 --batch-size 128 # 运行结束后生成 Lab04/result.txt ``` 3) 重要说明 - 本实现为教学演示:模型在输入序列的每个时间步直接预测目标词,未使用编码器-解码器与注意力机制,因此对“非逐词对齐”的真实翻译问题能力有限。用于作业演示足够,若要获得更好翻译效果,应进一步实现 Seq2Seq/Attention。 - 若无外部语料,脚本会自动使用内置的 10 余条玩具句子运行,便于离线环境快速验证流程。