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

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将各种语言信息组织成机器可直接读取的形式,因此目前基于机器学习理解的分词系统还处在实验阶段。

  • 基于隐马尔可夫模型的字标注中文分词方法。
  • 基于层叠隐马尔可夫模型的汉语词法分析方法,该方法引入角色隐马尔可夫模型识别未登录词。然而,传统机器学习方法往往依赖于人工设计的特征,而一个特征是否有效需要多尝试与选择,因此人工设计一系列好的特征既费时又费力。
  • 神经网络方法。
  • 深度学习的方法,对中文语料进行中文分词和词性标注。这些方法仅接近与目前最好结果,并没有超越。

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进行一些工程实践,大势所趋,同志们站好队啊。(欢迎同志们拍砖)

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 介绍

8.2.1THULAC 清华新推荐的分词工具 参考8

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

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

8.2.2 Jieba 参考7

Jieba分词是中文分词领域使用非常广泛的自由软件,其采用MIT授权协议,支持繁体分词并且支持自定义词典。 

Jieba分词支持三种分词模式:

  • 精确模式,试图将句子最精确地切开,适合文本分析;
  • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

基本实现算法


基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (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



原文发布时间为:2017-04-25 

本文作者:流川疯

时间: 2024-12-02 12:00:56

深度学习与中文短文本分析总结与梳理的相关文章

深度学习助力实现智能行为分析和事件识别

行为识别是指通过分析视频.深度传感器等数据,利用特定的算法,对行人的行为进行识别.分析的技术.这项技术被广泛应用在视频分类.人机交互.安防监控等领域.行为识别包含两个研究方向:个体行为识别与群体行为(事件)识别.近年来,深度摄像技术的发展使得人体运动的深度图像序列变得容易获取,结合高精度的骨架估计算法,能够进一步提取人体骨架运动序列.利用这些运动序列信息,行为识别性能得到了很大提升,对智能视频监控.智能交通管理及智慧城市建设等具有重要意义.同时,随着行人智能分析与群体事件感知的需求与日俱增,一系

基于深度学习的中文分词 | 实录·PhD Talk #5

Q 请问老师,切分文本中的数学公式没有标注样本怎么破? 陈新驰 可以人工标注一些,或者先用匹配的方法把一些模式很强的公式分出来. Q 看起来神经网络的分词,较少考虑了时间性能,但是作为 NLP 的基础模块如果做工业产品这个时间代价会比较突出,博士怎么看这个问题? 陈新驰 神经网络的话一般来说只是训练的时候比较慢,因为它的过程会比较长一点,那么它在 test 的时候其实效率和速度还是可以的,再加上我们用 GPU 的话可以快速的矩阵运算,所以它不会在 test 的时候输于传统的方法. Q 字标注的也

演讲稿丨李磊 深度学习让计算机和你我说话对答

       今天碰到了很多以前的同事以及徐伟老师.我非常有幸两年之间跟徐伟老师和余凯博士有非常亲密的合作,跟他们学到了非常多的东西.今日头条是一个内容的生成平台以及分发平台.我们需要鼓励更多的人来参与内容的创造,在这个平台上面会有比传统平台更多的内容,每天可能会有上百万的内容,所以这个平台更需要通过人工智能机器学习的方法,来给每个用户推荐个性化的,你所喜爱的,你所需要消费的内容.        我今天会围绕深度学习的理解和视频分析方面的应用.66年前计算机领域的一位前驱在一篇很有名的文章<计算

这几天 AI 圈都在关注的深度学习库评测

2016 年是雷锋网(公众号:雷锋网) AI 科技评论非常重要的一年,我们围绕人工智能做了一系列的业界.学界.开发者报道,也请了一系列导师大牛过来给我们做技术解读的公开课,在给这些导师大牛提供了一个绝佳展示舞台的同时,也给读者们带来了最深度的公开课内容,下面是雷锋网 AI 科技评论年度盘点之语义识别篇. 深入 NLP---看中文分词如何影响你的生活点滴 嘉宾介绍:徐博士,约翰霍普金斯大学语言和语音实验室博士.2012年毕业后加入微软总部,先后在Bing和微软研究院从事自然语言处理和机器学习相关的

深度学习再度点燃人工智能 安防成重点领域

过去5年间,计算能力的大幅进步触发了AI革命,谷歌母公司Alphabet.亚马逊.苹果.Facebook以及微软等科技巨头争先进入这个领域.尤其是自去年人工智能机器人大与人类棋手开展,人工智能关注度达到了一个新的高峰.其实,人工智能的发展可以追述到60几年前,但是因为技术的原因数次沉寂,直到深度学习的出现,让人工智能再次掀起热潮. 深度学习再度点燃人工智能 安防成重点领域 什么是深度学习? 深度学习是机器学习方法之一,而机器学习则是让计算机从有关我们周围世界或其中某个特定方面的范例中学习,从而让

深度学习下的医学图像分析(三)

本文将从卷积神经网络的角度讨论深度学习.在本文中,我们将使用Keras和Theano,重点关注深度学习的基本原理.本文将展示两个例子--其中一个例子使用Keras进行基本的预测分析,另外一个使用VGG进行图像分析. 我们谈论的话题其实是相当广泛和深入的,需要更多的文章进行探讨.在接下来的一些文章中,我们将会讨论医学影像中DICOM和NIFTI格式之间的不同,并且研究如何使用深度学习进行2D肺分割分析.除此之外,我们还将讨论在没有深度学习时,医学图像分析是如何进行的:以及我们现在如何使用深度学习进

预告:MXNet火了,AI从业者该如何选择深度学习开源框架丨硬创公开课

近日 MXNet 被亚马逊AWS 正式选成为官方深度学习平台,使得前者再次火遍整个 AI 圈. 除了 MXNet 外,谷歌.微软.亚马逊.百度等巨头都围绕深度学习搭建了自己的开源平台.目前研究人员正在使用的深度学习框架不尽相同,有 TensorFlow.CNTK.MXNet.Torch .Caffe.Theano.Deeplearning4j 等. 正如程序语言之争一样,深度学习开源框架同样各有优劣和适用的场景,那么 AI 从业者该如何有针对性地选择这些平台来玩转深度学习? 本期公开课特邀先后在

【深度学习看手相】台湾学生获奖 AI 项目是科学还是伪科学?

AI的颠覆已经蔓延到了"看相界":从不久前闹得沸沸扬扬的人脸识别定罪犯,到最近的看人脸断贫富,再到今天要介绍的"深度学习看手相". 近日,台湾大学举办的一场黑客马拉松(黑客松)比赛上.一位名叫Claire Ching Chen的大学生与实习的同事.大学朋友以及brother 联手开发了一个用于看手相的聊天机器人,名叫Handbot,可通过Facebook Messenger调用. 不过,新智元到Facebook主页上想试用这一聊天机器人时,发现它已经被停用了. 项目

深度学习在美团点评推荐平台排序中的运用

引言 自2012年ImageNet大赛技惊四座后,深度学习已经成为近年来机器学习和人工智能领域中关注度最高的技术.在深度学习出现之前,人们借助SIFT.HOG等算法提取具有良好区分性的特征,再结合SVM等机器学习算法进行图像识别.然而SIFT这类算法提取的特征是有局限性的,导致当时比赛的最好结果的错误率也在26%以上.卷积神经网络(CNN)的首次亮相就将错误率一下由26%降低到15%,同年微软团队发布的论文中显示,通过深度学习可以将ImageNet 2012资料集的错误率降到4.94%. 随后的