×

10、自然语言处理

hqy hqy 发表于2025-06-07 16:56:41 浏览1 评论0百度已收录

抢沙发发表评论

10.1 基础概念

10.1.1 核心挑战

挑战类型

描述

示例

歧义消解

同一表述蕴含多种语义

“苹果”究竟指代水果,抑或象征某家公司

语境依存

语义随上下文语境而变迁

“他走了”究竟意味着离开,还是代表着离世

非规范性处理

存在口语化表达、拼写差错等非标准输入情形

以“肿么办”替代“怎么办”

多语言处理难题

不同语言间存在结构上的显著差异

中文不存在时态变化,而英语却有16种时态之多

10.1.2 处理层级

10.2 文本预处理技艺

10.2.1 分词算法

最大匹配法def max_match(sentence, word_dict, max_len=5): # 初始化结果列表,用于存储分词结果 result = [] # 当句子还有剩余部分未处理时,持续进行分词操作 while sentence: # 从最大可能的匹配长度开始,逐步递减尝试匹配 for i in range(min(max_len, len(sentence)), 0, -1): # 检查当前截取的部分是否在词典中 if sentence[:i] in word_dict: # 若匹配成功,将该部分添加到结果列表中 result.append(sentence[:i]) # 从句子中移除已匹配的部分 sentence = sentence[i:] # 找到匹配后,跳出内层循环 break # 返回最终的分词结果 return result 基于统计的方法: 互信息:计算公式为
隐马尔可夫模型(HMM)/维特比(Viterbi)算法

10.2.2 特征表示

表征方式

特性

维度典型数值

独热编码(One - Hot)

呈现高维稀疏之态

10⁴-10⁶

词频 - 逆文档频率(TF - IDF)

可体现词汇的重要程度

与独热编码相同

词向量(Word2Vec)

能耦合低维语义空间

100 - 300

BERT嵌入

具备上下文相关的表征能力

768 - 1024

10.3 核心任务与技术

10.3.1 语言模型

n - 元语法(n - gram)模型
神经网络语言模型class RNNLM(nn.Module): def __init__(self, vocabulary_size, embedding_size, hidden_layer_size): # 调用父类的构造函数进行初始化 super().__init__() # 定义词嵌入层,将词汇映射到低维向量空间 self.embed = nn.Embedding(vocabulary_size, embedding_size) # 定义长短期记忆网络(LSTM)层,处理序列数据 self.rnn = nn.LSTM(embedding_size, hidden_layer_size) # 定义全连接层,将隐藏层输出映射到词汇表大小的维度 self.fc = nn.Linear(hidden_layer_size, vocabulary_size)

10.3.2 序列标注

双向长短期记忆网络 - 条件随机场(BiLSTM - CRF)模型
标注示例:原句:北京乃中国之首都 BIO标注:北/B - LOC 京/I - LOC 是/O 中/B - COUNTRY 国/I - COUNTRY 的/O 首/O 都/O

10.4 深度学习模型

10.4.1 Transformer架构

自注意力机制
编码器架构class TransformerEncoderLayer(nn.Module): def __init__(self, d_model, nhead): # 调用父类的初始化方法 super().__init__() # 实例化多头注意力机制 self.self_attn = MultiheadAttention(d_model, nhead) # 实例化位置感知前馈网络 self.ffn = PositionwiseFFN(d_model)

10.4.2 预训练模型对比

模型

关键技术

典型配置

BERT

双向Transformer掩码语言模型

基础版本:12层,768个隐层单元

GPT

自回归语言模型

GPT - 3:具备1750亿参数

T5

文本到文本统一框架

拥有11B参数

BART

去噪自编码器架构

12层编码器搭配12层解码器

10.5 应用系统

10.5.1 机器翻译

端到端架构
评估指标: BLEU:对n - 元语法精度进行加权平均 METEOR:将同义词与词干纳入考量

10.5.2 智能问答

系统组件: 问题分类 信息检索 答案生成BERT微调示例# 从预训练的bert-base-uncased模型加载用于问答任务的BERT模型 model = BertForQuestionAnswering.from_pretrained(bert-base-uncased) # 将输入的ID、注意力掩码、起始位置和结束位置输入到模型中进行推理,获取输出结果 outputs = model(input_ids, attention_mask=attention_mask, start_positions=start_pos, end_positions=end_pos)

10.6 前沿方向

10.6.1 大语言模型

涌现能力: 少样本学习 思维链推理 指令跟随提示工程# 构建一个用于根据上下文回答问题的提示模板 prompt = """请依据给定上下文对问题予以解答: 上下文:{context} 问题:{question} 答案:"""

10.6.2 多模态处理

CLIP模型
应用场景: 图文检索 视觉问答 跨模态生成

小结

自然语言处理领域的核心挑战与关键技术涵盖如下方面:

实现多层次的语言理解与精准生成历经从统计方法向神经架构的卓越演进凸显预训练 - 微调范式的主导性地位聚焦多模态与大模型的前沿性发展

关键词:词嵌入、注意力机制、序列标注、迁移学习、提示工程。