自然语言处理

什么是自然语言处理 (NLP)?

不可不知的三大要点

自然语言处理 (NLP) 是人工智能 (AI) 的一个分支,它会教计算机如何理解口头和书面形式的人类语言。自然语言处理将计算语言学与机器学习深度学习相结合来处理语音和文本数据,这些数据也可以与其他类型的数据一起用于开发智能工程系统。

自然语言处理的工作原理

自然语言处理旨在将非结构化语言数据转换为计算机可用于解释语音和文本数据的结构化格式,发现和可视化大型数据集中的复杂关系,并生成新的语言数据。

原始的人类语言数据可以来自各种数据源,包括音频信号、Web 和社交媒体、文档及数据库。这些数据包含有价值的信息,如语音命令、公众对话题的情绪、运营数据和维护报告。自然语言处理可以合并和简化这些大型数据源,通过可视化主题模型将它们转换为有意义的信息。

语音和文本数据馈送到 AI 模型进行自然语言处理。

自然语言处理将计算语言学与 AI 建模相结合以解释语音和文本数据。

为了对语音数据执行自然语言处理,需要检测到音频段中存在的人类语音,执行语音到文本转录,并对生成的文本应用文本挖掘和机器学习方法。

自然语言处理的数据准备

在自然语言处理中,用于将文本从非结构化格式转换为结构化格式的一些方法如下:

分词:通常,这是自然语言处理中文本处理的第一步。它指将文本拆分成若干句子或字词

词干提取这种文本标准化方法通过删除单词的词缀将单词简化为其词根形式。它基于简单的启发式规则,可能会产生在字典中不存在的单词形式。

词形还原这种复杂的文本标准化方法使用词汇和词法分析来删除单词的词缀。例如,“building has floors”简化为“build have floor”。

Word2vec在字词嵌入方法中,最常见的实现方法是 Word2vec。该方法将字词的分布式表示创建为数值向量,以捕获字词的语义和字词之间的关系。

N 元分词建模:一个 n 元分词是文本文档中由 n 个连续项组成的一个集合,可能包括字词、数字、符号和标点符号。在涉及字词序列的自然语言处理应用中,例如情绪分析、文本分类和文本生成等应用,N 元分词模型可能非常有用。

AI 助力自然语言处理

基于语言数据训练的 AI 模型可以识别模式并预测句子中的后续字词。要构建自然语言处理模型,您可以使用经典的机器学习算法,如逻辑回归或决策树,也可以使用深度学习架构,如卷积神经网络 (CNN)、循环神经网络 (RNN) 和自编码器。例如,您可以使用 CNN 对文本进行分类,而使用 RNN 生成字符序列

作为一种深度学习模型,变换器模型彻底改变了自然语言处理的方式,它们是 BERT 和 ChatGPT™ 等大型语言模型 (LLM) 的基础。变换器旨在跟踪顺序数据中的关系。这些变换器依靠自注意力机制来捕获输入与输出之间的全局依赖关系。

在自然语言处理的背景下,这使得 LLM 可以捕获在自然语言中存在的长期相关性、字词之间的复杂关系和细微差别。LLM 可以并行处理所有字词,从而可加快训练和推断速度。

与其他预训练深度学习模型类似,预训练 LLM 可用于执行迁移学习,以解决自然语言处理中的特定问题。例如,您可以微调日语文本的 BERT 模型

自然语言处理为何重要

自然语言处理会教计算机理解和生成人类语言。自然语言处理的应用非常广泛,而且随着 AI 技术的发展,其应用范围也日渐扩大,涵盖日常任务和高级工程工作流等。

自然语言处理中的常见任务有语音识别说话者识别语音增强命名实体识别。自然语言理解 (NLU) 是自然语言处理的一个分支,您可以在其中使用语音和文本的语法和语义分析来提取句子的含义。NLU 任务包括文档分类和情绪分析

NLP 任务输出的示意图。左侧表示在一个音频信号中识别出五位不同说话者。右侧表示分类为正面词和负面词的词云。

说话者识别和情绪分析是自然语言处理中的常见任务。

自然语言生成 (NLG) 是自然语言处理的另一个分支,其中包括计算机用于在给定数据输入的情况下产生文本响应的各种方法。虽然 NLG 最初是基于模板的文本生成方式,但随着 AI 技术的发展,实时动态生成文本已成为可能。NLG 任务包括文本提要和机器翻译。

自然语言处理 (NLP) 的两个主要分支是自然语言理解 (NLU) 和自然语言生成 (NLG)。

自然语言处理及其分支。

自然语言处理应用于金融、制造、电子、软件、信息技术和其他行业,例如:

  • 自动根据情绪(正面或负面)对评论进行分类
  • 统计文档中字词或短语的频率并执行主题建模
  • 自动对录制的语音进行标注和标记
  • 根据传感器和文本日志数据制定预测性维护计划
  • 自动执行需求形式化和合规性检查

使用 MATLAB 进行自然语言处理

MATLAB 使您能够创建从数据准备到部署的自然语言处理工作流。使用 Deep Learning Toolbox™Statistics and Machine Learning Toolbox™Text Analytics Toolbox™,您可以对文本数据执行自然语言处理。同样,使用 Audio Toolbox™,您可以对语音数据执行自然语言处理。

完整的 NLP 工作流包括访问和探查文本数据、预处理数据、开发预测模型以及共享深入信息和模型。

自然语言处理的扩展工作流。

数据准备

您可以使用低代码 App 来预处理语音数据以进行自然语言处理。信号分析器可用于探查和分析数据,而信号标注器可自动标注真值。您可以使用提取音频特征来提取特定于域的特征并执行时频变换。然后,您可以使用 speech2text 函数将语音转录为文本。

您一旦具备要应用自然语言处理的文本数据,就可以通过预处理文本数据实时编辑器任务,以交互方式将非结构化语言数据变换为结构化格式并清洗数据。您也可以使用内置函数以编程方式准备 NLP 数据。

使用词云和散点图,您还可以可视化用于自然语言处理的文本数据和模型。

 示意图:清洗用于自然语言处理的文本数据。左侧:原始数据的词云。右侧:清洗后数据的词云。

词云:展示对工厂报告中的原始文本数据和清洗后文本数据应用词频分析的结果。

AI 建模

您可以训练多种类型的机器学习模型来执行分类或回归任务。例如,您只需使用几行 MATLAB 代码即可创建和训练长短期记忆网络 (LSTM)。您还可以使用深度网络设计器创建和训练深度学习模型,并使用准确度、损失和验证度量等绘图监控模型训练过程。

深度网络设计器截图:显示可用于自然语言处理的简单 BiLSTM 网络

深度网络设计器,用于以交互方式构建、可视化、编辑和训练 NLP 网络。

与其从头开始创建深度学习模型,不如使用预训练模型。您可以将预训练模型直接应用于您的自然语言处理任务,也可以根据该任务对预训练模型进行调整。借助 MATLAB,您可以从 MATLAB 深度学习模型中心访问预训练网络。例如,您可以使用 VGGish 模型从音频信号中提取特征嵌入,使用 wav2vec 模型进行语音到文本转录,而使用 BERT 模型进行文档分类。您还可以使用 importNetworkFromTensorFlowimportNetworkFromPyTorch 函数从 TensorFlow™ 或 PyTorch™ 导入模型。

相关主题