文章目录
- [1 NLP导论](#1 NLP导论)
-
- [1.1 定义](#1.1 定义)
- [1.2 常见任务](#1.2 常见任务)
-
- [1.2.1 文本分类](#1.2.1 文本分类)
- [1.2.2 序列标注](#1.2.2 序列标注)
- [1.2.3 文本生成](#1.2.3 文本生成)
- [1.2.4 信息抽取](#1.2.4 信息抽取)
- [1.2.5 文本转换](#1.2.5 文本转换)
- [1.3 技术演进历史](#1.3 技术演进历史)
-
- [1.3.1 规则系统阶段](#1.3.1 规则系统阶段)
- [1.3.2 统计方法阶段](#1.3.2 统计方法阶段)
- [1.3.3 机器学习阶段](#1.3.3 机器学习阶段)
- [1.3.4 深度学习阶段](#1.3.4 深度学习阶段)
- [2 环境准备](#2 环境准备)
-
- [2.1 创建conda环境](#2.1 创建conda环境)
- [2.2 安装所需依赖](#2.2 安装所需依赖)
1 NLP导论
1.1 定义
- 自然语言处理(Natural Language Processing, NLP),是人工智能领域的一个重要分支。
- 自然语言,指人类日常使用的语言,NLP 的目标是让计算机"理解"或"使用"这些语言。
1.2 常见任务
1.2.1 文本分类
- 对整段文本进行判断或归类。
- 常见应用:情感分析(判断评价是正面还是负面)、垃圾邮件识别、新闻主题分类等。
1.2.2 序列标注
- 对一段文本中的每个词或字打上标签。
- 常见应用:命名实体识别(找出人名、地名、手机号码等)。
- B-XXXX:实体开始、I-XXXX:实体中间、O:实体外部。
1.2.3 文本生成
- 根据已有内容生成新的自然语言文本。
- 常见应用:自动写作、摘要生成、智能回复、对话系统等。
1.2.4 信息抽取
- 从文本中提取出结构化的信息。
- 常见应用:给出一段文本和一个问题,从中抽取答案。
1.2.5 文本转换
- 将一种文本转换为另一种形式。
- 常见应用:机器翻译,摘要生成等。
1.3 技术演进历史
1.3.1 规则系统阶段
在20世纪50年代至80年代初,自然语言处理主要依赖人工编写的语言规则,这些规则由语言学家和程序员手动制定。
这一阶段的代表系统有早期的机器翻译系统(如Georgetown-IBM实验)和ELIZA聊天机器人。这类系统在特定领域表现良好,但缺乏通用性,扩展性差,对语言的复杂性处理有限。
1.3.2 统计方法阶段
90年代,随着计算能力的提升和语料资源的积累,统计方法逐渐成为主流。通过对大量文本数据进行概率建模,系统能够"学习"语言中的模式和规律。
典型方法包括 N-gram 模型、隐马尔可夫模型(HMM)和最大熵模型。这一阶段标志着从"专家经验"向"数据驱动"方法的转变。
N-gram 模型是一种基于统计的方法,用于预测一个词在给定前几个词之后出现的可能性。它是自然语言处理中最早出现的语言建模方法之一。该模型的核心思想是一个词出现的概率,只取决于它前面 N-1 个词。
1.3.3 机器学习阶段
进入21世纪,NLP技术逐步引入传统机器学习方法,如逻辑回归、支持向量机(SVM)、决策树、条件随机场(CRF)等。这些方法在命名实体识别、文本分类等任务上表现出色。
在此阶段,特征工程成为关键环节,研究者需要设计大量手工特征来提升模型性能。该阶段的特点是学习算法更为复杂,模型泛化能力增强。
例如:基于词袋模型与逻辑回归的文本分类。词袋模型通过统计词频来表示文本,虽直接且简单,但它有一个明显的局限------它完全忽略了词语的顺序。
如下两条完全相反的评论:
- 评论A:"服务很好但味道差劲"
- 评论B:"味道很好但服务差劲"
分词后结果分别是:
- "服务很好但味道差劲":["服务","很","好","但","味道","差劲"]
- "味道很好但服务差劲":["味道","很","好","但","服务","差劲"]
很明显,这两条评论在词袋模型中的特证向量是完全相同的。为了解决这个问题,引入了 N-gram。N-gram 是将相邻的 n 个词作为一个整体来建模,这样就能保留一部分的词序信息。
1.3.4 深度学习阶段
自2010年代中期开始,深度学习在NLP中迅速崛起。基于神经网络的模型RNN、LSTM、GRU等,取代了传统手工特征工程,能够从海量数据中自动提取语义表示。
随后,Transformer架构的提出极大提升了语言理解与生成的能力,深度学习不仅在精度上实现突破,也推动了预训练语言模型(如GPT、BERT等)和迁移学习的发展,使NLP技术更通用、更强大。
2 环境准备
2.1 创建conda环境
- 终端输入如下命令,创建项目的虚拟环境,并指定Python版本:
conda create -n nlp python=3.12 - 激活该虚拟环境:
conda activate nlp
2.2 安装所需依赖
- pytorch:深度学习框架,主要用于模型的构建、训练与推理。
- jieba:高效的中文分词工具,用于对原始中文文本进行分词预处理。
- gensim:用于训练词向量模型(如 Word2Vec、FastText),提升模型对词语语义关系的理解。
- transformers:由 Hugging Face 提供的预训练模型库,用于加载和微调 BERT 等主流模型。
- datasets:Hugging Face 提供的数据处理库,用于高效加载和预处理大规模数据集。
- TensorBoard:可视化工具,用于展示训练过程中的损失函数、准确率等指标变化。
- tqdm:用于显示进度条,帮助实时监控训练与数据处理的进度。
- Jupyter Notebook:交互式开发环境,用于编写、测试和可视化模型代码与实验过程。
2.2.1安装命令
- 安装pytorch
使用nvidia-smi查看CUDA版本,并根据其版本选择PyTorch版本进行安装:pip3 install torch --index-url https://download.pytorch.org/whl/cu128 - 安装其余依赖
其余依赖安装最新版本即可:pip install jieba gensim transformers datasets tensorboard tqdm jupyter