【NLP入门笔记】:自然语言处理基础与文本预处理

一、 自然语言处理(NLP)核心认知

1. NLP 定义

自然语言处理(Natural Language Processing,NLP)是人工智能(AI)的核心分支之一,核心目标是让计算机能够理解、处理、生成人类的自然语言,实现人机之间的自然语言交互。

简单来说,NLP 架起了"人类语言"和"计算机语言"之间的桥梁------计算机本身只能识别 0/1 数字,而 NLP 就是让计算机读懂文字、听懂语音、甚至生成符合人类逻辑的语言。

2. NLP 发展简史

NLP 的技术演进遵循着一条清晰的路径:从早期的人工规则到如今的大模型驱动。

时间阶段 核心特征 关键技术/事件
1950 年 概念萌芽 图灵提出"机器能够思考吗?",图灵测试成为早期目标。
1957-1970 年 两大阵营形成 规则派 (依赖人工编写语法规则)与统计派(依赖语料库统计规律)首次对立。
1994-1999 年 统计方法主导 基于统计的机器学习算法(如隐马尔可夫模型 HMM)成为主流。
2000-2008 年 机器学习引领 SVM、最大熵模型等算法成熟,NLP 任务效果大幅提升。
2015-2023 年 深度学习革新 神经网络(CNN/RNN/Transformer)崛起,BERT、GPT 等预训练模型颠覆了传统范式。
2023 年至今 大模型时代 以 GPT-4 为代表的大语言模型(LLM)涌现,AIGC 成为核心应用方向。

3. NLP 典型应用场景

NLP 技术已深度融入我们的日常生活与工作中:

  • 语音交互

    • 语音识别:如手机语音输入法,将我们说的话转成文字。
    • 语音合成:如地图导航语音播报,将文字转换成自然语音。
    • 智能助手:如小爱同学、Siri,通过语音指令完成各种任务。
  • 文本处理

    • 机器翻译:如谷歌翻译、DeepL,实现多语言的实时互译。
    • 情感分析:分析商品评论、社交媒体帖子的情感倾向(正面/负面/中性)。
    • 文本摘要/关键词提取:自动生成长篇文章的核心摘要或关键信息。
  • 检索与对话

    • 搜索引擎:理解用户的搜索意图,返回最相关的结果。
    • 智能推荐:根据用户行为和偏好推荐商品或内容。
    • 智能客服/聊天机器人:7x24 小时在线,解答用户疑问。

二、 文本预处理:NLP 任务的基石

1. 文本预处理的核心作用

所有 NLP 任务都始于文本预处理。原始文本(如新闻、评论)是"非结构化"的,包含大量噪声,无法直接被模型使用。预处理的目的就是将这些原始文本清洗、转化为模型能够理解的"结构化数据"

2. 文本处理的基本方法

(1) 分词:中文文本处理的核心步骤
  • 分词的意义

    词是表达语义的基本单元。英文单词之间有天然的空格分隔,而中文句子是连续的字符流。因此,必须先通过分词将句子切分成有意义的词语序列(例如,将"我爱北京天安门"切分为"我 / 爱 / 北京 / 天安门"),模型才能进行后续的理解和分析。

  • jieba 分词工具的三种模式
    jieba(结巴分词)是 Python 中最流行、易用的中文分词库。

精确模式(默认)

  • 特点:力求将句子最精确地切分,结果符合人类语言习惯,最常用。
  • 示例效果 :"传智教育是一家上市公司" 会被切分为 ['传智', '教育', '是', '一家', '上市公司']
python 复制代码
import jieba

# 待分词文本
content = "传智教育是一家上市公司,旗下有黑马程序员品牌。我是在黑马这里学习人工智能"
# 精确模式(cut_all=False 可省略)
result = jieba.lcut(content, cut_all=False)
print("精确模式分词结果:", result)
# 输出:['传智', '教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工智能']

全模式

  • 特点:将句子中所有可能成词的词语都扫描出来,速度快但会产生冗余,适合关键词提取等场景。
  • 示例效果 :"上市公司" 可能会被额外切分出 '上市''公司'
python 复制代码
result = jieba.lcut(content, cut_all=True)
print("全模式分词结果:", result)
# 输出:['传', '智', '教育', '是', '一家', '上市', '上市公司', '公司', ',', '旗下', '下有', '黑马', '程序', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工', '人工智能', '智能']

搜索引擎模式

  • 特点:在精确模式的基础上,对长词再次切分,以提高搜索时的召回率。
  • 示例效果 :"人工智能" 可能会被额外切分出 '人工''智能'
python 复制代码
result = jieba.lcut_for_search(content)
print("搜索引擎模式分词结果:", result)
# 输出:['传智', '教育', '是', '一家', '上市', '公司', '上市公司', ',', '旗下', '有', '黑马', '程序', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工', '智能', '人工智能']
  • jieba 高级用法:自定义词典
    当遇到新词、专业术语或品牌名时(如"黑马程序员"),jieba 默认可能会切错(如切成"黑马 / 程序员")。通过提供一个自定义词典文件,我们可以"教会"jieba 正确地识别这些新词,从而显著提升分词准确率。

步骤 1:创建自定义词典文件 userdict.txt,格式为:词汇 词频(可选) 词性(可选)

python 复制代码
黑马程序员 5 n
传智教育 6 n
人工智能 7 nz
学习 3
上市 3 

步骤 2:加载词典并分词:

python 复制代码
import jieba

sentence = "传智教育是一家上市公司,旗下有黑马程序员品牌。我是在黑马这里学习人工智能"
# 未加载自定义词典
result1 = jieba.lcut(sentence)
print("未加载词典:", result1)
# 加载自定义词典
jieba.load_userdict("./userdict.txt")
result2 = jieba.lcut(sentence)
print("加载词典后:", result2)
# 输出对比:
# 未加载:['传智', '教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工智能']
# 加载后:['传智教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工智能']
(2) 词性标注 (POS Tagging)
  • 定义 :在分词的基础上,为每个词语标注其语法属性(如名词 n、动词 v、形容词 a 等)。
  • 作用:帮助模型更深入地理解句子的语法结构,是句法分析、信息抽取等高级任务的基础。
  • 示例效果 :"我喜欢学习" 的标注结果可能是 我(r-代词) 喜欢(v-动词) 学习(v-动词)
python 复制代码
import jieba.posseg as pseg

content = "我喜欢学习人工智能"
# 词性标注(返回 pair 类型,包含词和词性)
result = pseg.lcut(content)
# 遍历输出词和词性
for word, flag in result:
    print(f"{word} → {flag}")
# 输出:
# 我 → r(代词)
# 喜欢 → v(动词)
# 学习 → v(动词)
# 人工智能 → nz(专有名词)
(3) 命名实体识别 (NER)
  • 定义 :从文本中识别并提取出具有特定意义的实体,主要包括:
    • 人名(如"马云")
    • 地名(如"杭州")
    • 机构名(如"阿里巴巴")
    • 时间、日期、货币等。
  • 作用:是信息抽取、构建知识图谱、智能问答等应用的关键技术。

3. 文本张量的表示方法

模型只能处理数字,因此必须将分词后的文本转换为数值形式的向量或张量。

  • One-Hot 编码 (独热编码)

    • 定义:一种最简单的表示方法。为词汇表中的每个词创建一个长向量,向量中只有一个位置是 1(代表当前词),其余全是 0。
    • 优点:简单、直观。
    • 缺点 :① 维度灾难 :当词汇量巨大时,向量维度极高且稀疏。② 语义鸿沟:无法表达词与词之间的语义相似性(例如,"苹果"和"香蕉"的向量是完全独立的)。
  • Word2Vec (词向量)

    • 定义:一种经典的词嵌入技术,将每个词映射到一个低维(如100维)的稠密向量。
    • 核心思想:"物以类聚,词以群分"。上下文相似的词,其对应的词向量在空间中的距离也更近。
    • 优点:维度低,能有效捕捉词汇间的语义相似性。
    • 缺点:是静态向量,无法解决"一词多义"问题(例如,"苹果"无论是作水果还是手机,其向量都相同)。
  • Word Embedding (动态词嵌入)

    • 定义:深度学习时代的先进词向量技术,是 Word2Vec 的升级版。
    • 核心特点上下文相关。同一个词在不同的语境下会生成不同的向量,从而有效解决了多义词问题。
    • 应用:当前所有主流大语言模型(如 BERT、GPT)的核心基础。

三、 本日入门小结

  1. 理解了 NLP 的核心定义、发展脉络和广泛应用
  2. 掌握了文本预处理是 NLP 任务的必要前置步骤
  3. 熟悉了中文预处理的核心工具 jieba 分词,包括其三种模式和自定义词典的用法。
  4. 了解了将文本数值化的三种主要方法:One-Hot、Word2Vec 和 Word Embedding,并清楚了它们的优缺点。

四、 后续学习方向

  1. 文本预处理进阶:学习去停用词、文本清洗、正则表达式等高级技巧。
  2. 词向量实战:尝试使用 Word2Vec 训练自己领域的词向量模型。
  3. 基础 NLP 任务:基于已学知识,动手实现简单的文本分类或情感分析项目。

五、参考资料

黑马程序员AI大模型NLP自然语言处理全套视频教程,从传统序列模型到基于Transformer的预训练模型,构建完整NLP知识体系与项目实战


感谢阅读!如果这篇文章对你有帮助,欢迎点赞、收藏并关注我,我们下期再见!

相关推荐
却道天凉_好个秋5 小时前
Tensorflow数据增强(三):高级裁剪
人工智能·深度学习·tensorflow
藦卡机器人5 小时前
国产机械臂做的比较好的品牌有哪些?
大数据·数据库·人工智能
迎仔5 小时前
06-AI开发进阶
人工智能
陈天伟教授5 小时前
人工智能应用- 语言处理:01.机器翻译:人类语言的特点
人工智能·自然语言处理·机器翻译
Codebee5 小时前
OoderAgent 相比主流Agent框架的五大核心独特优势
人工智能
home_4985 小时前
与gemini关于神的对话
人工智能·科幻·神学
代码改善世界5 小时前
CANN深度解构:中国AI系统软件的原创性突破与架构创新
大数据·人工智能·架构
Fairy要carry5 小时前
面试-Torch函数
人工智能
aiguangyuan5 小时前
基于BERT的中文命名实体识别实战解析
人工智能·python·nlp