第5期 2017年3月 无线互联科技 NO.5 MarCh,2017 基 ̄MongoDB的文本分类研究 陈德森,杨祖元 (广东工业大学自动化学院,广东 广州 510006) 摘要:文章基于流行的非关系型数据库M0ngoDB,结合spark机器学习库中的朴素贝叶斯分类器和支持向量机,对豆瓣影评及 京东商评进行情感分类,并采用准确率、召回率、F-Measure等指标对分类效果进行评价,最后测试TSpark-MongoDB平台的扩 展陛能。 关键词:文本分类;Spark;MongoDB;MLlib 互联网发展促进了社交媒体、在线交易等新兴媒介的发 机后,通过选举方式自动在从节点中选出新的主节点提供服 占据了重要位置,有80%的数据以文本形式存在的。如何有 格式,使得MongoDB十分适合文档的存储与查询。 效利用这些文本数据去创造价值,是亟待解决的问题。 展,这些网站每天都会产生数以亿计的数据。其中文本数据 务,不需要人工参与。(4)BSon的存储格式。类JSon的存储 基于MongoDB的特点,本文尝试用MongoDB结合Spark 文本挖掘(Text Mining,TM)是指从非结构化文本中获 做文本分析研究。MongoDB支持3种部署方式,分别是单机 取用户有用信息的过程[1]。文本挖掘是从数据挖掘发展而来, 现在:文档本身是半结构化或非结构化的,无确定形式并且缺 结构化数据为主,并利用关系表等存储结构来发现知识。 存储及文本分类效果两方面进行研究。 模式、复制集模式、分片模式,本文采用的是分片模式。 Spark结合MongoDB 但与传统的数据挖掘相比,文本挖掘有其独特之处,主要表 1.2SPark是加州大学伯克利分校的AMP实验室(UC 乏机器可理解的语义;而一般数据挖掘的对象以数据库中的 Berkeley AMP lab),Matei Zaharia博士在2O09年所创立的 大数据处理和计算框架,是一个类Hadoop MapReduce的开 针对上述问题,本文将结合MongoDB和Spark,在文本 源通用并行框架。不同于传统的数据处理框架【3],Spark基于 内存的基本类型(primitive)为一些应用程序带来了100倍的 性能提升。Spark允许用户程序将数据加载到集群的内存中, 1 文本数据的存储 上文所述产生的数据【2],通常是由关系数据库管理系 用于反复查询,非常适用于大数据和机器学习,已经成为最 统来处理。实践证明,关系模型是非常适合于客户服务器编 广泛采用的大数据模块之一。在本文中程序中,通过添加 程,它是今天结构化数据存储在网络和商务应用的主导技 mongo-java—driver-3.3.0.jar,mongo—hadoo・core一2.0.1.jar实现 术。然而在数据爆炸的互联网时代,传统的关系型数据在应 MongoDB和spark的连接,使用ANSJ中文分词工具对读入 数据库开始涌现,OMMongoDB,Redis,Cassandra,HBase, CouchDB等。这些非关系型数据库旨在解决大规模集合以 及多重数据类型带来的挑战,尤其适合大数据处理。 1.1 MongoDB¥ ̄k库 对大规模和高并发访问时显得力不从心,因此一批NoSQL 的短评进行中文分词,最后使用Spark MLlib中的朴素贝叶 斯分类器与支持向量机进行文本分析。 采用的是分片模式。 1.3实验数据集 Spark-MongoDB结合的形式如图1所示,其@MongoDE MongoDB是最近几年非常火的一款NoSQL数据库,由 本文采用基于Java的网络爬虫获取互联网上的短评 c++语言编写,是一个基于分布式文件存储的开源数据库系 据,共采集大概60万条评论,涉及了《疯狂动物城》《蝙蝠供 统。在高负载的情况下,MongoDB可以通过添加更多的节 大战超人》《木星上行》{Honor8}等豆瓣、京东的评论。 点,来保证服务器性能。MongoDB ̄'在为Web应用提供可扩 影评和手机销售评论数据合并后,经过初步的清洗(-k双弓 能非常好,它将热数据存储在物理内存中,使得数据读取十 数据库中。在数据库中查看数据: 展的高性能数据存储解决方案。(1)内存充足。MongoDB性 号,清除空数据,编码转换utf-8等),将数据导)vMongoD[ 分快速。(2)高扩展性。MongoDBl ̄高可用集群扩展性非常 在文本分析实验中,按照评论的星级,将打1 ̄2星的评 好,通过物理机的增加和在数据库中配置Sharding,集群扩 认为是差评,4~5星的评论认为是好评,以此来对短评进 展简单、高效。(3)Failover ̄fE¥1]。MongoDB集群的主节点宕 文本分类。 作者简介:陈德森(1989~),男,广西梧州,硕士;研究方向:大数据存储与处理。 一96— 第5 】 20i7年:{』J NO.5 无线互联科技・ 丈验讲亢 如左图所示:  ̄1arC}1,2017 Master(monoos)是主节点 集群模式: 兼顾数据上传、存储和处理 以及资源调度功能j S涵vel/2(mongod)是从节 单 ——…7 , / … StandaIoRe4F r 点 负责数据的存储和处 王堡 .』 图1 Spark—MongoDB结合 mongos>db.MOVIE.find().1imit(2) {”id”:ObjectId(”58b257499bSdabbc426b32d4”),”numbe广’ 7/1 8,,,”ratingSta广’:3,”reco ̄nent”:”还行”,”content” 感动… ) 8022,”time”:”2Oi6/ ”最后,被奶奶的一句话 8031。”time”:”2O16/ f”id”:ObJectId(”58b257499b5dabbc426b32dd”),”number’ 7/20”,”ratingSta r,’:2,”recowent”:”较差”,”content” ”三流文艺片”} mongos>I 图2在MongoDB中查询数据 1.4文本分类算法度量 在 分类问题中,通常使用的评价方法包括准确率,错 误率,召…率,F-Measure,ROC曲线,准确率一召旧率 线 下方面 ,ROC ̄tt线的下 积以及等 。 小逻巾,使』fJl准 表2实验结果 算法部 模J.I= NB 87.35% SVM 89.64 P 单机本地 86.31% 86.83% 89.27% 87.72 87.I 8 87.14 R F P 确车、召… 、F值评估文小分类效果。其中,A,B,C所代农 的含义如太1所示。 表1 ABC代表的含义 公式汁 f“的 义 J 某炎的 1 』 类的文 文 数 数 单机MongoDB 87.20% 88.21% 89.46% 90.73 88.90 87.64 R F1 P 分类器判 j 某炎的 迁4:、 j数 分类器判 1 j 某类 的迂 敞 集群MongoDB A B 89.07% 89.26% 88.67 88.06 R F【 通过n找复制的方』 埘数据进行扩人,验证Spark— C D MongoDB ̄)"(1i式计算能力。使用分词 jL分词,分别 节 准确半(以下简称P);侣 率(以下阳fj;R)。 点、双节点、 : 点做分洲币¨统汁总词数的操作,通过运仃时 比较他们之间的处理效率。其中单节点(主节点)是蚁核 由j:Pfff和R值I{J现矛盾的时候,还可以考虑用另外‘种 法去分折,那就足F—Measure(又称F。Score)。F—Measure 6G内存,坼{ 点(从节点)足 核3G内存。 是P值和R值的』J【】权和平均。 参数at ̄7.1时,就是常 的值,即:可 综合P值和R值: 、 值较高l1’f,说叫分类方法仃效。 从f{!-I3【}l】可以看出,分伽式 单节点的运行时间比较 中,在数槲精达到一定 度后,加速比足大_l 1的, 叫 MongoDB集群征大数 处理方面确实比 机的效率要 。 并不是{ 【JJJ ,甚至还f{J观J 双节点速度比二节点快的尴 接下求使川 瓣数 集,验订F文本分析情感分析在 种 fH由于数据 大小的原【夫】以及 存的限制,它f『J之间的 刖 部署环境 的 法准确度。 1.5实验结果 尬,造成这种现象的原 足闪为启动多个 点,在通信lflJ资 从表2 } 叮以看到,化币.机本地,单村LMongoDB,集群 源调度方面会化费一定的时间。仙总体 i-’ 依旧可以看HJ分 MongoDB集叶1模式中,朴素贝叶斯和支持 机的分类效 布式平台比 节点操作 彳丁 平缓的时『¨j增长曲线。如 花 果卡H差无儿。算法准确度J{:没l仃因为数槲分敞在 个不川17 更夫规模的数据量以及性能更好的机 集群卜,相信它们 点而下降,町知分佰式存储是适合做机器学 ,J。基于Spark 之问会订比较明显区别。…此町知,在实际心J}jl+J,如果 砭 艮大的话,J、;Z[{JSpark-MongoDB分布式甲台处 MLlib的机器学 库的算法效率也比较高,叮 已绎可以适 处理的数捌鞋,应一般的实 肫用场景。 理大数 将足一个很好n勺解决方案。 97 第5期 N0.5 2017年3月 无线互联科技・实验研究 MarCh,2017 60 120 442 文本数据量(万条) 一III-单节点-IIII I I一双节点一三节点 图3分布式与单节点的运行时间与文本数据量 2 结语 分析,将会是分布式环境下大数据分析的不错选择,具有实 由上述实验可知,Spark ̄t带的机器学习库,对一般文 际应用价值。 本的分类准确率已经比较高,结合文档型MongoDB做文本 [参考文献] [1】佚名.文本挖掘[EB/OL].(2017—03—10)[2016—12—2o1.http://wiki.mbalib.com/: ̄.本挖掘. [2】佚名.MongoDB教 ̄[EB/OL].(2017—03—10)[2016-12—28].http://www.runoob.com/mongodb/nosq1.htm1. [3]卡劳Spark快速大数据分析【M].王道远,译北京:人民邮电出版社,2015. [4]NICK P Spark机器学习[M].南京:东南大学出版社,2016. Research on text classiicatfion based on MongoDB Chen Desen,Yang Zuyuan (Automation School ofGuangdong University ofTechnology,Guangzhou 510006,China) Abstract:Based on the popular non・relational database:MongoDB,this paper combines naive Bayesian classifier and support vector machine in Spark machine learning library to do emotion classiifcation for Douban film review and Jingdong commercial review,and takes advantages of accuracy,recall rate,F-Measure and other index to make evaluation of the classiifcation effect,and finally test the extended performance of Spark-MongoDB platform. Key words:text classiifcation;Spark;MongoDB;MLlib (上接第95页) [参考文献】 [1】克里斯。森德.Wireshark ̄分析实战[M】诸葛建伟,陈霖,许伟林,泽北京:人民邮电出版社,2013 [21叶剑锋,魏娜,邓超.轨道交通信号系统维护【M】.北京:人民交通出版社股份有限公司,2016. 【3](日)丸山修孝通信协议技术[M】.王庆,译北京:科学出版社,2004. [4]中国铁路总公司高速铁路通信障碍案例[M].北京:中国铁道出版社,2013. [5】郑丽娜网络通信实验教程【M】.济南:山东大学出版社,2015. [6](以)奥扎赫.WiresharkN 分析实战[M]-古宏霞,孙余强,语北京:人民邮电出版社,2015. Analysis and research of track fault based on Wireshark Li Xiangbo (Nanjing Railway Vocational and Technical College,Nanjing 210031,China) Abstract:This paper presents the method of using Wireshark tools to solve common faults in track communication,and uses the data packet capture ability to analyze and investigate causes of networks faults,then gives the corresponding solutions.The experiment is mainly by setting up an experimental environment,simulate the actual scene,design fault point and using Wirehark tool to capture and analyze to solve speciifc fault.Result of experiment shows that taking advantage of Wireshark to solve the common problems in track communication is of referential signiicance ffor open up a new fault solution road. Key words:Wireshark;rail communication;data packet;fault 一98—