读书笔记之3中文自然语言处理完整流程

转自:https://blog.csdn.net/dongdouzin/article/details/80814037

  1. 第一步:获取语料

语料,即语言材料。语料是构成语料库的基本单元。所以简单地使用文本作为替代,并把文本中的上下文关系作为现实世界中语言的上下文关系的替代品。一个文本集合成为语料库(Corpus),当有几个这样的文本集合的时候,我们称之为语料库集合(Corpora)

  1. 已有语料:

很多业务部门、公司等组织随着业务发展都会积累有大量的纸质或者电子文本资料。那么,对于这些资料,在允许的条件下我们稍加整合,把纸质的文本全部电子化就可以作为我们的语料库。

  1. 网上下载、抓取语料:

如果现在个人手里没有数据怎么办呢?这个时候,我们可以选择获取国内外标准开放数据集,比如国内的中文汉语有搜狗语料、人民日报语料。国外的因为大都是英文或者外文,这里暂时用不到。也可以选择通过爬虫自己去抓取一些数据,然后来进行后续内容。

  1. 第二步:语料预处理

完整的中文自然语言处理工程应用中,语料预处理大概占到整个50%~70%工作量。

下面通过数据洗清分词词性标注去停用词四大方面来完成语料的预处理工作。

  1. 数据清洗

数据清洗,顾名思义就是在语料中找到我们感兴趣的东西,把不感兴趣的、视为噪音的内容清洗删除,包括对于原始文本提取标题、摘要、正文等信息,对于爬取的网页内容,去除广告、标签、HTML、JS 等代码和注释等。

常见的数据清洗方式有:人工去重对齐删除标注等,或者规则提取内容、正则表达式匹配、根据词性和命名实体提取、编写脚本或者代码批处理等。

  1. 分词

中文语料数据为一批短文本或者长文本,比如:句子,文章摘要,段落或者整篇文章组成的一个集合。一般句子、段落之间的字、词语是连续的,有一定含义。而进行文本挖掘分析时,希望文本处理的最小单位粒度是词或者词语,所以就需要分词来将文本全部进行分词。

常见的分词算法有:基于字符串匹配基于理解基于统计基于规则的分词方法。

当前中文分词算法的主要难点有歧义识别和新词识别,比如:“羽毛球拍卖完了”,可切分为“羽毛 球拍 卖 完了” “羽毛球 拍卖 完了”,如果不依赖上下文其他的句子,很难知道如何去理解

  1. 词性标注

给每个词或者词语打此类标签,如形容词、动词、名词等。这样做可以让文本在后面的处理中融入更多有用的语言信息。词性标注是一个经典的序列标注问题,常见的文本分类就不用关心词性问题,但是类似情感分析、知识推理却是需要的。

       下图是常见的中文词性整理。

常见的词性标注方法可以分为基于规则和基于统计的方法。其中基于统计的方法:

       基于最大熵的词性标注、基于统计最大概率输出词性和基于HMM(隐马尔可夫)的词性标注。

  1. 去停用词

停用词一般指对文本特征没用任何贡献作用的字词,比如标点符号、语气、人称等一些词。所以在一般性的文本处理中,分词之后,接下来一步就是去停用词。但是对于中文来说去停用词操作不是一成不变的,停用词词典是根据具体产经来决定的,比如在情感分析中,语气词、感叹号是应该保留的,因为对表示语气程度、感情色彩有一定的贡献和意义。

 

 

 

  1. 第三步:特征工程

做完语料预处理之后,接下来需要考虑如何把 分词之后的 字 和 词语 表示成计算机能够计算的类型。显然,如果计算我们至少需要把中文分词的字符串转换成数字,确切说应该是数学中的向量。有两种常用的表示模型分别是词袋模型和词向量。

       词袋模型(Bag of Word,BOW)即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如list),然后按照技术的方式对出现的次数进行统计。统计词频这知识最基本的方式,TF-IDF是词典模型的一个经典用法。

       词向量是将字、词语转换成向量举着你的计算模型。目前为止最常用的词表示方法是One-hot,这种方法把没歌词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素是0,只有一个维度的值为1,这个维度就代表了当前的词。Word2Vec,其主要包含两个模型:跳字模型(skip-gram)和连续词袋模型(continuous bag of words CBOW)以及两种搞笑训练的方法:负采样(Negative Sampling)层序softmax,word2vec词向量可以较好地表达不同词之间的相似和类比关系。还有一些词向量的表示方式,如:Doc2Vec/WordRank和fastText等。

  1. 第四步:特征选择

在一个实际问题中,构造好的特征向量,是选择合适的、表达能力强的特征。文本特征一般都是词语,具有语义信息,使用特征选择能够找出一个特征子集,其仍然可以保留语义信息,但通过特征提取找到的特征子空间,将会丢失部分语义信息。所以特征选择是一个很有挑战的工程,更多的依赖于经验和专业知识,并且有很多现成的算法进行特征选择。目前,常见的特征选择方法主要有DF、MI、IG、CHI、WLLR、WFO

  1. 第五步:模型训练

特征向量选择好之后,接下来要做的事情就是训练模型,对于不同的应用需求,我们使用不同的模型,传统的有监督和无监督等机器学习模型,如:KNN、SVM、Naïve bayes、决策树。GBDT、KMeans等模型;深度学习模型比如:CNN、RNN、LSTM、Seq2Seg、FastText、TextCNN等。注意过拟合、欠拟合问题,不断提高模型的泛化能力。

过拟合:模型学习能力太强,以至于把噪声数据的特征也学习到了。导致模型泛化能力下降,在训练机上表现很好,但是在测试机上变现很差。

常见的解决方法:

  1. 增大数据的训练量;
  2. 增加正则化项,如L2、L1
  3. 特征选取不合理,人工筛选特征和使用特征选择算法;
  4. 采用Dropout方法等。

欠拟合:就是模型不能够很好地拟合数据,表现在模型过于简单。

常见的解决方法有:

  1. 添加其他特征项;
  2. 增加模型复杂度,比如:神经网络加更多的层、线性模型通过添加所向是使模型泛化能力更强;
  3. 减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

对于神经网络,注意梯度消失和梯度爆炸问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值