背景知识
自然语言处理(natural language processing, NLP)
NLP发展历程
阶段一:图灵测试 该测试的流程是,一名测试者写下自己的问题,随后将问题以纯文本的形式(如计算机屏幕和键盘)发送给另一个房间中的一个人与一台机器。测试者根据他们的回答来判断哪一个是真人,哪一个是机器。所有参与测试的人或机器都会被分开。这个测试旨在探究机器能否模拟出与人类相似或无法区分的智能 [1]。 现在的图灵测试测试时长通常为5分钟,如果电脑能回答由人类测试者提出的一系列问题,且其超过30%的回答让测试者误认为是人类所答,则电脑通过测试。
阶段二:基于规则的方法 自然语言处理的最早阶段主要采用基于规则的方法,通过人工定义语法和规则来解析和生成文本。这些方法的局限性在于难以涵盖语言的复杂性和多样性,因为规则需要人为设计且难以适应不同的语境。
阶段三:统计学习方法 随着统计学习方法的兴起,自然语言处理进入了统计学习阶段。该阶段的代表性方法包括隐马尔可夫模型(Hidden Markov Models,HMM)和最大熵模型(Maximum Entropy Models)。这些方法通过从大量语料中学习统计规律来解决语言处理问题,提高了模型的泛化能力。
阶段四:深度学习与神经网络 深度学习的广泛应用推动了自然语言处理领域的进一步发展。循环神经网络(Recurrent Neural Networks,RNN)和长短时记忆网络(Long Short-Term Memory,LSTM)等模型在序列标注、机器翻译等任务上取得了显著的成果。随后,注意力机制和Transformer模型的提出进一步提升了自然语言处理的性能,例如BERT、GPT等模型。
AI发展历程
第一阶段-AI兴起:人工智能的诞生(1941- 1956)
第二阶段-AI早期成功:AI黄金发展时代(1956-1974)
第三阶段-AI第一次寒冬:神经网络遇冷,研究经费减少(1974~1980)
第四阶段-AI复兴:第二次AI黄金发展时代,专家系统流行并商用(1980~1987)
第五阶段-AI第二次寒冬:专家系统溃败,研究经费大减(1987~1993)
第六阶段-AI崛起:深度学习理论和工程突破(1993至今)
语言模型
用于捕捉自然语言中词汇,短语和句子的概率分布的统计模型。根据给定的上下文,预测接下来出现的单词。
语料库
大量自然语言文本的集合
- 通用领域语料库
- 特定领域语料库
数据预处理
数据采集:获取文本数据,可以来自各种来源,如网页、社交媒体、新闻文章、文本文件等。数据采集可能需要网络爬虫或API调用。
文本清洗:清除不需要的字符、符号、HTML标签等。这通常涉及使用正则表达式和文本处理库来进行清洗。清洗后的文本更易于分析和处理。
分词:将文本分割成单词或标记。分词是将文本数据转化为机器可理解的基本单位,有助于构建词汇表和分析文本结构。
停用词去除:停用词是常见的无实际信息的词语,如“the”、“and”等。通常需要将它们从文本中去除,以减小词汇表的大小。
词干提取和词形还原:这有助于将单词还原为其基本形式,以减少词汇多样性。例如,将“running”还原为“run”。
特征提取:将文本转化为数值特征,例如词袋模型、TF-IDF权重等。这是将文本数据转化为可以用于机器学习模型的数值表示的重要步骤。
数据标记和标签:对文本数据进行标记和分类,以便用于监督学习任务,如文本分类或命名实体识别。
统计语言模型的发展历程
出现很早,但由于网络结构和数据量的限制,早期并没有实现突破性应用。存在不少缺点:过拟合,无法处理文本间长距离依赖性等。
1948 N-Gram模型:基于前N-1个词来预测第N个词
1954 Bag-of-word模型: 将一个句子或文档表示为单词的集合,不考虑单词在文本中的顺序。不能捕捉语义语法信息。
1986 分布式表示法:将单词或短语表示为数值向量的方法。具有较多的语法和句意信息。解决了Bag-of-Word模型和独热编码中的词汇鸿沟问题。
2003 神经概率语言模型: 通过神经网络对语言进行建模
2013 WordtoVec: 通过训练神经网络模型来学习词汇的分布式表示,简单又高效。两种架构:CBOW模型和Skip-Gram模型。可以捕捉到单词之间的相似性和语义语法信息。
2018以后 基于Transformer的预训练语言模型:通过更大的语料库和更复杂的神经网络体系结构来进行语法语义的学习
基于Transformer框架的预训练语言模型
自然语言处理中的预训练,通常指在大量无标注文本数据上训练语言模型。预训练所得的大规模语言模型也被叫做‘基础模型’。
在预训练过程中,模型学习了词汇,语法,句子结构及上下文信息等语言知识。这种知识为后续下游任务提供了一个通用的,丰富的语言表示基础,为解决许多复杂的NLP问题提供了可能。
BERT,GPT
BERT和GPT的区别主要有三点:
- 训练目标:BERT使用双向上下文进行掩码语言建模,而GPT通过单向自回归预测下一个词。
- 架构:BERT基于Transformer编码器,关注上下文理解;GPT基于Transformer解码器,侧重文本生成。
- 应用场景:BERT擅长文本分类、问答等理解任务,GPT更适合文本生成、续写等创作任务。
预训练+微调大模型
预训练:大量无标注文本数据 -> fine-tuning(微调):创建带有相应标签的数据集
大模型应用方式: fine-tuning, RAG(检索增强生成), Agent(智能体), workflow,prompt(提示词工程),蒸馏
以提示/指令模式使用大模型
prompt/instruct模式和’预训练+微调大模型’的异同
- 预训练+微调大模型:通过在特定任务上对模型进行微调,使得模型更加精确适应任务需求
- prompt/instruct模式:直接利用预训练语言模型的生成能力,更加灵活
GPT
目标:最大化语句序列出现的概率
自然语言处理(NLP)常见任务
- 基础任务:分词、词性标注、命名实体识别(NER)、句法分析(依存/成分句法)。
- 语义理解:语义角色标注、词义消歧、语义相似度计算、文本蕴含判断。
- 文本分类:情感分析、主题分类、垃圾邮件检测、意图识别。
- 生成与翻译:机器翻译、文本摘要、对话生成、文本续写(如GPT)。
- 信息抽取:关系抽取、事件抽取、关键词提取、知识图谱构建。
- 问答系统:开放域问答、阅读理解(如SQuAD)、FAQ匹配。
- 应用任务:文本纠错、文本聚类、推荐系统、多模态交互(文本+图像/语音)。
百炼平台 云工开物 wildcard
语言模型基础
词表
定义和作用:从语料库中提取的词汇集合,是将文本转换为数值形式(词向量,索引序列)的基础
构建要点:
- 词频统计
- 词表大小选择
- 特殊标记
未登录词 在自然语言处理(NLP)中,未登录词(Out-of-Vocabulary, OOV) 是指未被预先构建的词表(Vocabulary)或训练数据覆盖的词语。这类词会导致模型无法有效处理,常见原因包括:
新词:如网络流行语(“绝绝子”)、专业术语或领域专有名词。 形态变化:如英文的“unhappiness”(若词表仅含“happy”)。 拼写错误:如“teh”代替“the”。 低频词:在训练数据中出现次数过少而被过滤的词。
影响:OOV会降低分词、词性标注、翻译等任务的性能。例如,中文分词可能因未登录词导致切分错误。
停用词 在自然语言处理(NLP)中,停用词(Stop Words) 是指文本中频繁出现但语义贡献较低的词,通常会被预处理阶段过滤以提升模型效率。例如:
常见停用词: 中文:的、了、是、在、和、而等。 英文:the, a, an, and, is, of 等。
核心作用: 降噪:减少无意义词对文本分类、情感分析等任务的干扰。 节省资源:降低特征维度,加速模型训练(如TF-IDF或词袋模型)。 提升效果:避免高频词掩盖关键语义(如搜索索引中优先匹配内容词)。
应用场景: 需要过滤:文本分类、搜索引擎、主题建模(如LDA)。 可能需要保留:对话系统(如“不”、“吗”影响语气)、某些实体识别任务(如“和”连接人名)。
分词 将连续的文本序列拆分成较小的基础单位(单词,子词或字符)的过程。分词方式会根据语言和应用场景有所不同。
重要性
- 分词是文本预处理的首要步骤,直接影响词表构建,词向量训练和后续模型对语义的理解
- 合理分词可以减少噪声,降低数据维度,使模型更加高效
Embedding 技术
将高维数据映射到低维空间的方法,通过将复杂,离散的数据(文本,图像,网络)转换为连续的数值向量表示,使计算机能够处理和分析数据
训练 和 预训练的区别
训练 垂直领域数据
预训练 通用领域数据



说些什么吧!