提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:我只采一朵|2017-07-12 15:52:13.000|阅读 2158 次
概述:每天,热巢的工程师都会分析上百万中国社交网络上的热门内容,热巢平台上的大量功能,背后都有机器学习处理文本分类的功劳。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
文本分类 (Text classification) 指的是给定一篇文章,自动判断该文章所属的预先定义好的标签类别 (比如体育、娱乐或者新闻类别等),是自然语言处理 (Natural language processing,NLP) 领域的主要研究方向之一 [1]。
文本分类有着广阔的应用场景,比如垃圾邮件检测 (Spam email detection) 和评论情感分析 (Sentiment analysis) ,本质上都可以看做是具有两种标签类别的文本分类任务:
垃圾邮件检测——判断邮件是否属于垃圾邮件和非垃圾邮件这两类;
评论情感分析——判断评论是否属于正面邮件和负面评论这两类。
每天,热巢的工程师都会分析上百万中国社交网络上的热门内容,热巢平台上的大量功能,背后都有机器学习处理文本分类的功劳。
对文本分类的研究可以追溯到二十世纪五十年代,当时主要依据特定的人工规则进行文本分类。
到二十世纪九十年代,统计机器学习 (Statistical machine learning) 成为主流,一些统计机器学习方法,比如支持向量机 (Support vector machine, SVM) [2] 和朴素贝叶斯 (Naive Bayes) [3] 等分类方法在文本分类中取得了非常高的分类准确率。然而,统计机器学习方法首先需要进行特征工程 (Feature engineering) 工作,该工作需要深入理解业务需求,并且非常耗时耗力。
随着大数据量 (Big data) 和图形处理单元 (Graphics processing unit, GPU) 强计算力的支持,深度学习 (Deep learning) 近年来发展迅速,在计算机视觉 (Computer vision, CV)、语音识别 (Speech recognition) 和自然语言处理领域都有着广泛研究与应用 [4]。与统计机器学习方法相比,深度学习方法可以自动提取特征,使得人们将注意力更多地集中在数据和模型上。
关于卷积神经网络(Convolutional neural network, CNN)
卷积神经网络 (Convolutional neural network, CNN) [5] 是经典的深度学习模型之一,在大规模图像识别竞赛 (Large scale visual recognition challenge, ILSVRC) 中取得巨大成功。CNN模型的局部连接 (Local connectivity) 和权值共享 (Parameter sharing) 两大特性有效地提取了数据特征并降低了模型参数以加快模型训练。
图1:Kim Yoon 提出的用于文本分类的CNN模型结构
KimYoon [6] 首次提出将CNN模型应用在文本分类中(见图1)。在该模型中,第一步是词嵌入层 (Word embedding layer),将每个词表示为固定长度的稠密的词向量 (关于词嵌入的理论部分,我们还会继续发文介绍)。第二步是卷积层 (Convolutionallayer),采用不同大小的卷积核从上到下依次对词向量进行卷积操作。第三步是池化层 (Pooling layer),采取的是最大池化 (Max-pooling) 操作。第四步是全连接层 (Fully connected layer, 包括了Dropout层),对输出标签类别进行预测。
关于fastText
2016年8月份,Facebook开源了fastText工具,用于快速进行文本表示与文本分类任务 [7]。fastText的模型结构非常简单 (图2),单个词或者ngram组合词的词向量取平均后代表该文本的向量,使用softmax函数预测文本所属各标签类别的概率,损失函数 (Loss function) 是真实标签类别与预测标签类别之间的负对数似然 (Negative log-likelihood)。与“深层”的CNN模型相比,fastText的模型结构是“浅层”的。
图 2. fastText模型结构。x1, x2, …, xN 分别表示文本的N个ngram 特征
开始实验
接下来将分别使用CNN模型和fastText模型在公开数据集上进行文本分类,以分类准确度和模型训练耗时两个角度评估两个模型的表现。
相对于图像和语音来说,文字已经是高度抽象的概念了,因此对文本分析并不需要太深的网络结构。在这里使用深度学习框架keras [8] 搭建了CNN模型,其结构为:词嵌入层-Dropout层-卷积层-Dropout层-池化层-全连接层-Dropout层-全连接层。在fastText 的官方GitHub上 [9] 下载并编译了fastText模型。
实验所需公开测试数据来自搜狗实验室新闻数据完整版 [10],包括了搜狐新闻2012年6月到7月期间国内、国际、体育、社会和娱乐等18个标签类别的新闻数据。在依次经过数据提取、中文分词、去停用词、过滤小于10个词的文本和文本去重一系列文本预处理操作后,选取其中汽车、财经、IT、健康、体育和娱乐6个标签类别,每个标签类别下随机打乱后选取15,000个样本作为训练数据集 (Training data),3,000个样本作为测试数据集 (Testing data),即实验使用的训练数据集大小为90,000,测试数据集大小为18,000。
本实验在CentOS 平台运行,由于fastText模型训练不需要GPU加速,因此在训练CNN模型时也没有使用GPU。实验使用的相关软件以及版本分别是中文分词工具jieba (0.38) [11], 词向量训练工具gensim (2.1) [12] 和CNN模型实现深度学习框架keras (2.0)。编程语言是 Python 2.7。
实验结果
经过一系列超参数 (Hyper-parameter) 调整后,在分类准确度方面,CNN模型迭代 (Epoch) 训练数据7次后,在测试数据集上的分类准确度为95.7 % (图3)。fastText模型在相同测试数据集上的分类准确度为 95.8 % (图4)。也就是说,在该测试数据集上,两个模型的分类准确度是基本一致的。
图 3. CNN模型实验结果
图 4. fastText模型实验结果
在运行时间方面,fastText模型总共只需要27秒钟就可以完成模型的训练与预测 (图4),而CNN模型完成相同的操作耗时2212秒 (图3),也就是说fastText模型远远快于CNN模型。实验使用的标签类别和相应数据量并不是太大,在工业界业务需求中往往有成百上千个标签类别,fastText在更大规模的数据集上的优势更加明显 [7]。
值得注意的是,fastText除了可以进行有监督学习的文本分类外,还可以进行无监督的词向量学习。有了词向量后,可以直观地查看语义相关词。
比如,图5展示了与输入词“梁朝伟”最相关的词是:听风者。《听风者》是梁朝伟和周迅等在2012年主演的一部影片,由于训练数据是2012年采集的,因此词向量准确地捕捉到了两个词之间的相关关系。与输入词“奔驰”语义最相关的词是:宝马,可以想象2012年两个车系的竞品关系。
实验讨论
如前文所述,与图像和语音不同,人类的语言已经是高度抽象的概念了。对于文本分类任务来说,在良好的特征工程基础上,线性分类器也可以取得很好的效果 [7]。文本分类还是比较偏线性的任务,因此“浅层”的fastText模型就可以达到与“深层”的CNN模型相似的分类准确度。依此类推,为了解决业务需求,具体在选择算法模型时要充分理解任务属性,依据数据量大小和算法模型本身的优缺点选择合适的解决方案。
除了将CNN模型应用在文本分类任务上之外,还可以将其他深度学习模型应用在文本分类上,比如循环神经网络 (Recurrent neural network, RNN) [13],基于注意力 (Attention) 机制的递归神经网络 [14],循环卷积神经网络 (Recurrent convolutional neural network, RCNN) [15] 等。由于在此实验中CNN模型已经取得了不错的结果,因此在这里没有尝试其他深度学习模型。
目前深度学习已经分别在计算机视觉和语音识别领域取得了state-of-the-art的结果,近年来在自然语言处理领域有着广阔的研究。有趣的是,有人指出深度学习并不能很容易地应用在自然语言处理上 [16]。该文章指出神经网络适用于处理连续稠密的数据 (比如图像和语音),而自然语言在单词/符号水平 (Word/symbol level) 上的并不是连续的,在概念/意义水平 (Concept/meaning level) 上才是连续的。神经网络在单词水平上进行分析会受限于训练数据集,模型训练完毕后泛化误差 (Generalization error) 较大。
因此,不同的算法模型都有不同的优势和劣势,技术团队势必需要充分理解具体的业务需求后,才能提供最佳的技术解决方案并提升解决问题的效率。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢