- 自然语言处理:原理、方法与应用
- 王志立 雷鹏斌 吴宇凡编著
- 936字
- 2025-02-16 15:44:32
1.3 自然语言处理算法流程
本书的自然语言算法以Python为基础,采用开源的深度学习预训练模型,并基于Facebook开源的PyTorch深度学习框架,构建自然语言处理模型。整体算法流程如图1.2所示。数据集切分为测试集、训练集和验证集。测试集用于模型的预测;训练集用于训练深度学习模型;验证集用于评估模型结果,进而辅助模型调参。一般而言,测试集、训练集与验证集的比例为1:7:2。

图1.2 自然语言处理算法流程
1.数据预处理
数据预处理模块的主要工作是将文本与实体标签转换成计算机能够处理的格式。与此同时,数据预处理模块还包含数据清洗与数据增强两部分,数据清洗的目的是让模型在学习过程中排除噪声的干扰,如HTML字符、表情字符等,避免影响模型的性能;数据增强的目的是让模型在学习过程中能够多维度地接触有用信息,如过长文本的处理方法,从而提升模型的性能。本书对于过长文本的处理,首先设定文本的切割长度阈值,并利用正则表达式清洗过长文本中的HTML标签噪声等;其次,对清洗后的数据按照句子切割,利用Python的列表进行装载;最后,对列表里的句子按顺序组装,当文本长度大于512时,停止组装,将当前句子用作新数据的首句,一直循环至当前列表的最后一个句子。通过按句切割的方式,算法最大程度地保证了文本的信息不丢失,如图1.3所示。

图1.3 过长文本预处理示意图
2.模型构建
模型构建模块采用开源的预训练模型NEZHA,并结合深度学习方法中相应的自然语言处理模型。由于自然语言处理的每个任务都有所不同,所以笔者对该模块只做宏观的概括,读者可以翻阅后续章节了解相关技术的细节。
3.模型预测
模型预测模块主要涉及超参数的设置及调优。超参数的设置与调优基于当前任务数据的特性(如文本长度等)与硬件设备资源(如16GB内存的Tesla显卡等)。类似地,读者可以翻阅后续章节的实践案例了解相应的超参数细节。
4.模型评估
模型评估模块设计评价指标评估模型的性能。模型评估指标有很多种,因此根据问题去选择合适的评估指标是衡量结果好坏的重要方法,所以算法开发人员需要知道评估指标的定义,从而选择正确的模型评估方式,这样才能知道模型的问题所在,进而对模型进行参数调优。自然语言处理任务的评估指标仍然基于当前任务特性来设计,包括但不限于正确率、精确率、召回率、F1分数、ROUGE分数及BLEU分数等,这些指标都会在后续章节进行详细介绍。