AI训练师图解_6.1_让AI理解人类语言_自然语言处理

6.1 让AI理解人类语言:自然语言处理

文章目录

    • [6.1 让AI理解人类语言:自然语言处理](#6.1 让AI理解人类语言:自然语言处理)
      • [6.1.1 概念解读:什么是自然语言处理?](#6.1.1 概念解读:什么是自然语言处理?)
      • [6.1.2 底层原理:语言学与计算机科学的交汇](#6.1.2 底层原理:语言学与计算机科学的交汇)
      • [6.1.3 自然语言处理的两种途径:传统与深度](#6.1.3 自然语言处理的两种途径:传统与深度)
        • [案例53 使用深度学习模型处理NLP来实现情感分析任务](#案例53 使用深度学习模型处理NLP来实现情感分析任务)
      • [6.1.4 自然语言处理的两大核心任务:理解与生成](#6.1.4 自然语言处理的两大核心任务:理解与生成)
        • [案例54 基于自然语言处理的智能问答系统---小米小爱同学](#案例54 基于自然语言处理的智能问答系统—小米小爱同学)
      • [6.1.5 语料预处理的6个关键步骤](#6.1.5 语料预处理的6个关键步骤)
        • [案例55 使用HanLP进行中文分词处理](#案例55 使用HanLP进行中文分词处理)

#mermaid-svg-PeTnFI7abmg9vcB9{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-PeTnFI7abmg9vcB9 .error-icon{fill:#552222;}#mermaid-svg-PeTnFI7abmg9vcB9 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-PeTnFI7abmg9vcB9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-PeTnFI7abmg9vcB9 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-PeTnFI7abmg9vcB9 .marker.cross{stroke:#333333;}#mermaid-svg-PeTnFI7abmg9vcB9 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-PeTnFI7abmg9vcB9 p{margin:0;}#mermaid-svg-PeTnFI7abmg9vcB9 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-PeTnFI7abmg9vcB9 .cluster-label text{fill:#333;}#mermaid-svg-PeTnFI7abmg9vcB9 .cluster-label span{color:#333;}#mermaid-svg-PeTnFI7abmg9vcB9 .cluster-label span p{background-color:transparent;}#mermaid-svg-PeTnFI7abmg9vcB9 .label text,#mermaid-svg-PeTnFI7abmg9vcB9 span{fill:#333;color:#333;}#mermaid-svg-PeTnFI7abmg9vcB9 .node rect,#mermaid-svg-PeTnFI7abmg9vcB9 .node circle,#mermaid-svg-PeTnFI7abmg9vcB9 .node ellipse,#mermaid-svg-PeTnFI7abmg9vcB9 .node polygon,#mermaid-svg-PeTnFI7abmg9vcB9 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-PeTnFI7abmg9vcB9 .rough-node .label text,#mermaid-svg-PeTnFI7abmg9vcB9 .node .label text,#mermaid-svg-PeTnFI7abmg9vcB9 .image-shape .label,#mermaid-svg-PeTnFI7abmg9vcB9 .icon-shape .label{text-anchor:middle;}#mermaid-svg-PeTnFI7abmg9vcB9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-PeTnFI7abmg9vcB9 .rough-node .label,#mermaid-svg-PeTnFI7abmg9vcB9 .node .label,#mermaid-svg-PeTnFI7abmg9vcB9 .image-shape .label,#mermaid-svg-PeTnFI7abmg9vcB9 .icon-shape .label{text-align:center;}#mermaid-svg-PeTnFI7abmg9vcB9 .node.clickable{cursor:pointer;}#mermaid-svg-PeTnFI7abmg9vcB9 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-PeTnFI7abmg9vcB9 .arrowheadPath{fill:#333333;}#mermaid-svg-PeTnFI7abmg9vcB9 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-PeTnFI7abmg9vcB9 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-PeTnFI7abmg9vcB9 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-PeTnFI7abmg9vcB9 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-PeTnFI7abmg9vcB9 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-PeTnFI7abmg9vcB9 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-PeTnFI7abmg9vcB9 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-PeTnFI7abmg9vcB9 .cluster text{fill:#333;}#mermaid-svg-PeTnFI7abmg9vcB9 .cluster span{color:#333;}#mermaid-svg-PeTnFI7abmg9vcB9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-PeTnFI7abmg9vcB9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-PeTnFI7abmg9vcB9 rect.text{fill:none;stroke-width:0;}#mermaid-svg-PeTnFI7abmg9vcB9 .icon-shape,#mermaid-svg-PeTnFI7abmg9vcB9 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-PeTnFI7abmg9vcB9 .icon-shape p,#mermaid-svg-PeTnFI7abmg9vcB9 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-PeTnFI7abmg9vcB9 .icon-shape .label rect,#mermaid-svg-PeTnFI7abmg9vcB9 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-PeTnFI7abmg9vcB9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-PeTnFI7abmg9vcB9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-PeTnFI7abmg9vcB9 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 自然语言处理 NLP
自然语言理解 NLU
自然语言生成 NLG
分词
词性标注
命名实体识别
句法分析
语义理解
文本生成
机器翻译
摘要生成
对话系统

自然语言处理(NLP)是AI训练中的关键领域之一,NLP的主要目标是使计算机能够理解、处理、生成和模拟人类语言,从而实现与人类进行自然对话的能力。在AI训练中,NLP的意义在于为AI系统提供处理和理解自然语言的能力。通过NLP技术,AI系统可以解析和理解人类的语言输入,包括文本、语音和对话等。

这使得AI 系统能够与人类进行更加自然和智能的交互,如回答问题、提供信息、进行对话等。本节主要介绍自然语言处理的基础知识,帮助读者了解自然语言处理的概念、原理和任务等。

6.1.1 概念解读:什么是自然语言处理?

自然语言处理是计算机科学和人工智能领域的一个分支,是人工智能中负责理解和处理人类语言的领域。NLP处于人工智能、计算机科学和语言学的交叉领域,旨在赋予计算机理解和使用人类语言的能力,进而完成各种任务,它们之间的关系如图 6-1所示。

自然语言处理的发展得益于计算机技术的进步和大量的文本数据可供训练和学习。通过使用深度学习模型和神经网络,NLP取得了显著的进展,能够处理更加复杂的自然语言任务。自然语言处理的应用非常广泛,包括智能客服、语音助手、机器翻译、文本自动生成、社交媒体分析等。

同时,NLP在提升人机交互效率、自动化处理文本信息等方面具有重要的作用。随着深度学习技术的发展,人工神经网络和其他机器学习方法在NLP领域取得了重要的进展。

NLP未来的发展方向包括更深入的语义理解、更好的对话系统、更广泛的跨语言处理和更强大的迁移学习技术,这些发展将进一步提升AI系统在自然语言处理方面的能力,使其更加智能和灵活地与人类进行交互。

6.1.2 底层原理:语言学与计算机科学的交汇

自然语言处理的底层原理是一个跨学科的领域,涉及语言学、计算机科学和统计学等多个学科的知识。NLP不仅需要对语言的结构、语义、语法和语用等方面进行深入研究,还需要利用大规模语料库进行统计分析,建立各种模型,具体原理包括以下3个部分。

  1. 语言模型在实现自然语言处理的过程中,需要对语言进行多层次的处理,因此构建语言模型是至关重要的一步。语言模型用于计算给定文本序列的概率,它可以基于规则、统计或深度学习等方法来构建。

    在语言模型中,通常使用概率模型来表示文本的生成概率,这些模型包括N-gram模型、隐马尔可夫模型和条件随机场等,这些模型可以帮助我们理解文本的内在结构和语义信息,相关介绍如下。

  2. N-gram是一种基于统计的语言模型,用于预测给定前N-1个词后下一个词的概

    率,它假设当前词的出现只与前面的N-1个词相关,而与其他任何词都不相关。N- gram模型常用的是二元(Bi-gram)和三元(Tri-gram)模型,其中二元模型考虑两个连续词的搭配,三元模型则考虑三个连续词的搭配。

  3. 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,用于描述一个

    含有隐含未知参数的马尔可夫过程。在自然语言处理中,HMM常用于标注或分析序列资料,如语音识别、词性标注和命名实体识别等任务。HMM的难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数作进一步的分析。

  4. 条件随机场(Conditional Random Field,CRF)是一种鉴别式概率模型,也是

    一种无向图模型,常用于标注或分析序列资料。CRF在分词、词性标注和命名实体识别等序列标注任务中取得了很好的效果。

  5. 词向量表示和语义分析词向量表示是将自然语言文本转换为计算机可以处理的向量形式,通过将词或短语表示为向量,计算机可以更好地理解和处理自然语言。

    词向量表示方法有很多种, 如Word2Vec、GloVe和FastText等,这些方法可以将词或短语表示为高维向量,并捕获词之间的语义和语法关系,相关介绍如下。

  6. Word2Vec是Google在2013年开源的一种将词表征为实数值向量的高效工具,包

    含CBOW (Continuous Bag-of-Words)和Skip-gram两种模型。通过对模型进行训练,Word2Vec可以把对文本内容的处理简化为K维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。因此,Word2Vec输出的词向量可以用来做很多NLP相关的工作,比如聚类、找同义词、词性分析等。

  7. GloVe是一种广泛使用的词向量生成方法,其全称为Global Vectors for Word

    Representation(用于单词表示的全局向量)。GloVe基于通用语料训练,因此适合通用语言的自然处理任务。与Word2Vec不同,GloVe通过统计方式提取共现矩阵 (一种用于表示词语之间共同出现关系的矩阵)来学习词语的表征。

  8. FastText是基于词向量的文本分类模型,它采用了基于字符级别的N-gram特征

    表示文本中的词,从而避免了传统的词袋模型(一种在自然语言处理和信息检索领域中常用的表达模型)需要考虑所有可能的词序列的问题。在FastText的训练过程中,每个词都会被表示成一个定长的向量,然后将这些向量组合成文本的向量表示,最后使用softmax函数进行分类。

温馨提示

softmax函数,也被称为归一化指数函数,它的作用是将预测结果转化为非负数, 并且各种预测结果概率之和等于1,这样可以方便地用于多分类问题的输出。

  1. 深度学习算法深度学习算法在自然语言处理中发挥着越来越重要的作用,通过训练大量的数据, 深度学习算法可以自动提取文本的特征,并提高自然语言处理的准确性,能够帮助用户更好地理解文本的语义和上下文信息,从而更好地处理自然语言。

6.1.3 自然语言处理的两种途径:传统与深度

自然语言处理是一个非常复杂的研究领域,需要不同的方法和技术来处理大量的文本数据。下面重点分析自然语言处理的两种途径:传统与深度。

  1. 基于传统机器学习途径的NLP 传统的机器学习方法在进行NLP任务时,通常需要经过以下步骤。

  2. 对文本进行预处理,包括分词、去停用词、词干提取等操作,这些步骤有助于

    去除文本中的无关信息,提取出关键的词语或短语。

  3. 使用各种机器学习算法对预处理后的数据进行特征提取和模型训练,这些算法

    可以根据不同任务的需求来选择,如分类、聚类、情感分析等。

  4. 通过模型评估和调整参数,可以对模型进行优化和改进,以提高处理任务的准

    确性。

  5. 基于深度学习途径的NLP 相比之下,深度学习方法在进行NLP任务时具有更多的优势。由于深度学习模型能够自动提取文本中的特征,因此可以避免传统机器学习方法中烦琐的特征工程步骤。

    基于深度学习的方法,利用人工神经网络来学习和处理自然语言,这种技术在近十年里取得了显著进步,诞生了卷积神经网络、递归神经网络(这些神经网络在后面的章节中会具体介绍,此处不再赘述)和Transformer等模型。

案例53 使用深度学习模型处理NLP来实现情感分析任务

下面是一个Python代码示例,该示例采用了TensorFlow库,展示了如何使用深度学习模型处理自然语言文本,从而实现情感分析任务(对电影评论进行情感分类)。通过这种方法训练神经网络模型,可以让它学到文本中的特征,并预测出正面或负面的情感倾向。

温馨提示

上述Python代码示例的主要执行步骤说明如下。 ① 加载数据集:从imdb数据集中加载训练和测试数据,每个数据点都是一个文本评论,并且有一个与之关联的标签,表示该评论是正面还是负面的。 ② 数据预处理:对文本数据进行预处理,将每个评论转换为数字序列。

这是通过使用词嵌入(Word Embedding)来实现的,其中每个单词都表示为一个固定大小的向量。此外,如果评论长度超过最大长度(这里是256),则会被截断或填充至该长度。

③ 构建模型:构建一个深度学习模型,该模型先使用词嵌入层将文本转换为固定大小的向量,然后使用LSTM层处理这些序列,最后使用全连接层进行分类。LSTM (长短期记忆)是一种特殊的递归神经网络。

④ 编译与训练模型:模型先使用Adam优化器(一种一阶优化算法,可以用于更新神经网络权重)和分类交叉熵损失进行编译,然后使用训练数据进行训练,并在验证数据上评估其性能。分类交叉熵损失是一种衡量模型预测结果与实际结果之间差距的损失函数,通常用于处理分类问题。

⑤ 测试模型:代码的最后使用了一个测试评论------"I love this movie!"(我喜欢这部电影!)来评估模型的预测能力,它将这个评论转换为数字序列,然后使用模型进行预测,并输出预测结果。

6.1.4 自然语言处理的两大核心任务:理解与生成

自然语言处理作为人工智能领域的重要组成部分,主要关注如何让计算机理解和生成人类语言,它包括两个核心任务:自然语言理解和自然语言生成。

  1. 自然语言理解自然语言理解(Natural Language Understanding,NLU)是指计算机系统对自然语言文本进行分析、理解和推理的过程。

    NLU技术包括词法分析、句法分析、语义分析和语用分析等方面,旨在使计算机能够理解自然语言文本的含义和意图,它是实现智能对话、文本分类、信息抽取等AI应用的基础。从微观角度来看,自然语言理解是指从自然语言到机器内部的一个映射;

    从宏观角度来看,自然语言理解是指机器能够执行人类所期望的某种语言功能,这些功能主要包括回答问题、文摘生成、释义、翻译等方面。例如,在智能客服领域中,NLU可以帮助计算机理解用户的提问,从而提供准确的回答;

    在智能推荐领域中,NLU可以让计算机理解用户的需求和兴趣,从而推荐个性化的内容;在翻译领域中,NLU可以让计算机理解和转换不同语言的文本。

  2. 自然语言生成自然语言生成(Natural Language Generation,NLG)则是让计算机能够生成人类可读的语言,这个任务包括将计算机内部的信息或数据转换成人类可读的文本,以及生成符合语法和语义规则的自然语言文本。

案例54 基于自然语言处理的智能问答系统---小米小爱同学

小米旗下的人工智能助手---小爱同学,就是一种基于自然语言理解的智能问答系统,它能够通过分析用户的问题,在内部知识库中寻找最合适的答案,并返回给用户,如图6-2所示。

智能问答系统通常包括自然语言处理、信息检索和自然语言生成等技术:首先,通过自然语言理解技术,对用户的问题进行分词、词性标注、句法分析等操作,理解用户的意图和问题中的关键信息;其次,通过信息检索技术,在内部知识库中查找与用户问题相关的信息,这通常涉及文本匹配和排序算法的应用;

最后,通过自然语言生成技术,将找到的答案进行整理和格式化,以自然语言的形式返回给用户。

6.1.5 语料预处理的6个关键步骤

语料预处理是自然语言处理的基石,其意义在于数据清洗、统一格式、减少噪声、提高效率、增强泛化能力和为后续分析打下基础。通过预处理,可以确保模型训练不受干扰,提高模型的准确性和效率,并为后续的文本挖掘、情感分析、主题建模等任务提供可靠的基础。下面介绍语料预处理的6个关键步骤。

  1. 分词(Tokenization):是NLP预处理的第一步,它的目的是将连续的文本分解成单独的词语或符号。分词的准确度对于后续的NLP任务有很大的影响,因为机器无法理解连续的文本,而需要将这些文本分解成单独的元素以便进行分析。
案例55 使用HanLP进行中文分词处理

HanLP是一款强大的自然语言处理工具包,它提供中文分词、词性标注、命名实体识别等丰富的功能。用户只需在HanLP图形界面的文本框中输入相应的中文文本, 并选择相应的分词处理方式,如CTB(中文树库),单击"分析"按钮,即可显示相应的分析结果,如图6-3所示。

  1. 词干提取(Stemming):一种简化词汇形式的方法,它通过去除单词的结尾和中间的音节来获取单词的基本形式。例如,running和run实际上是同一个词的不同形式。通过提取词干,可以标准化不同形式的同义词,从而提高NLP任务的准确度。

  2. 词形还原(Lemmatization):词形还原与词干提取类似,但更注重于将单词还原为其原始形式。例如,将running还原为run。词形还原通常更精确,但在某些情况(如处理大量文本数据)下,词干提取可能更适合。

  3. 词性标注(Parts-of-Speech Tagging):是给文本中的每个单词分配一个或多个词性标签的过程。例如,run可以是动词、名词或形容词。词性标注有助于理解单词在句子中的功能和意义,对于情感分析、句法分析等任务非常有用。

  4. 命名实体识别(Named Entity Recognition,NER):是从文本中识别出具有特定意义的实体(如人名、地名、组织名等)的过程。NER是信息抽取的一个重要组成部分,对于理解文本中的具体实体和关系至关重要。

  5. 分块(Chunking):是将句子分解成更小的有意义的部分(如名词短语、动词短语等)的过程。分块有助于AI理解句子的结构和意义,并为后续的句法分析等任务打好基础。

相关推荐
动物园猫1 小时前
红外无人机目标检测数据集:4,500+张图像 | 目标检测
人工智能·目标检测·无人机
Linguwen1 小时前
中山GEO分享会回顾文
人工智能·chatgpt
武子康1 小时前
多 Agent 不是多开几个终端:Pi 的 Sub-agent 取舍
人工智能·llm·agent
俊哥V1 小时前
每日 AI 研究简报 · 2026-08-22
人工智能·ai
龙虾PRO1 小时前
数据中台 + AI 落地:2026 五大趋势与零售出海完整实操案例
人工智能·零售
wish3662 小时前
K8S 免镜像部署:通过 API 上传文件动态创建服务(以 Ollama 为例)
人工智能·云原生·容器·kubernetes·local llm
AI导出鸭PC端2 小时前
文心怎样生成word文档?一键智能排版,AI导出鸭解决格式错乱痛点
人工智能·ai·word·豆包·deepseek·ai导出鸭
深小乐2 小时前
DeepSeek Harness 发布一周,登顶 Top10 的插件,暴露了哪些真实需求?
人工智能
奈斯先生Vector2 小时前
OpenScience 安装失败怎么办?Windows 环境、API 配置与本地服务排错指南
人工智能·windows·架构·开源·aigc·midjourney