深度学习与中文短文本分析总结与梳理


1.绪论

过去几年,深度神经网络在模式识别中占绝对主流。

它们在许多计算机视觉任务中完爆之前的顶尖算法。在语音识别上也有这个趋势了。

而中文文本处理。以及中文自然语言处理上,似乎没有太厉害的成果?尤其是中文短文本处理的问题上。尚且没有太成功的应用于分布式条件下的深度处理模型?(大公司也许有。但没有开源)本文暂且梳理一下,尝试环绕深度学习和 短文本处理的方方面面就最简单的概念进行一次梳理,而且试图思考一个问题:

深度学习处理中文短文本的终于效果是什么?

我思考后的答案是:

答:是一种模型,能够无需不论什么语言学知识或手工特征设计。就可被用于中文分词、词性标注以及命名实体识别等多种中文自然语言处理任务,甚至直接改造为分布式大数据能够使用的框架。


2.短文本

姑且觉得200字以内的都叫短文本

2.1 短文本的研究范围

- 搜索引擎的搜索结果
- 锚文本
- 互联网聊天信息
- 电子邮件主题
- 论坛评论信息
- 商品描写叙述信息
- 图片描写叙述
- 微博
- 手机短息
- 文档文献摘要

2.2 短文本特点

短文本具有特征稀疏性、神秘性、动态性、交错性等特点

①稀疏性。每条短文本形式信息的长度都比較短,都在 200 字以内,因此所包含的有效信息也就很少,造成样本的特征很稀疏,而且特征集的维数很高,很难从中抽取到准确而关键的样本特征用于分类学习。

②实时性

在互联网上出现的短文本形式的信息,大部分都是实时更新的,刷新速度很快。聊天信息、微博信息、评论信息等。而且文本数量很庞大。

③不规则性

短文本形式的信息用语不规范,包含流行词汇较多,造成了噪声特征许多,如“94”代表“就是”,“88”代表“再见”,“童鞋”代表“同学”,而且更新很快,如流行词“伤不起”、“有没有”、“坑爹” “屌丝”、等等。


3.中文分词

中文分词就是将连续的字序列依照一定的规范又一次组合成词序列的过程。众所周知,英文单词是用空格来进行分隔的,在中文的字与字之间、句子与句子之间、段落与段落之间也都能找到分界符。

另外。在中英文中都存在短语划分这个问题。可是词与词之间却找不到形式上的分界符。

词是最小的能够独立活动的有意义的语言成分,因而。中文在词的划分这个问题上是个很巧杂而关键的问题。

现有的分词算法可分为3大类:

3.1 基于字符串匹配和规则的分词方法

基于字符串匹配的分词方法又称为机械分词方法,它是依照一定的策略将待分析的汉字与一个"足够大的"词典中词条进行匹配。若在词典中找到某个字符串。则匹配成功。

依照扫描方向的不同,串匹配分词方法可分为正向匹配和逆向匹配。依照不同长度优先匹配的倩况,可分为最大(最长)匹配和最小(最短)匹配。依照是否与词性标注过程相姐合,又可分为单纯分词方法和分词与标注相结合的一体化方法。

经常使用的基于字符串匹配的分词方法有:

A )正向最大匹配法,依照文字的阅读顺序进行匹配;
B )逆向最大匹配法。依照文字的阅读顺序反向进行匹配。
C )最小切分法,使每一句中切出的词数量最少。

因为汉语单字成词的特点。正向最小匹配和逆向最小匹配一般很少使用。


这里写图片描写叙述
正向最大匹配法

逆向匹配的切分精度略髙于正向匹配,遇到的歧义现象也较少。统计结果显示,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。

但这样的精度还远远不能满足实际的须要。

实际使用的分词系统,都是把机械分词作为一种初分手段,还须要通过利用各种其它的语言信息来进一步提高切分的准确率。上述方法尽管实现简单、速度快,但处理分词歧义能力较差,严重依赖于词表。不能识别新词语,即未登录词。为了解决分词歧义与未登录词的问题,90年代初期出现了基于规则的分词系统,包含专家系统、短语结构文法等。

基于规则的"演泽推理"方法,能较好的解决有规律的分词歧义和未登录词,具有一定的领域适应性、效率很髙。但中文语言现象很复杂。存在许多无规律的分词歧义和未登录词。因此 一般採用其它算法如:动态规划等相结合提高准确率。

3.2 基于统计的分词方法

基于统计的分词方法仅仅需对语料中的字信息进行统计,不须要切分词典,因而又称为无词典分词法或统计取词法。

从形式上看。词是稳定的字的组合。在上下文中,相邻的字同一时候出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。因而可对语料中相邻共现的各个字的组合的频度进行统计。计算它们的相关度,计算两个汉字A、B的相邻共现的概率。

可对语料中相邻共现的各个字的组合的频率进行统计。

这样的方法首先切分与词典能匹酷成功的全部可能的词,即找出全部候选词条,然后运用统计语言模型和决策算法得出最优的切分结果。

因为纯粹从统计的角度出发,因此在统计意义上某些经常出如今一起的字并不能构成完整的词语。比如"上的"、"有的"、"这一"等在文本中会大量的互邻同现,但它们却分属于不同的词。而且统计语言模型和决策算法在很大程度上决定了解决歧义的方法。须要大量的标注语料,而且分词速度也因搜索空间的増大而有所减慢。

基于统计的分词方法所应用的基本的统计量或统计模型有:互信息、隐马尔可夫模型和最大熵模型等。这些统计模型主要是利用词与词之间的联合出现概率作为分词推断的信息。

3.3 基于理解的分词方法

这样的分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同一时候进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包含几个部分:分词子系统、句法语义子系统、总控部分。

在总控部分的协调下,分词子系统可获得有关词、句子等的句法和语义信息来对分词歧义进行推断,即它模拟了人对句子的理解过程。这样的分词方法须要使用大量的语言知识和信息。因为汉语语言知识的笼统、复杂性,难W将各种语言信息组织成机器可直接读取的形式,因此眼下基于机器学习理解的分词系统还处在实验阶段。

  1. 基于隐马尔可夫模型的字标注中文分词方法。

  2. 基于层叠隐马尔可夫模型的汉语词法分析方法。该方法引入角色隐马尔可夫模型识别未登录词。然而,传统机器学习方法往往依赖于人工设计的特征,而一个特征是否有效须要多尝试与选择,因此人工设计一系列好的特征既费时又费力。

  3. 神经网络方法。

  4. 深度学习的方法,对中文语料进行中文分词和词性标注。这些方法仅接近与眼下最好结果,并没有超越。


4. 基于深度学习的短文本分析 參考2

深度学习(Deep Learning)是一种表示学习方法。它通过对数据进行多层级的建模来获得关于数据特征的层次结构以及数据的分布式表示。因为深度学习能够避免繁琐的人工特征抽取,有效地利用无监督数据,而且具有优秀的泛化能力。因此成为了近期几年机器学习领域的一个热点。

深度学习的发展与应用使得图像处理、语音识别等多个详细的应用领域都取得了突破式的进展。

深度学习很适用于解决自然语言处理领域的一系列难题。

首先。因为语言本身的高维特性。传统的自然语言处理系统往往须要复杂的语言学知识以便手工构造出可供分类器使用的特征。而利用深度学习,则能够通过构造模型来自己主动学习用于解决自然语言处理领域的问题所需的特征。

其次,在自然语言处理领域。无标签数据能够被轻易地大量获得,然而有标签数据则相对稀少且昂贵,深度学习则刚好能够利用大量无标签数据来获取特征。

再次,自然语言处理领域的许多问题往往相互之间具有很强的关联性,比如对分词、词性标注和命名实体识别,传统的方法往往将这几个问题分开解决。忽略了它们之间的关系。

使用深度学习则能够在特征抽取层面构造统一的模型以同一时候处理这些问题,并通过多任务学习的方法在模型中对其关联性进行建模。从而获得更好的性能。

因此,深度学习的核心思想是通过具有一定“深度”的模型从数据中逐层抽象出特征(即分布式表示)。而且在深度学习模型中越高的层级抽取出的特征具有越强的表达能力。据内部的特征信息。对于语言来说。这正是一个能够採纳的方式:从大量的文本中学习得到语义,并对语义进行特征表示,从而利用这些特征进行详细的计巧任务。

深度学习模型參考3


这里写图片描写叙述

4.1 自己主动编码器

自己主动编码器(Auto—Encoder)是一种数据驱动的、非监督地学习数据特征的神经网络模型。

其结构如所看到的。可W把它看成是一个输出节点数与输入节点数相等的多层神经网络。


这里写图片描写叙述

4.2受限玻尔兹曼机

玻尔兹曼机(Boltzmann Machine)是一种引入了模拟退火思想的无向图模型,其依据无向图节点的状态和节点之间的互联权重定义整个系统的能量状态,并指定输入节点和输出节点为可见节点,在输入节点的二值化特征信息不变的情况下对其它节点进行退火,寻找最低的能量状态。即通过模拟退火的思想学习节点的互联权重作为模式的表示。

受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是一种特殊的玻尔兹曼机,是深度置信网(Deep Belief Networks。DBN)的核心组件之中的一个。

它规定无向图节点分为可见层和隐含层两层,每层内部的节点之间不可互联,而处于不同层之间的节点为全连接

4.3 卷积神经网络

卷积神经网络主要包含两种神经层:卷积层(Convolution)和池化层(又称下採样层,Pooling)。这两层往往搭配出现。

如图2-6所看到的一个典型的卷积神经网络模型一般包含数个卷积层与池化层的组合。在此之后的几层是神经网络的全连接层

卷积层是卷积神经网络的主要运算部分。

卷积层的输入是一幅或多幅二维图像,这些图像被称为特征图像(FeatureMap)。

每一个输出特征图像相应一个卷积核,该卷积核对一幅或多幅输入图像进行卷积,卷积的结果取平均得到一幅输出特征图像

眼下,深度学习在自然语言处理上取得的进展没有在语音图像上那么令人印象深刻。

但相比于声音和图像。语言是唯一的非自然信号。是全然由人类大脑产生和处理的符号系统。因此。深度学习在自然语言处理领域中的应用研究仍存在诸多的挑战。


5.为什么深度学习如此有效?參考1

深度学习中的表征视角是很有力的。比方单词嵌入深度学习能够将很复杂的关系进行近似编码:


这里写图片描写叙述

原文中这样说:

这看来是神经网络的一个很强大的长处:它们能自己主动学习更好的数据表征的方法。反过来讲,能有效地表示数据对许多机器学习问题的成功都是不可缺少的。单词嵌入仅仅是学习数据表示中一个引人注目的样例而已。

5.1主流深度学习模型对照

概述对照


一个开源的深度学习測试框架參考9:对可扩展性(extensibility)、hardware utilization(硬件利用率)以及大家最关心的:速度(speed)上进行了比較

比較结果:


tensorflow比較中规中矩,我不觉得其它几个库在后期能比他强多少。毕竟google出品,哈哈。如今不少企业都已经開始用tensorflow进行一些project实践。大势所趋,同志们站好队啊。(欢迎同志们拍砖)


6.文本分类效果评价

许多时候。文本分析领域须要许多的评价准则。可是我看了不少论文。来回来去也就是基于分类的评价去做,这块还须要大牛给指点一二。

怎么能够客观的表示我们算法的准确行。分词。词性标注,等等

国际上广泛採用微平均和宏平均相结合的评价准则,并採用准确率P(Precision)和召回率R(Recall)以及F1值来衡量分类系统性能。

对第i个类别。其准确率召回率分别定义例如以下:li表示分类的结果中被标记为第i类别且标记为正确的文本个数。mi表示结果中表示被标记为第i个类的文本个数,ni表示被分类的文本中实际属于第i个类别的样本个数。


这里写图片描写叙述

微平均和宏平均

微平均和宏平均是计算全局的查准率,查全率和F1測试值的两种方法。

当中,微平均用mP、mR、mF1来表示:宏平均用MP、MR、MF1来表示,公式例如以下:


这里写图片描写叙述

7.短文本相关工具应用

7.1 Word2vector

word2vector由Google开发的一个用于训练语义向量的工具,其核心的技术是依据词频用Huffman编码使得全部词频类似的词隐藏层激活的巧内容基本一致。出现频率越高的词语。其隐藏层数目越少。然后採用一个三层神经网络对语义单元向量进行表示。详细可參考此说明文档參考10


高速入门:


7.2 标签云

回头打算,把自己的csdn博客爬一遍,写个python生成的标签云


这里写图片描写叙述

7.3 倾向性分析

商品论坛评论(开门见山和卒章显志是汉语语篇的重要特点)

这里写图片描写叙述

7.4 成熟案例—-微博舆情分析



8.主流分词工具对照分析

8.1 整体介绍

主流分词概况:


这里写图片描写叙述

分词精确度:


这里写图片描写叙述

在所測试的四个数据集上,BosonNLP和哈工大语言云都取得了较高的分词准确率,尤其在新闻数据上。

因为庖丁解牛是将全部可能成词的词语全部扫描出来(比如:“最不惬意”分为:“最不 不满 惬意”),与其它系统输出规范不同,因而不參与准确率统计。为了更直接的比較不同数据源的区别,我们从每一个数据源的測试数据中抽取比較典型的演示样例进行更直观的对照。

大数据评測结果:jieba(c++)版独领风骚啊


这里写图片描写叙述

8.2 结巴和清华THULAC 介绍

1.THULAC 清华新推荐的分词工具 參考8

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包。具有中文分词和词性标注功能。THULAC具有例如以下几个特点:

能力强
利用我们集成的眼下世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
准确率高
该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%。与该数据集上最好方法效果相当。
速度较快
分词速度同一时候进行分词和词性标注速度为300KB/s,每秒可处理约15万字。仅仅进行分词速度可达到1.3MB/s。

2.Jieba 參考7

Jieba分词是中文分词领域使用很广泛的自由软件,其採用MIT授权协议,支持繁体分词而且支持自己定义词典。
Jieba分词支持三种分词模式:

1. 精确模式,试图将句子最精确地切开。适合文本分析;

2. 全模式。把句子中全部的能够成词的词语都扫描出来, 速度很快,可是不能解决歧义;

3. 搜索引擎模式,在精确模式的基础上,对长词再次切分。提高召回率,适合用于搜索引擎分词。

基本实现算法

基于前缀词典实现高效的词图扫描,生成句子中汉字全部可能成词情况所构成的有向无环图 (DAG)
採用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
对于未登录词,採用了基于汉字成词能力的 HMM 模型。使用了 Viterbi 算法

分词速度

1.5 MB / Second in Full Mode
400 KB / Second in Default Mode
測试环境: Intel(R) Core(TM) i7-2600 CPU @ 3.4GHz。《围城》.txt

參考文献

[參考1]: http://blog.jobbole.com/77709/
[參考2]: 李岩. 基于深度学习的短文本分析与计算方法研究[D]. 北京科技大学, 2016.
[參考3]: 吴轲. 基于深度学习的中文自然语言处理[D]. 东南大学, 2014.
[參考4]: http://www.52nlp.cn/
[參考5]: http://www.cnblogs.com/softidea/p/5981809.html
[參考6]: http://www.ltp-cloud.com/
[參考7]: https://github.com/fxsjy/jieba/
[參考8]:http://thulac.thunlp.org/
https://github.com/HIT-SCIR/ltp/

资源下载

短文本论文资源打包
http://download.csdn.net/detail/wangyaninglm/9793894


p.s.
第一版的这篇博客本来打算推荐这本《NLP汉语自然语言处理原理与实践》的,可是,我读了读发现。这书有点问题:
1.參照的核心代码是个java的。解释的不太到位
2.部分内容未经考证,盲目引用
书中说了一个九个字的姓,结果网上一查。有点怀疑真伪
这里写图片描写叙述
这里写图片描写叙述

3.价格偏贵。98元!几种概率图模型堆积公式并非很清晰

我想了又想。觉得。钱多的人买一本,钱少的,还是算了

http://www.threedweb.cn

这里写图片描写叙述

posted on 2017-08-11 14:03  ljbguanli  阅读(508)  评论(0编辑  收藏  举报