一.获取语料(数据信息)
语料:一种语言学研究的内容。语料是构成语料库的最基本单元。所以,人们简单地用文本进行表示, 并把文本中的上下文关系作为现实世界中语言的上下文关系的替代品。通常将一个文本集合称为语料库(Corpus),当有几个这样的文本集合的时候,我们称之为语料库集合(Corpora)。
来源:
已有语料:积累的文档
下载语料:网络搜索公开获取的语料
抓取语料:使用爬虫等技术获取需要的语料
语料即为所谓的数据,往期的介绍中有详细描述语料信息的。目前在互联网高速发展的时代,语料包括很多信息,尤其是多模态信息-视频、语音、文本、图片等,都可以被认为是一种语料信息。
但本次主要介绍关于中文自然语言处理的一些基础流程,想要详细了解多模态的,建议关注一些微信公众号。
二.语料预处理
1.语料清洗
利用python等编程语言对语料库进行预处理,留下有用的信息,删除噪音数据。
常见的数据清洗方式:人工去重、对齐、删除、标注等,或者规则提取内容、正则表达式匹配、根据词性标注、命名实体提取、编写脚本或者代码批处理等。
2.分词
将文本分成词语,以便后续将其转换为机器可以理解的表达形式。例如将其使用热编码进行表示或词嵌入进行表示。
常见的分词算法如下:
基于字符串匹配的分词方法
基于理解的分词方法
基于统计的分词方法
基于规则的分词方法。
3.词性标注
给词语打词类标签,如形容词、动词、名词等
在情感分析、知识推理等任务中是必须的
常见的词性标注方法:基于规则的方法和基于统计的方法
基于统计的方法
基于最大熵的词性标注
基于统计最大概率输出词性
基于HMM的词性标注
4.去停用词
去掉对文本特征没有任何贡献作用的字词,比如标点符号、语气、人称等
三.特征工程
把分词转换为机器能够计算的类型,一般为向量
常见的表示模型
词袋模型 TF-IDF
词向量:One-hot
Word2Vec
Glove
四.特征选择
机器学习训练语料数据时,需要进行特征的选择,以达到更好的效果。
特征选择可以帮助我们减少特征数量,从而降低模型的复杂度,避免过拟合的风险。同时,选择与目标变量相关性较高的特征可以提高模型的预测准确性。
特征选择可以减少特征数量,从而减少计算成本。在处理大规模数据集时,减少特征数量可以大大降低计算时间和资源消耗。
过多的特征会使得模型更加复杂,从而增加过拟合的风险。通过特征选择,可以减少特征数量,降低模型的复杂度,从而避免过拟合的风险。
选择与目标变量相关性较高的特征可以提高数据的可解释性。通过特征选择,可以找到与目标变量相关性较高的特征,从而更好地理解数据之间的关系。
特征选择是特征工程的重要组成部分。通过特征选择,可以找到与目标变量相关性较高的特征,然后对这些特征进行加工和变换,从而构建更加准确和有效的特征集。
特征选择的方法有很多种,选择合适的方法需要考虑数据的特点和分析的目的。常用的特征选择方法包括:
特征选择的方法总结如上所示。
该图片来自:https://blog.****.net/weixin_38037405/article/details/123062904
五.模型训练
机器学习模型:KNN、SVM、Naive Bayes、决策树、GBDT、K-Means、逻辑回归、线性回归、Adaboost、随机森林、Markov Chains等
深度学习模型:CNN、ResNet、RNN、LSTM、GRU、Transformers、BERT、GPT系列、GNN、GAT、Fasttext、TextCNN、LLaMa系列、ChatGLM系列等。
强化学习模型:
注意过拟合和欠拟合的问题:
过拟合:在训练集上表现很好,但是在测试集上表现很差。
解决方法:
增大数据的训练量
增加正则化项,如L1正则和L2正则
特征选择不合理,人工筛选特征和使用特征选择算法,采用dropout方法等
欠拟合:
模型不能很好的拟合数据
常见的解决方法:
添加其它特征
增加模型的复杂度,比如神经网络中加入更多的层。线性模型通过添加多项式使模型泛化能力更强。
减少正则化参数,目的在于防止过拟合,但是模型出现了欠拟合,需要减少正则化参数。
注意梯度消失和梯度爆炸的问题
六.评估指标
可以使用正确率、错误率、精准率、召回率、F1、ROC曲线、AUC曲线、BLEU、METEOR、ROUGE等评估指标进行衡量。
七.模型上线应用
第一就是线下训练模型,然后将模型做线上部署。
第二就是在线训练,在线训练完成后把模型pickle持久化