Skip to content

university-code-set/nlp

Repository files navigation

Natural Language Processing (NLP) 学习项目

本仓库是自然语言处理(NLP)的学习与研究项目集合,涵盖了从基础技术到前沿应用的完整学习路径。

项目结构

NLP/
├── chinese-poetry-generate/   # 中文古诗词生成
├── dl1/                       # Seq2Seq 聊天机器人
├── dlnlpproject/              # 深度学习 NLP 基础教程 + 分类/翻译实践
├── graduation-project/        # 毕业设计:智能视频语音控制系统
├── HMM/                       # 隐马尔可夫模型词性标注
├── machine-translation/       # 英法机器翻译
├── rainbow/                   # 辅助数据
├── text_process/              # 文本预处理
├── test.py                    # 诗词数据处理工具
└── test1.py                   # 简单词数统计

各项目简介

1. chinese-poetry-generate/ — 中文古诗词生成

基于 GPT-2 中文模型微调,结合 WGAN-GP 对抗训练生成中国古诗词。

核心技术:

  • GPT-2 中文小模型微调(LoRA / Tag 条件生成)
  • WGAN-GP(Wasserstein GAN + 梯度惩罚)提升生成质量
  • BERT-base 分词器 + 古文 BERT(guwen-bert)
  • jieba + TF-IDF 提取诗词关键词作为条件标签
  • OpenCC 繁简中文转换

主要文件:

文件 说明
main.py 模型训练主脚本
nn.py GPT-2 模型加载与定义
utils.py 工具函数(文本简化、TF-IDF 标签提取)
data_preprocessig.py 数据集加载与预处理
loss.py WGAN-GP 梯度惩罚计算
test.py 测试脚本

2. dl1/ — Seq2Seq 聊天机器人

基于 LSTM 编码器-解码器架构的中文对话系统。

核心技术:

  • 双向 LSTM Encoder + Decoder 架构
  • jieba 中文分词
  • Adam 优化器训练

主要文件:

文件 说明
settings.py 超参数配置
datapreprocessing.py 数据加载与 WordSet/Dataset 构建
nn.py Seq2Seq 模型定义(LSTM)
train.py 训练循环

3. dlnlpproject/ — 深度学习 NLP 基础

系统性的 PyTorch NLP 学习教程,从张量基础到完整实战。

子模块:

子目录 内容 技术栈
basic.py / basicop.py / dimensionop.py PyTorch 张量基础操作 PyTorch
activationfunction.py 常用激活函数 PyTorch
lossfun.py 常用损失函数 PyTorch
classification/ 短信垃圾分类(SMS Spam) MLP 分类器
machinetranslation/ 英法机器翻译 + 从零实现 Transformer Seq2Seq, GRU, Multi-Head Attention

Transformer 从零实现亮点:

  • 多头自注意力机制(Multi-Head Self-Attention)
  • 位置编码(Positional Encoding)
  • 编码器-解码器架构
  • Padding Mask + Look-ahead Mask

4. graduation-project/ — 毕业设计:智能视频语音控制系统

融合 NLP 与视频技术的综合项目,支持语音指令控制视频播放。

系统架构:

语音输入 → 语音识别 → BERT 意图分类 → 视频操作
                                          ├── 语义检索(ChromaDB)
                                          ├── 视频播放控制
                                          └── 片段导航

核心技术:

  • BERT 意图分类:识别 prev / next / repeat / query 四种指令
  • ChromaDB 向量数据库:存储视频片段语义向量,支持相似度检索
  • SQLite 关系数据库:视频元数据与字幕内容管理
  • Next.js 前端:视频播放器 + 语音唤醒 + 文本/语音输入

目录结构:

路径 说明
data_preprocessing.py 意图分类数据预处理
databases/sql_db.py SQLite 数据库 CRUD
databases/vector_db.py ChromaDB 向量数据库操作
frontend/ Next.js 前端应用
frontend/src/components/ VideoPlayer, VoiceInput, TextInput 等组件
frontend/src/services/api.js 后端 REST API 调用

5. HMM/ — 隐马尔可夫模型词性标注

经典统计 NLP 实践,用 HMM + Viterbi 算法实现词性标注(POS Tagging)。

核心技术:

  • 转移概率矩阵(A)、发射概率矩阵(B)、初始概率(π)
  • Viterbi 动态规划解码
  • 对数概率防止数值下溢

6. machine-translation/ — 英法机器翻译

基于 GRU 的 Seq2Seq 英语→法语翻译模型。

核心技术:

  • 双向 GRU 编码器 + GRU 解码器
  • 嵌入维度 50,隐藏层 128,2 层 GRU
  • 英语词汇量 25,169,法语词汇量 41,082

7. text_process/ — 文本预处理

NLP 文本清洗与预处理流水线。

功能:

  • 标点/数字去除、NLTK 分词
  • 词性标注(POS Tagging)
  • WordNet 词形还原
  • SnowballStemmer 词干提取
  • 构建 word2id 词典

技术栈

类别 技术
深度学习框架 PyTorch
NLP 模型 Transformers (GPT-2, BERT), LSTM, GRU, HMM
NLP 工具 jieba, NLTK, OpenCC
向量数据库 ChromaDB
关系数据库 SQLite
前端 Next.js 16, React 19
语言 Python 3.10+, JavaScript

快速开始

各子项目均为独立模块,可直接进入对应目录运行。

# 示例:运行 HMM 词性标注
cd HMM
python source.py

# 示例:运行短信垃圾分类训练
cd dlnlpproject/classification
python train.py

注意: 模型文件、数据集、论文 PDF 等大文件已通过 .gitignore 排除,需自行下载预训练模型和准备数据集。


许可

本项目仅用于学习与研究目的。

About

自然语言处理

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors