一 、获取语料
首先要确定研究领域,通过爬虫爬取该领域的相关网站获取语料。
二、语料预处理
语料预处理的过程占整个中文自然语言处理工程的50%到70%,主要包括数据清洗、分词和词性标注、去停用词等。
1、数据清洗
数据清洗就将我们获取到的原始语料进行去噪,将工程不需要的信息进行删除(主要包括HTML代码、广告、标签、注释等),保留语料中原始文本的标题和正文等部分。
2、分词
文本处理的最小单元是词语。我们需要利用分词工具,将语料中的文本内容切分为一个个词的形式。分词工具有很多中,常用的为jieba分词。
3、词性标注
给分词后的每个词语打上词性标签。在中文中,大多数词语只有一个词性,或者出现频次最高的词性远远高于第二位的词性,选取最高频词性,就能实现80%准确率的中文词性标注程序。
词性标注主要可以分为基于规则和基于统计的方法,下面列举几种统计方法:
(1)基于最大熵的词性标注
(2)基于统计最大概率输出词性
(3)基于HMM的词性标注
4、去停用词
停用词是指文本中没有实际意义的词,比如标点符号、语气词等。
三、特征工程
经过数据预处理之后,需要将词表示成计算机能够计算的类型,一般为向量的形式。
常用的表示模型包括词词袋模型和词向量
四、特征选择
在一个实际问题中,构造好的特征向量,是要选择合适的、表达能力强的特征。
五、模型训练
对于不同的应用需求,我们使用不同的模型,传统的有监督和无监督等机器学习模型
六、评价指标
训练好的模需要进行必要的评估,目的让模型对语料具备较好的泛化能力。
七、模型线上应用
1、线下训练模型,然后将模型做线上部署,发布成接口服务以供业务系统使用。
2、在线训练,在线训练完成之后把模型 pickle 持久化,然后在线服务接口模板通过读取 pickle 而改变接口服务。