基于hadoop的中文并行lda算法及在电子病历挖掘中的应用

基于hadoop的中文并行lda算法及在电子病历挖掘中的应用

ID:35179511

大小:3.83 MB

页数:69页

时间:2019-03-20

上传者:U-56225
基于hadoop的中文并行lda算法及在电子病历挖掘中的应用_第1页
基于hadoop的中文并行lda算法及在电子病历挖掘中的应用_第2页
基于hadoop的中文并行lda算法及在电子病历挖掘中的应用_第3页
基于hadoop的中文并行lda算法及在电子病历挖掘中的应用_第4页
基于hadoop的中文并行lda算法及在电子病历挖掘中的应用_第5页
资源描述:

《基于hadoop的中文并行lda算法及在电子病历挖掘中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

*?@’斯素硕±学位论文论文题目:某干HadooD的中女并行LDA算法及在电子病*历巧擺中的应用T晓琳;作者挂若叶枫指导教师学科专业管理科学与王程培养类别全日制学术型硕去_所在学院经资管理学院提交日期2016年12月5日■ 浙江王业大学学位论文原创性声明的指导下,独立进行本人郑重声明;所提交的学位论文是本人在导师研究。除文中己经加W标注引用的内容外,本论文工作所取得的研究成果过的研究成果,也不含为获得浙江不包含其他个人或集体己经发表或撰写材料。对本义的研究作出工业大学或其它教育机构的学位证书而使用过的重要贡献的个人和集体,巧已在文中臥明确方式标明。本人承担本声明的法律责任。、日期;年/之月>曰作者签名;J斯学位论文版权使用授权书,同意本学位论文作者完全了解学校有关保留、使用学位论文的规定学校保留并向国家有关部口或机构送交论文的复印件和电子版,允许论文的全部或部分内被查阅和借阅。本人授权浙江工业大学可切将本学位论文^采用影印、缩印或扫描等复制手段保存容编入有关数据库进行检索,可和汇编本学位论文。本学位论文属于一年解密后适用本授权书。1、保密□,在S年解密后适用本授权书。2、保密□,在3、不保密囚/""(请在上相应方框内打V)^:八/()年/之月T日日期作者签名:诚^J邱}年a导师签日期;>〇化月T日名;心 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用摘要电子病历作为互联网医疗的基础技术,记录了病人的临床诊疗记录,是极具价值的数据资源。我国市级以上医院的病历信息系统的总数据规模估计在100TB以上,日新增数据的数量级为GB,数据类型多样,符合学术界对大数据的定义。目前对电子病历的数据挖掘实践多采用在单台计算机上运用常规的聚类分类算法和关联规则处理结构化数据的分析方法,不能较好地适应大数据环境。Hadoop是当前热门的分布式处理系统,通过组合数量巨大的廉价通用硬件形成巨大的资源池,部署简单,容错能力较高,因此本文以Hadoop为平台构建大数据分析算法的并行程序。本文选择主题模型中的LDA模型作为并行化的目标,参数估计方法为塌缩Gibbs采样法。k本文引入点互信息算法PMI对ICTCLAS分词系统增加了词库的动态更新功能,并给出了处理大规模数据集的并行框架。将输入的文档从外部和内部分块,为避免参数采集中的依赖性,采用对角线法分配数据。在塌缩吉布斯采样时统计每一个单词在所有文档中的词频,在归一化词频向量上叠加合适的随机数序列,过滤掉低于阈值的词语。I 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用本文采用复旦大学的中文语料库从准确率、困惑度、加速比三个指标分析实验结果,得到如下结论:改进后的分词算法能有效增加分词准确率和召回率;改进的并行LDA算法能显著减少模型运行时间。最后,本文以真实新生儿电子病历集为挖掘对象,采用并行LDA算法进行文档分类和特征发现。挖掘结果显示算法分类的准确率较高;算法输出的描述性的词语矩阵包含了候选特征,通过单因素方差分析检验对四种新生儿疾病患病率有显著影响的因素。关键词:医疗大数据,并行LDA,Gibbs采样,Hadoop论文类型:应用/专题研究II 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用CHINESEPARALLELLDAALGORITHMBASEDONHADOOPANDDATAMININGINELECTRONICMEDICALRECORDSABSTRACTAsthebasisofInternetmedicaltechnology,electronicmedicalrecordsarevaluableresourcecontainingthepatient'sclinicaldiagnosisandtreatmentrecords.Thetotaldatasizeofthemedicalrecordinformationsystemisabove100TB,andthenewdateisgrowingrapidlly.Thedatatypesarediverse,whichconformstothedefinitionoflargedatainacademiccircles.Atpresent,thedataminingpracticeofelectronicmedicalrecordsisbasedonthetraditionalclusteringalgorithmandassociationruleanalysis,whichprocessesstructureddataonasinglecomputerandcannotadapttothelargedataenvironment.Hadoopiscurrentlyapopulardistributedprocessingsystem,throughthecombinationofalargenumberofcheapgeneral-purposehardwaretoformahugeresourcepool.HadoopissimpletodeployandhashigherfaulttolerancecomparedtoSpark.ThispaperchoosestheLDAmodelinthetopicmodelasthegoalofparallelization,andtheparameterestimationmethodisGibbssamplingmethodInthispaper,weintroducethepointmutualinformationalgorithmPMIktoincreasethedynamicupdatefunctionofICTCLASwordsegmentationsystem,andgiveaparallelframeworktodealwithlarge-scaledatasets.Theinputdocumentsaredividedfromtheexternalandinternalsub-block,inordertoavoidthedependenceoftheacquisitionparameters,theformistheuseofdiagonaldistributionofdata.IntheGibbssamplingeverywordcountsthenormalizedwordfrequencyvectorsuperimposedontheappropriaterandomnumbersequence,thenwefilteroutthewordsbelowthethreshold.Inthispaper,theChinesecorpusofFudanUniversityisusedtoanalyzetheexperimentalresultsfromthethreeindexesofaccuracy,confusionandspeedup.Theresultsshowthattheimprovedwordsegmentationalgorithmcaneffectivelyimprovetheaccuracyandrecallrateofthewordsegmentation.TheimprovedparallelLDAalgorithmcansignificantlyreduceModelruntime.III 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用Finally,thispapertakestherealelectronicmedicalrecordsofnewbornsastheobjectofdatamining,andusestheparallelLDAalgorithmfordocumentclassificationandfeaturediscovery.Theresultsofminingshowthattheaccuracyofalgorithmclassificationishigh.Thedescriptivelexicalmatrixofthealgorithmcontainsthecandidatefeatures.Thesinglefactoranalysisofvariance(ANOVA)isusedtotestthefactorsinfluencingtheincidenceoffourneonataldiseases.KEYWORDS:Medicaldata;ParallelLDA;Gibbssampling;HadoopTYPEOFDISSERTATION/THESIS:ApplicationResearchIV 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用目录摘要....................................................IABSTRACT...........................................III1绪论..................................................11.1选题背景与意义..............................................11.2相关研究现状.................................................21.2.1LDA算法研究现状.......................................31.2.2医疗行业数据挖掘现状...................................41.3本文的研究工作...............................................51.4本文结构.....................................................62主题模型技术综述......................................72.1LDA模型简介.................................................72.2模型前提....................................................82.2.1贝叶斯法则.............................................82.2.2狄利克雷分布...........................................92.3建模........................................................92.4塌缩吉布斯采样算法.........................................122.5LDA缺点与改进..............................................162.6本章小结...................................................173基于Hadoop的中文LDA算法设计........................183.1中文文本向量化并行算法......................................183.1.1去除符号、停用词......................................183.1.2中文分词工具..........................................183.1.3中文分词并行算法......................................203.2基于Hadoop的并行LDA算法设计..............................213.2.1分布式处理系统........................................213.2.2数据分块..............................................22V 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用3.2.3过滤低频词............................................233.2.4算法处理过程..........................................243.3算法实现...................................................253.4本章小结...................................................294实验分析.............................................314.1实验环境及测试数据..........................................314.2分析指标....................................................314.3过程及结果分析..............................................324.4实验结论与存在的问题........................................374.5本章小结...................................................375并行LDA算法在新生儿疾病挖掘中的应用.................395.1新生儿疾病及诊断特征.......................................395.2影响因素分析...............................................395.3实验设计...................................................405.3.1数据来源及预处理......................................405.3.2参数设置..............................................415.3.3算法运行结果..........................................435.4挖掘结果与分析.............................................455.4.1分类准确率............................................455.4.2主题的内容倾向........................................465.4.3单因素方差分析........................................475.5本章小结...................................................506总结与展望...........................................526.1总结.......................................................526.2展望.......................................................53参考文献...............................................54致谢58攻读学位期间参加的研究工作和获得的学术成果59VI 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用图、表目录图2.1LDA图形模型.........................................................................................10图3.1数据分块与处理过程示意................................................................................23图4.1阈值变化-计算时间/困惑度曲线....................................................................33图4.2主题数-困惑度曲线............................................................................................34图4.3迭代次数-困惑度曲线.......................................................................................35图4.4Mapper数-加速比曲线.......................................................................................36图4.5Reducer数-加速比曲线......................................................................................37图5.1词典更新算法的新词.........................................................................................41图5.2阈值-困惑度曲线................................................................................................42图5.3迭代次数-困惑度曲线.......................................................................................42图5.4文档-主题多项分布............................................................................................43图5.5主题-词语多项分布............................................................................................44图5.6描述每个主题的词语.........................................................................................44图5.7*.tassign矩阵.........................................................................................................45图5.8预测新文档主题..................................................................................................45图5.9性别因素的显著性检验....................................................................................49表2.1LDA模型的参数说明...........................................................................................9表2.2算法1-LDA算法框架.......................................................................................12表2.3算法2-MCMC算法...........................................................................................13表2.4CGS算法新增参数名称....................................................................................13表2.5算法3-基于塌缩吉布斯采样的LDA算法..................................................15表3.1算法4-分词词典更新并行算法......................................................................20表3.2算法5-低频词过滤并行算法...........................................................................24表3.3并行中文LDA算法的参数说明....................................................................25表3.4算法6-并行LDA算法的总体设计...............................................................26表3.5MapperStart过程框架.........................................................................................27表3.6Map过程框架....................................................................................................28表3.7MapperFlusht过程框架......................................................................................29表3.8Reducer过程框架................................................................................................29表4.1Hadoop集群机器的配置...................................................................................31表4.2Hadoop集群机器软件环境...............................................................................31表4.3分词准确性对比..................................................................................................33VII 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用表5.1新生儿疾病数据集信息.....................................................................................40表5.2四种主题中重要性水平前十的描述性词语..............................................46表5.3四种疾病的候选影响因素.............................................................................46表5.4四种主题中重要性水平前十的描述性词语..............................................47表5.5G6PD患儿信息统计表...................................................................................48表5.6G6PD疾病因素的显著性检验.....................................................................49表5.7其他三种新生儿疾病因素的显著性检验..................................................50VIII 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用1绪论1.1选题背景与意义2015年3月,李克强总理在第12届全国人民代表大会作政府工作报告时提出“互联网+”战略,核心思想是利用互联网平台和云计算、大数据、移动互联网、物联网等技术,推动互联网与现代产业结合,促进产业换代升级[1]。例如互联网与传统的通信、交通、金融、零售、医疗、教育等产业生态融合,已经形成即时通讯、打车拼车、P2P理财、购物网站、互联网医疗、远程教育等新产业。在这些新兴产业中,互联网医疗产业规模较为巨大且尚未出现有代表性的产品,需要研究者重点关注。2015年3月,我国颁布了《全国医疗卫生服务体系规划纲要(2015—2020年)》,明确提出积极应用移动互联网、物联网、云计算、可穿戴设备等新技术,推动惠及全民的健康信息服务和智慧医疗服务,推动健康大数据的应用。由目前一系列的试水项目可知,互联网医疗包括且不局限于自我诊断、医生远程诊疗、心理健康服务、慢性病远程监控、小型外科紧急护理、零售医疗、健康APP等,预估产业规模在万亿美元级别。据美国某个研究中心的数据表明,有75%左右的美国人在因特网上收集健康信息,其中40%的人根据收集到的信息判断自身健康情况,这种行为在互联网医疗中被称为自我诊断。发明于30多年前的远程医疗也在近期随着互联网的热潮悄然兴起,2013年美国大约有1500万人接受了远程医疗。随着技术的进步,远程医疗的服务范围必将不断扩大。从技术角度,互联网医疗涉及到大量的视频、电子病历的储存、分析、传输和各种医疗设施的支持,其中的一项基础技术是标准化电子病历。电子病历(EMR,ElectronicMedicalRecord),也称为电子医疗记录,是将病人在临床治疗中使用到的病因、病程、诊断和治疗计划、检查结果、预后等信息以多种数据形式储存在计算机中的病历记录。它包含的数据类型有文本、数字、图形、图像、视频等等。通过对病人的电子病历进行挖掘,研究者可以得到对临床有指导意义的结果,例如疾病的发病因素、病情发展、治疗方法和效果评估等。据统计,截至2014年末,我国现有的2万多家市级以上医院中超过90%拥有医疗信息系统和病历信息系统,数据规模估计在100TB以上,类型包括手写病历、费用登记记录、纸质处方、X光胶片、MRI和CT影像等非结构化数据。每天新增数据量以GB甚至TB计。在数字信息大爆炸时代,数据中蕴含的价值也被重视,通过对人工智能、机器学习、统计学、数据库的交叉研究,诞生了数据挖掘、数据分析等计算机科学,方便研究者从海量数据中提取模式和知识。但是实践中由于数据结构化和分析方1 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用法等技术原因,只有5%的数据被用作数据分析。目前医疗行业中病历系统的数据使用、分析和挖掘远远不足,在大多数市级医院,病历系统除了完成病人的登记手续、记录和查看诊治过程、查看费用、结算费用之外,仅有医院行政部门统计一些简单指标,或是医院某科室联合信息部门对本院病例进行基本数据挖掘。考虑到适用于分析的病例数目较大,病历数据又是动态关联、不断更新的,基本的数据挖掘方法亟需改进。如何有效地处理医疗大数据得到有价值的信息,是医疗行业管理者关注的焦点,也是难点。大数据具有Volume(海量)、Velocity(高速)、Variety(多样)、Value(价值)四个维度的特征,难以用普通的数据库和统计工具管理[2]。2004年谷歌实验室提出MapReduce模型,用来处理大于1TB(1TB=1012GB)数据集的并行运算。并行计算以并行方式运行程序,将原本单向计算的串行程序改造为数个程序同时计算的并行框架,在指定时间段内增加了产出。基于该模型,NUTCH搜索引擎小组开发了开源分布式基础架构系统Hadoop,这个系统可以使数量巨大的廉价通用硬件形成巨大的资源池,从而组成威力巨大的分布式集群系统,从关系型数据库和非结构化文本中尽可能快的提取数据,并且经过十多年发展,Hadoop系统已经发展成为Hadoop生态链。由于迭代计算的原因,很大一部分数据挖掘和数据分析方法需要重新设计以适应并行化环境。本文选择了一种文本挖掘中常用的通过生成概率自动提取文本隐含语义的主题模型(TopicModels)进行并行化设计与实现,采用的算法是潜在狄利克雷分布(LatentDirichletAllocation,LDA)。LDA的主要思想是在不知道被分类类别概率分布的判别式函数前提下,用聚类后的无标记训练样本集估计概率分布参数,用来识别大规模文档集或语料库。LDA算法的参数估计可以使用变分贝叶斯法或Gibbs采样法,但这两种方法都有各自的缺点。变分贝叶斯法得到的结果精度不高,且可能会陷入局部最优解;Gibbs采样法计算复杂度高,参数之间相互依赖,不能满足分析大数据的需求。因此对LDA算法的参数估计开展并行化设计和步骤优化仍需要大量研究,以便进一步提高算法对海量中文数据的适应性,快速准确的估计出模型参数。十几年来,医疗行业的研究者持续使用关联规则算法和常见的分类聚类算法对小规模的结构化数据进行数据挖掘。挖掘目标主要有发现风险因素间相互关系和权重,以及对疾病的缓急轻重和发展过程进行分类预测两大类。近年来,使用大数据挖掘方法处理电子病历的研究也逐渐增多,研究内容主要是临床知识库构建、挖掘平台架构等基础工作。在数据挖掘结果辅助临床医生诊断疾病、追踪病因、优化现有治疗方案、评价疗效等方面还需深入研究。2 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用1.2相关研究现状1.2.1LDA算法研究现状2003年,DavidBlei,AndrewNg及MichaelJordan在《机器学习研究期刊》(JournalofMachineLearningResearch)上发表了对潜在语义索引(LatentSemanticIndexing,LSI)的改进算法——LDA算法[3]。如今它已是最流行的概率主题模型之一,能够从一个大的语料库中发现实际应用中推断的主题。LDA的参数估计算法可大致分成三类:变分贝叶斯(VariationalBayes)(Bleietal.2003)、Gibbs采样[4](GriffithsandSteyvers2004)、置信度传播[5](BeliefPropagation,BP)(Zengetal.2012)。如果按计算方法来分类,LDA的参数估计可以分为两种类型。第一种是基于随机梯度下降(stochasticgradientdescent,SGD)的算法,采用每个单词的主题后验分布依次更新LDA参数的思想。基于SGD的算法包括吉布斯采样、塌缩变分贝叶斯法,和异步BP算法。另一种是基于坐标下降算法(coordinatedescent,CD),先设置一个参数用于估计主题-单词后验概率,然后调整推断的后验概率反复估计参数。典型的基于坐标下降算法是变分贝叶斯和同步BP算法。由于海量数据变得越来越普遍,对海量数据的主题建模技术吸引了许多研究者的兴趣。主题算法的应对策略主要可分为主题在线算法和主题并行算法两大类。在线算法是将大数据流用微型分批处理,并行架构则是使用多核处理器加快主题模型。尽管在线算法使用更少的计算资源,但是它的准确率取决于几个参数。在线算法比单机算法快2-5倍(Hoffmanetal.2010)[6],并行算法比单机算法快700倍(Newmanetal.2009)[7]。由于并行架构被广泛使用,且部署成本较低,并行LDA算法是加速主题模型的理想选择(Zhaietal.2011)[8]。Newmanetal(2007)提出了两种LDA模型并行策略,分别是近似分布LDA(ApproximateDistributedLDA,AD-LDA)和分层分布LDA(HierachicalDistributedLDA,HD-LDA)[9]。AD-LDA的主要思想是将语料库划分为多个文档块,对每一个文档块进行吉布斯采样,词表完整复制到每块,结束一次采样后汇总并更新参数,继续下一次采样。这种采样方式被称为塌缩Gibbs采样(CollapsedGibbssampling,CGS),“塌缩”是指模型中的几个先验参数被边缘化并缩略(collapsedout)为已知量。CGS是对模型的近似实现,精度略有下降。HD-LDA则是一个四层贝叶斯概率模型,为提高精度,在标准模型的基础上对主题-词语分布再加一层,计算复杂度较高。学术界对HD-LDA的研究较少。分布式处理器上的AD-LDA算法不可避免的遇到了通信成本过高这一问题。通信成本会影响并行LDA算法的规模(Wangetal.2009)。2009年ArthurAsuncion等人开发了LDA异步算法(AsynchronousDistributedLDA,Async-LDA)[10]。特点是在任意两个完成采样过程的数据块中合并参数并进行下一次采样,改进了AD-LDA中的等待所有采样过程结束后再进行汇总与更新的处理过程,减少了3 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用等待时间。然而缺点是迭代次数会明显增加,收敛速度较慢。YiWang等人首先在2009年实现了MapReduce框架下的AD-LDA算法,它采用了MPI信息传递接口[11]。PLDA+(Liuetal.2011)采用了数据分割,流水线处理,词语绑定和优先级调度四种方法[12]。Chang(2011)设置了最长计算时间的方法来降低通信成本,减少通信瓶颈[13]。虽然较长的计算时间能掩盖通信成本,但是通信频率的降低可能会导致性能糟糕。雅虎提出了YLDA(Ahmedetal.2012),构建基于共享内存的并行方式,通信成本仍为算法的瓶颈[14]。邱卓林(2015)使用Spark框架并行化AD-LDA,Spark框架是在内部存储器(memory)中集成了MapReduce系统处理数据,对机器的内存有较高要求[15]。在相同的框架下,PGS的可扩展性和应用性比其他推导算法优秀。YangGaoetal.(2015)在MapReduce并行架构上运行PGS、PBP、PVB算法,对比发现PGS与PBP、PVB相比更具可扩展性,主要表现为内存占用率低,原因是它的采样方法更有效[16]。PGS在搜索引擎和在线广告系统方面也有最佳表现。PBP相比PGS消耗更多的内存空间,也不适用于主题较大的数据,但它适用于基于对数似然估计的预测,即具有最佳的建模性能。PVB的预测和应用性能较差,运算速度也最慢。1.2.2医疗行业数据挖掘现状随着医疗产业信息化的深入与发展,医疗信息的综合分析对决策的作用已经日益重要。如何通过对病人的电子病历进行挖掘,可以得到对临床有指导意义的结果,例如疾病的发病因素、病情发展、治疗方法和效果评估等,是当前医疗行业数据分析的热点目标。医疗数据挖掘当前主要是在生物医学、临床医学及基础医学上有应用,国内外研究主要分为以下几类:第一类是发现风险因素间相互关系和在疾病发病中的作用。使用关联规则算法挖掘病历信息,可以发现因素间的相互关联度,通过置信度和支持度筛选得到关联规则结果用于分析。在十几年前,发现关联规则的数据挖掘方法已经在医疗行业受到很高的重视,如陆建红等(2003)利用肿瘤诊断数据库中的多个属性来挖掘出关联规则[17]。张高峰等(2008)应用关联规则对医学中心的产科病数据进行了早产的危险因素分析[18]。丁卫平(2008)提出了一种基于频繁概念格的FCLattice电子病历关联规则挖掘算法,研究了不同疾病在某类病人之间的并发情况、并发规则[19]。曾勇(2014)对广东三九脑科医院电子病历数据进行挖掘分析,随机抽取癫痫病种住院病历资料,尝试采用经典关联规则Apriori算法找出癫痫病种的病因构成[20]。除了对发病因素进行关联规则分析外,还可对医生处方数据中的药物进行关联规则挖掘比较。曾逸笛等人(2015)通过对老年性痴呆的中医4 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用处方研究分析用药的关联规则,得到置信度较高的药对和三味中药[21]。第二种研究对象是对疾病进行分类,判断疾病的缓急轻重以及疾病的发展过程。粗糙集理论、人工神经网络在疾病诊断方面比较有效。粗糙集理论适用于处理数据不完整和不一致的问题,在机器学习的分类算法中被广泛使用。Wu(2015)采用粗糙集设计了一种快速健康评估算法,并使用实际数据进行仿真分析,发现该算法有较高的准确度[22]。饶静(2015)对比神经网络算法、决策树、支持向量机三种分类算法对心电信号进行分类的准确率,发现决策树算法最适合该应用场景[23]。吴生根等(2015)利用决策树方法分析重症手足口病的危险因素,并用于预测该疾病的重症病人[24]。近三年来大数据正逐渐影响医疗卫生领域。研究内容主要包括医疗数据挖掘平台构建,医疗大数据临床语料库的构建,和对地区性和季节差异性疾病、传染病的监督预警等。王冬冬(2015)将不同科室、不同系统中的临床数据整合到基于openEHR的数据仓库中,建立医疗大数据中心[25]。鞠美芝(2016)将自然语言处理技术和条件场理论用于中文病历文本处理,构建中文医疗术语语料库[26]。学术界对医疗行业大数据的应用研究方兴未艾。1.3本文的研究工作各行各业利用互联网平台、云计算和大数据等技术,推动产业升级是行业发展的大趋势。医疗行业,不论是理论上还是实践中,对大数据技术的研究远远不足。本文研究目标是对医疗行业的电子病历进行大数据挖掘,得出关于疾病防治方面的知识。考虑到电子病历多用短文本,而主题模型是一种有效的通过生成概率自动提取文本隐含语义的文本挖掘方法,本文在相关研究的基础上选择MapReduce框架下的LDA主题模型作为基本方法,并改进了分词方法和并行方式。通过实验验证了改进后的并行算法有效提高了准确性,缩短了运行时间。最后,以真实电子病历集为挖掘对象开展数据分析,并得到了若干结论与建议。本文主要工作如下:1、深入研究常见聚类分类方式的不足常见聚类分类方式的不足之处包括:不能有效处理大规模数据集,处理的数据类型不够丰富,相似性度量与主题度量不能共存,对短文本的支持力度不够等。而LDA主题模型能理解文字间的语义关系,生成的主题-词语矩阵能够描述这个主题的特征,能够支持视频图片的数据类型,更能表示短文本的特征。LDA模型不仅能发现分类规则,也能基于有效降维来度量对象间的相似性,既可以是分类算法,又可看作聚类算法。2、并行LDA算法的框架选择与改进本文采用分布式文件处理的方式处理大数据。目前实践中使用较多的分布式5 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用文件处理系统主要是Hadoop和Spark两种。本文综合比较节点内存、容错性、运行时间等各项指标,最终选择基于Hadoop的MapReduce框架作为并行框架。之后,对现有的分词算法增加了动态更新功能,使之更适用于专业领域的分词;对数据分块技术进行改进,将文档内外部分块后复制到节点中,减少参数规模;在节点的Gibbs采样算法中加入低频词过滤算法,加快算法收敛速度。最后用复旦大学的中文测试集从准确率、困惑度、加速比三个指标分析实验结果,验证了改进的并行算法的优势。3、电子病历的数据挖掘以真实新生儿疾病电子病历集为挖掘对象进行文档分类,并且利用LDA算法特征找到描述疾病的词语矩阵,选出重要性水平高单词作为候选特征,检验对新生儿疾病患病率有显著影响的因素。最终得到了若干结论与建议。1.4本文结构本文一共包含六个章节。每章的主要内容安排如下:第一章:绪论。第一部分包括本文研究背景和意义,主题模型和医疗数据挖掘算法的研究现状,最后描述了本文主要工作和结构安排。第二章:主题模型技术综述。简要介绍了LDA主题模型的建模、推导与参数估计方法,重点介绍了基于吉布斯采样的参数估计方法。第三章:基于Hadoop的中文LDA算法设计。此部分先使用中文分词工具对文本进行向量化处理,并考虑到待处理文档的专业性设计了词库更新算法。接着,在数据分块、低频词过滤方面改进现有的基于Hadoop的并行LDA算法,设计了相应计算框架与实现过程。第四章:实验分析。主要介绍了测试集来源、实验环境,从准确率、困惑度、加速比三个指标详细分析实验结果。第五章:电子病历的挖掘与分析。挖掘产妇和新生儿疾病筛查的电子病历,从疾病分类、相关影响因素两方面进行数据分析。第六章:总结与展望。总结整篇论文,针对存在的问题提出未来研究方向。6 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用2主题模型技术综述2.1LDA模型简介主题模型(TopicModels)是一种文本挖掘中常用的通过生成概率自动提取文本隐含语义,从而对大规模离散数据集有效降维的技术[27]。目前文本挖掘领域中主题模型和潜在语义索引(LatentSemanticIndexing,LSI)两种降维技术表现最为突出。LSI采用了标准的矩阵分解技术(奇向量分解)找到潜在语义空间。而主题模型提供了用于降维的主题概率框架,其类型有概率潜在语义索引(PLSI)和潜在狄利克雷分布(LDA)。LDA是由DavidBlei,AndrewNg及MichaelJordan于2003年发表在《机器学习研究期刊》(JournalofMachineLearningResearch)的概率语言模型。在PLSI的基础上,Blei增加了贝叶斯公式,在不知道被分类类别概率分布的判别式函数前提下,用聚类后的无标记训练样本集估计概率分布参数,由此开发出一种新的主题模型LDA,用来识别大规模文档集或语料库。当时Blei使用的是变分EM训练方法,该算法比较复杂并且得到的是局部最优分布,由ThomasGriffiths和MarkSteyvers在2004年时引入了Gibbs采样方法,并演化为CollapsedGibbs采样法,推导较为简洁,被广泛使用到自然语言处理、文本挖掘等领域,在社交平台话题分析、视频场景分析、人脸识别、异常检测等应用场景中发挥了巨大的作用。最近对LDA研究的进步已经使它适用于大型和动态数据集的降维,使得研究广度与深度进一步扩大。由于算法中包含了贝叶斯推断这一典型的分类算法,LDA的主要功能就是通过无监督学习分析未知类别训练集,从中发现分类规则,以此预测新数据的类别。同时,由于它拥有降维的特性,能够度量对象间的相似性,也有研究者将它用作聚类算法。作为一种分类算法,LDA的分析对象类型可以是图像、文本、视频等,目前研究的主要内容是基于LDA的文本分类。与决策树、贝叶斯、K-近邻等分类算法相比,该算法的核心优势就在于能高效处理大规模训练集,且数据类型更丰富。与SVM、人工神经网络相比,在预测率相似的情况下LDA能够解决传统分类中相似性度量与主题度量不能并存的问题[28]。并且,一项针对短文本的研究表明,LDA方法比SVM方法更能表示短文本的特征[29]。与典型聚类算法K-Means相比,LDA在处理高维数据方面具有较大优势。与LDA相比,K-Means结果好坏过分依赖于对初始聚类中心的选择,容易陷入局部最优解,对异常数据较为敏感,并且只能处理数值属性的数据。与人工神经网络方法和基于进化理论的方法(模拟退火算法、蚁群算法、遗传算法等)相比,LDA算法会建立主题-词语矩阵,这些词能够描述这个主题的特征,其他算法都7 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用没有这个功能。这相当于用这些词为隐含的主题建模,而主题为文章建模,能够由此判断两个文章的相似性。在此之前,文章的相似性比较的典型方法是采用tf-idf方法,没有考虑到文字之间的语义关系,这就是LDA区别于传统文本聚类的优势。而且,尚未出现人工神经网络方法和基于进化理论的方法在处理视频信息方面的研究。当然LDA也与这两种方法有相同的缺陷,比如过于依赖一些经验参数的选取,具有较高的计算复杂度等。2.2模型前提2.2.1贝叶斯法则贝叶斯法则是由统计学家贝叶斯推导出来的一种通过某些观察值推断概率的一种方法。它由条件概率公式变形而来。假设有两个事件A、B,事件A先发生,贝叶斯法则为:P(|)()BAPAP(|)AB(2.1)PB()公式2.1左侧P(A|B)称为A的后验概率,是事件B发生之后对A概率进行的调整。如果后验概率大于1,A事件发生的可能性变大;如果后验概率小于1,意味着事件A的可能性变小。若等于1,说明B的发生与A发生没有关系。右侧P(A)为A的先验概率,是B发生之前主观上对A的概率进行的判断。PP(|)BA(B)为标准化常量。被称为标准似然度,公式2.1也可表示为A的后PB()验概率=A的先验概率×标准似然度。P(A|B)随着P(A)和P(B|A)之积的增长而增长,如果B独立于A时被观察到的可能性越大,那B对A的支持度越小。给定数据A时集合B中可能性最大的假设被称为极大后验假设,可以用贝叶斯公式计算每个候选假设的后验概率来确定极大后验假设,计算公式如下:A_map=argmaxP(A|B)=argmaxP(B|A)*P(A)/P(B)=argmaxP(B|A)*P(A)(2.2)约去了不依赖于A的常量P(B)。某些情况下假设P(A)相同,式子可以进一步简化成求P(B|A)的最大值来寻找极大似然假设,P(B|A)常被称为给定A时B的似然度。8 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用2.2.2狄利克雷分布对于语料库中的每篇文档,LDA假想了它的生成过程:文档的产生是一个随机生成过程,文档(Document)是潜在主题(Topic)服从一定分布的样本集合,潜在主题(Topic)是单词(Word)服从一定分布的样本集合,一般认为这两种分布都是多项分布(MultinomialDistribution)。多项分布是二项分布在K维的扩展,而二项分布的先验β分布也可以扩展到K维,称为狄利克雷分布(DirichletDistribution)。狄利克雷分布是多项分布的先验分布,它与多项分布共轭(分布函数形式相同)。从狄利克雷分布上绘制出来的每个样本就是多项分布的参数向量,分布率为:k)KPp(|)Dirp(|)k1kpk1(2.3)kkk1()kk1dim1K()pk1,()k1k()k()dim(2.4)k1k1kα为狄利克雷分布的参数,写作D(。多项分布的参数向量p服从参数α的分布,所以α也被称为超参数。根据狄利克雷分布在向量p上的积分为1,得到公式kpk1dp()k(2.5)pk12.3建模LDA模型的中心思想是语料库D中的每篇文档Di是K个潜在主题的多项分布,记作θj,θj的先验概率来自于超参数为α的Dirichlet分布。每个主题k在词表V词语上的多项分布记作φk,φk的先验概率来自于超参数为β的Dirichlet分布。某文档Di的第j个词xij属于的某个主题zij来自Vθj,xij来自Vφk。模型中的参数与说明见表2.1。表2.1LDA模型的参数说明变量英文名性质带下标的变量名行列元素特征αhyperparameter狄利克雷分布//人为设的参数置9 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用续表2.1LDA模型的参数说明βhyperparameter狄利克雷分布//人为设的参数置θtopicdistributionfor文章-主题多项θi:文档D在主KxD矩阵输出document分布题上的多项分布φtermprobabilitiesfor主题-词语多项φk:主题K在KxV矩阵输出topic分布term上的多项分布ztopicofeachtoken每个词的主题zij:第i篇文档中NxK矩阵可计算第j个词的主题xtoken词语,构成主题Xij:第i篇文档DxN矩阵可计算的最小单位的第j个词Ktopicnumber主题个数/K维向量待定参数Dducumentnumber文档个数Di:第i篇文档D维向量可计算Vtermnumberin词表中词的个Vt:词表中序号V维向量可计算vocabulary数为t的词Ntokennumberin文档中的词元Ni:第i篇文档Kx2矩阵可计算document个数中词的个数LDA图形模型表示了这些随机变量是如何联系的:αθjzijβΦkxijKNjDi图2.1LDA图形模型在该图中,每一个随机变量由圆和正方形表示。圆表示连续的随机变量,长方形表示离散的随机变量。有阴影的变量表示这个结果已知(xij可以被观测到,超参数α和β是预先设置的)。如果一个变量的结果取决于第一个变量的值,则会有一个箭头从第一个变量指向另一个。长方形表示该组被重复多次,例如每10 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用个文档和每个词元。选择主题-词语的概率分布,即主题K下所有单词的概率分布是多项分布,服从参数为β的对称狄利克雷分布。x()W1KKxD(p|)x(2.6))]v1计算每篇文章的主题分布矩阵,在一篇文章中主题服从参数为α的狄利克雷分布。狄利克雷分布抓住了每篇文章的独立性和文章内部的高耦合性这两个特征。k()kD(p|)k1kk1(2.7)iikikk1k)k1选择每个词元的主题。主题Zij是从文章-主题的分布中选择出来的。zulti(Mkpz|)(2.8)ijiijiik选择每个词元。每个词Xij从与选中主题相关的多项分布中被选择。xulti(Mpxvz|,)k(2.9)ijzijijijkx求解的最终目标为:xpzx(,kk)pzx(|)k1(2.10)pzx(|)xkpx()pz(,)kxkkk1k1该方法求解次数达到了Kx次幂之和,即使在并行化技术日趋进步的今天也很难被直接求解,因此对它的简化方法层出不穷,2.4节将会介绍一种采样简化方法。接下来解释为什么LDA算法能“理解”语义。假设即将使用LDA学习的话题i和词表中的某个词v具有较高的关联性,即P(x=v|z=i)较高。作为LDA生成过程的结果,包含术语v的任何文献d都具有升高的主题i的概率,这点在贝叶斯法则被提到,即P(z’=i|x=v)>P(z’=i)。这意味着与术语v共同发生的所有术语更可能已经由主题i生成,特别是作为共同出现的数量增加。因此,LDA结果中的主题最可能的条件经常彼此在文件共现。此外,LDA也有助于分析语言的多义性。假设某个词v在主题i和主题i’下含义不同,那么它的上下文在主题i和i’上出现的概率也会有较大不同,然后LDA将通过判断v与主题i的概率使用上下文来消除歧义的主题。极大似然函数。LDA模型训练涉及到在生成训练文档的概率最大化的情况下进行参数的优化设置。在一个给定的LDA模型里训练文档的概率被称为极大似然函数L。11 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用MNL(|,)(|)(|)(|)pxijzpzjijiiippin11(2.11)kk)kxk1k1()X1zxizkikxv(2.12)kv11)]k)k1表2.2算法1-LDA算法框架算法1LDA算法框架INPUT:预处理后的语料库D,通常一篇文章一行,已分词主题数K超参数α和βOUTPUT:文章-主题概率分布θ主题-单词概率分布φforalltopicsKdosampleφk~Dir(β)foralldocumentsDdosampleθi~Dir(α)sampledocumentlengthNi~Poiss(ξ)forallwordsinNidosamplezi,j~Mult(θi)samplexi,j~Mult(φk)2.4塌缩吉布斯采样算法吉布斯采样算法是2004年Griffiths等人提出的一种随机采样方法,当直接采样困难时,从指定的多元概率近似分布的观测序列来估计难以推断的概率模型值的分布。塌缩Gibbs采样(CGS)是将吉布斯采样算法中的几个先验参数α、β、初始Zij等简化为已知量的方法。GibbsSampling是Metropolis-Hastings(MH)算法的一种特殊情况。而MH算法来源于Metropolis等在1954年给出MarkovChainMonteCarlo(MCMC)方法。一阶马尔科夫链(MarkovChain)是一组事件的集合,上一个发生的事件将12 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用决定下一个事件的发生,即时刻t+1的状态只与时刻t的状态有关。用数学公式定义为:X=(X1,X2,X3....Xt,Xt,+1Xt+2,.....)P(Xt+1=x|Xt,Xt-1,Xt-2,,X1)=P(Xt+1=x|Xt)X可以为一个数字,一个向量或者一个矩阵。有这种方法产生的马尔科夫链具有平稳性质,当t足够大时,马尔科夫链将会平稳的收敛于同一个概率分布π(x)。它的平衡方程为:Φ(X)*P(Y|X)=Φ(Y)*P(X|Y)(2.13)MCMC方法的关键在于Q(Xt,Xt,+1)Q为下一事件发生决定函数,和ε(Xt,Xt,+1),用来判断是否收敛。假设有一个三个参数的马尔可夫链,只有它们相互的后验分布已知,那么可以一开始给三个参数赋初始值,根据三个变量的后验分布产生下一时间的三个变量,重复上述步骤就可以得到一个马尔可夫链。表2.3算法2-MCMC算法算法2MCMC算法step1:initializeX0=x0step2:fort=0,1,2,3...doXt=xtu~Uniform[0,1]//u从[0,1]均匀分布中取样ifu<α(xt,y)=p(y)q(xt|y)Xt+1=y//接受转移elseXt+1=xt由于转移率α的数值可能比较小,导致采样过程中大部分时间用于拒绝,使得整个采样过程,延长。Hastings对MCMC算法进行了改进,采用同比例放大α(xt→y)和α(xt→y)至较大值等于1的方法,加快函数的收敛速度。吉布斯采样则是基于MH算法在平面上构造出两点之间的转移矩阵yt+1~p(y|xt)和xt+1~p(x|yt+1),也能得到马尔科夫链的平稳状态。塌缩吉布斯采样算法(CollapsedGibbsSampling,CGS),CGS的特征是某些变量被边缘化,例如将θ和Φ看为基本不变的常量,仅Zij被采样。在LDA模型的各个参数基础上,CGS方法还要引入4个计数变量,其符号和含义见表2.4。13 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用表2.4CGS算法新增参数名称新增参数名称含义nik文档Di中主题k的词的个数ni文档Di中所含词的总数nkt主题k中编号为t的词的个数nk主题k中所含词的总数首先,算法将主题z0随机地分配给每个单词xij,在其他变量的固定值基础kt,根据其他所有词的主题分配z上统计ni、nk-i估计当前词分配各个主题的概[30]kt率p(zi|z-i,x)。它也被称为Gibbs采样公式。简而言之,统计的词数ni、nk不包括被采样的数据,并且在每次取样后都要进行更新。然后根据p(zi|z-i,x)的结果重新生成抽样,将主题z1,2,...随机地分配给每个单词xij,直至φ、θ收敛。该方法产生的是底层分布的无偏估计。在文档中最频繁出现的主题有一个更高的概率,也更可能对应于当前词元。LDA的联合分布写成:(2.14)pxz(|(|pxz(|)pdkv1j()t+1ztd()zt,z(2.15)zt11k(+jz)()tv,{jj}zzt1z1()pz(|pz(|p(|)dik1j()k+1ikdik,iik11()(2.16)i(+ji)()kk,jni{i}k1i1()所以得到kM(+j)(+j)zipzx(,|.(2.17)zi11()()即对除当前被取样的词外,其他所有词分配主题,根据得到的主题分配和被取样的单词来计算当前词所属主题的概率矩阵。14 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用pxz(,)pxz(,)pz()pz(kz|,)x.kkpz(,)xpx(|z,)(xpw)pz()kkkkk()j()jzi.(jj)()zi,,kk()ttv()()kkk()(jjkt)(t1k,tk)(jjik)(k1i,kk).(j()k)(vkj()t)(j()k)(j()k)k,kttk11k,kkti,kik()tk()(jj))ki,kkt,k.vk()tk()tk11jjki,kt)[k]1()t(j)k,tk()n()kvi,kk()tt1jk,tk)(2.18)k()k∵伽马函数具有Γ(z+1)=zΓ(z)的性质,且[k1jik]1是对K求和的结果,与主题分配无关,可消去,又因为狄利克雷分布的期望公式为E(Dir(a))=ai/∑iai,得到θ和φ的计算公式:()tnkt,kt,v()tt1nkt()kn(2.20)ikik,k()kk1nik表2.5算法3-基于塌缩吉布斯采样的LDA算法算法3基于塌缩吉布斯采样的LDA算法INPUT:D、K、α、βOUTPUT:θ、φ、Zijstep1:initializenkti,ni,nk,nk=0step2:foralldocumentsinDdoforallwordsinDidoZij=k~Mult(1/K)15 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用ni+=1nk+=1nki+=1ntk+=1step3:foralldocumentsinDdoforallwordsinDidoni-=1nk-=1n-=1nk-=1sampleZ’ij=k~p(zi|z-i,x)ni+=1nk+=1nki+=1ntk+=1lfreachthenumberofiterationsthenoutputθ,φandZij2.5LDA缺点与改进LDA具有主题建模的多种优点,包括实现较为简单并且能挖掘出潜在有用的主题。标准LDA算法无数次读取训练集,本质上是连续的,并且它倾向于广泛的学习主题,在实践中这意味着只能适用于一小部分数据的训练。然而根据最近并行算法的进步,使得该算法能合理训练和应用于非常大的文本语料库及动态数据,或者是嵌入网络的数据和其他具有特殊特征的数据,比如采用塌缩吉布斯采样法(CGS)和变分近似(VariationalApproximation)方法,也有研究者巧妙规划出并行但是不近似的LDA算法。总体上来说,在实践中更容易正确的实施和表现更好的是近似方法。目前对LDA的改进方法集中于两方面,包括用多台计算机并行LDA和改进算法以减少工作量。可以按是否共享内存为标准,将并行实现LDA划分为共享内存和不共享内存两种框架。前者出现较早,三个具有代表性的分布式LDA算法包括近似分布LDA(approximatedistributedLDA,AD-LDA),异步分布LDA(andasynchronousLDA,AS-LDA),和并行LDA(parallelLDA,PLDA)[31]。基于不共享内存的并行LDA实现主要是基于GPU的多线程处理技术对算法加速。这些方法都较好的降低了通信成本,缩短了收敛时间。改进后的LDA也适用于数据流。Yao等人构建了一个GS优化算法将现有16 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用的主题模型应用于文件流数据[32]。Hoffman开发了一个LDA的在线算法依次训练文档中的每个模型,并且由于该算法相当与随机目标函数的梯度下降,所以收敛于函数的一个固定点,不会降低模型的质量[33]。2.6本章小结本章主要介绍了LDA主题模型的思想、主要参数、参数估计方法,并给出了基于塌缩吉布斯采样方法的参数推导过程。模型的前提是贝叶斯法则和狄利克雷分布。LDA模型的总体思想是文档可看作是主题之上的多项分布,而主题是词语之上的多项分布。参数估计的方法有变分EM、Gibbs采样、BP置信度传播等。考虑到应用性及可扩展性,选择塌缩Gibbs采样方法作为LDA参数估计方法,推导了参数θ、φ的计算公式。LDA模型的主要优点是通过无监督学习分析未知类别训练集,从中发现分类规则,以此预测新数据的类别。同时,由于它适用于大型和动态数据集的降维,能够度量主题间的相似性,也可看作聚类算法。它主要使用在自然语言处理、文本挖掘等领域,在社交平台话题分析、视频场景分析、人脸识别、异常检测等应用场景中发挥了巨大的作用。17 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用3基于Hadoop的中文LDA算法设计3.1中文文本向量化并行算法LDA图形模型显示只有xij是可以直接观测到的变量,是主题最基本的组成部分,因此被称为词元(token)。它可以单独成为主题,也可以组合成某个主题。对于英文文档来说,空格号作为词语之间的间隔,没有词元选择这个问题。但是如果待处理是中文文档,则必须先进行中文分词操作。并且为了提高LDA模型的运行效率,在预处理时候要对分析文本尽可能多的进行降维。总体来说,预处理的过程是去除特殊符号、标点符号,引入停用词表,采用某种分词模型对文本分词[34]。3.1.1去除符号、停用词考虑到本文的研究目标是中文文本分类,汉语标点符号、特殊符号对分类无主要作用,有可能会影响分类结果,因此可以直接删去。所以最后文档的内容就变成了文本与数字。为了提高分类效率,还需要去除以下两种类型的词元:一是在文档中极其普遍,很少单独表达文档信息的词语,二是自身无明确意义的词语,例如语气助词、部分副词、介词、连接词等。这两种词语被称为停用词。需要注意的是第一种情况下,如果该词元能与其他词元组成一个表达文档相关信息的词语,就不能将它放入停用词表中。本文在现有停用词表基础上根据分词结果进行人工增减。3.1.2中文分词工具在处理完符号与停用词之后,词元的划分面对着词库匹配无法解决歧义,以及词性划分规则只能确定词的边界的问题。需要一种中文分词法能够较好解决以上两种问题。当前的分词算法可分为基于字典与字符串匹配、基于概率统计的两种算法。第一种算法较为机械,因此现采用基于概率统计的分词算法,如果字与字之间的联合概率高,认为它们可能组成一个词。该算法的步骤是将待处理文本按字划分,接着查找这些字所有可能的词性和这些字出现的概率,然后生成各种组合并计算它们的联合概率,保存概率最大的结果。目前热门的中文分词工具有汉语词法分析系统ICTCLAS、Stanford汉语分词工具、哈工大语言云(LTP-cloud)、庖丁解牛分词、盘古分词等。考虑字典完整性及对中英文、数字混合文本的支持,本文采用了经过改进的ICTCLAS作为分词工具进行并行化。18 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用该工具囊括了七万多个词语及词性标注工具,能基本满足一般文本分词的需求,但对专业领域的文本分析仍需改进。改进目标是让分词算法能够在大规模数据集中动态更新分词词典。为此,采用了一种点互信息(Pointwisemutualinformation,PMIk)算法,在大规模数据集中根据统计量PMIk衡量两个字符间的凝固程度,然后通过上下文的PMI计算,评估该组合的自由运用程度[35]。PMIk设置了k个联合概率因子,能够改善PMI过高的估计低频相邻字符的凝固程度。例如PMI为“彷徨”、“忐忑”等从不单独使用单字的词语赋予了过高的凝固程度,即使它们出现频率较低,也会认为其是候选新词。PMIk算法定义如下:(3.1)等式的左侧代表的是x和y的PMIk相关度,右侧分子中p(x,y)表示字符x和y的联合概率,分母中p(x)为字符x出现的频率,p(y)为字符y出现的频率字符可以随意组合,字数不限。一项对词长的研究表明,至少99%的词的词长在五字及以下。用t表示词长,先研究t=2时如何发现预备的新词种子。对于由t个字符组成的新词w1w2,寻找w1之前和w2之后的字w0、w3构成一个4字符组合w0w1w2w3。计算w0和w1的PMIk均值Ek1,和w2和w3的PMI均值E2Ekk1=(PMI(w0w1)+PMI(w1w2))/2Ekk2=(PMI(w0w1)+PMI(w2w3))/2若PMIk(wk1w2)>PMI(w0w1)+E1PMIk(wk1w2)>PMI(w2w3)+E2说明w1w2凝固程度较高,w1w2计入预备种子。与停用词表核对w1w2是否包含停用词,若是则结束之后的扩充方法。可以归纳出词长为t时扩充词长的更新方法,t为大于等于2的整数:对于由t个字符组成的新词w1...wt,寻找w1之前和wt之后的字w0、wt+1构成一个t+2字符组合wkk0w1...wt+!。计算PMI(w0...wt)和PMI(w1...wt+1)。若PMIk(wk0...wt)>PMI(w1...wt+1)说明应向wkk0扩充。E1=(PMI(w0...wt)+PMI(w1...wt))/2若PMIk(wk0...wt)+E1>PMI(w1...wt)则把w1...wt向前扩充一个字符。反之若PMIk(wkkk0...wt)≤PMI(w1...wt+1),计算E2=(PMI(w1...wt)+PMI(w1...wt+1))/219 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用若PMIk(wk1...wt+1)+E2>PMI(w1...wt)则把w1...wt向后扩充一个字符。最后对预备种子进行阈值过滤,与已有词表核对加入新词。3.1.3中文分词并行算法对大规模语料集,考虑到数据库的规模大多在104以上,需要使用多个Mapper对数据分块处理。文档内部词语具有顺序特征,因此一个文档为分块后的最小单位,记作一条记录,文档内部不再分割。可用InputFormat控制输入的文本分块大小。Mapper过程需要计算新组合xij...xi(j+t-1)、加前一个字符组合xi(j-k的值并生成预备种子集合。执行1)...xi(j+t-1)、加后一个字符组合xij...xi(j+t)PMIni1kk存在性过滤,阈值T=PMI,得到的结果为PMI值高于均值的预备种子。ni在Reducer阶段汇总所有Mapper生成的预备种子集,去掉子字符(substring)中包括停用词的字符组合,将获得的新词加入分词字典中。可使用更新后的分词字典对字符重新进行拆分,比较两种字典下分词准确率等指标评估更新结果。表3.1算法4-分词词典更新并行算法算法4分词词典更新并行算法INPUT:语料库D,词典E,停用词表SOUTPUT:新词E’MappersplitDintoDnforallDiinDndoinitializePMIkj=0,t=2,j=2forxijinDidocountniforj∈[2,ni-1]doStr=xij...xi(j+t-1)a=PMIk(xij...xi(j+t-1))b=PMIk(xi(j-1)...xi(j+t-1))c=PMIk(xij...xi(j+t))ifb>cifa<3bj-=1t+=120 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用elseaddxi(j-1)...xi(j+t-1)tocandidatelistelseifa<3cj-=1t+=1elseaddxij...xi(j+t)tocandidatelistendifforallcandidateLincandidatelistdoni1kT=PMIlnilifPMIk(l)>TthenoutputReducerifnosubstringinSthenoutputaddnewwordtoE3.2基于Hadoop的并行LDA算法设计3.2.1分布式处理系统目前实践中使用的分布式文件处理系统主要是Hadoop和Spark两种。Hadoop通过分布式文件系统(Hadoopdistributedfilesystem,HDFS)存储和MapReduce并行计算框架处理数据。Spark则是在内部存储器(memory)中处理数据,它集成了Hadoop的MapReduce系统,主要研究内容是批次分析工作,反复机器学习,交互式查询和图形处理。Spark系统对机器的内存有较高要求。MapReduce虽然因为需要从外部存储器上读取数据所需时间较长,但是在容错能力方面占优,对单节点的机器性能要求低于Spark。在实际运用中,词表V的大小往往在105数量级以上,考虑到一词多义(polysemy)和同义词(synonym)性质,粗略认为一个主题与相近词汇的量级相同,因此估计主题数在104数量级以上。如果要存储完整的主题-词语矩阵φ,每个计算节点的内存需要大于10GB。这是非常不实际。实践中最常见的工业计算机集群经常处理多项任务,每个机器21 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用能用于并行LDA算法的内存空间最高只有2GB[36]。MapReduce框架能减少每个任务的内存需要,因此本文采用Hadoop作为平台构建LDA算法的并行程序。Hadoop是一个分布式基础架构系统,是NUTCH项目组对Google云计算基础架构系统的开源实现。Google底层基础设施最核心的是GFS和MapReduce,相应的Hadoop设计是HDFS和MapReduce。这个系统可以使数量巨大的廉价通用硬件形成巨大的资源池,从而组成威力巨大的分布式集群系统,从关系型数据库和非结构化文本中尽可能快的提取数据。它是用于大数据的、补充关系型数据库,与OLTP、OLAP处理对象有相似也有不同。OLTP数据是随机获取的结构化数据,OLAP数据是连续获取的结构化数据,比如关系型数据库。Hadoop2.2之前的架构可分为两大部分:分布式文件系统HDFS和MapReduce(V1)。节点(Node)用于存储数据。30-40个节点被称为机架,空间上在一起并链接到同一个网络。同一个机架上的两个节点网络带宽大于不同机架的两个节点带宽。一组机架的集合被称为集群(cluster)。HDFS在Hadoop集群中的节点上已存在的文件系统的顶部运行。通过复制实现高容错性。通过寻道减少大型文件。Hadoop仅仅寻道每一个块的起始点然后从那里开始连续读取数据。Hadoop使用数据块来存储文件,一个块是一个下层文件系统上以一个或多个块的形式存储的一个文件。文件变成许多块分布在多个节点上,可以比单个节点都大。块的大小默认是64M,可以更大。2.2之后的架构有所不同,任务管理器和任务调度被独立出来生成了新架构Yarn,取消了JobTracker节点和TaskTracker节点,也不需要再定义每个节点上的MapReduceslot数。当一个应用程序被调用时,一个应用程序Master启动了。应用程序Master然后负责和资源管理器协调资源。这些资源被分配到每一个数据节点的container中并运行设计的任务。3.2.2数据分块常见的数据分块方法是将语料库D横向分块,在每个数据块Dp中包含了i个文档,文档按行输出,文档内部和词表不进行分块。为了减少内存的需求,本文将主题-词语多项分布矩阵φKxV划分成M块,将文章-主题多项分布矩阵θKxD划分成N块,同时,输入的文档D和词语X构成了NxM的矩阵,将DxX划mn,分为NxM的小块pti,。例如M=5时我们只需要每台机器的1G内存来容纳5G的φ矩阵。这样有效降低了对工作节点性能的要求,提高了并行效率。图3.1表示了输入的文档-词语矩阵是如何被划分成小块的。考虑到数据分块的负载平衡,我们在文件间和文档内部分别使用了随机分配方法,尽量使字的数量在每个数据分块上几乎相等。在MapReduce中,每一个Mapper使用了节点的一个CPU核,处理一个数据分块和存在内存中的两个参数。因此,与单机版本的原始算法相比,22 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用111)的参数规模。M、N的值需每一个Mapper只消耗了MxN的数据规模和(MN满足最优化在内存中的文档-主题分布和主题-词语分布的要求。MapsamplingDatasetsMapperFlushUpdatetopicNameNodeMapperStartDataNode1ReducerWordsAggregatemodelDataBlockDataBlockDataBlockparameters1,1……1,MMapsamplingDataBlockDataBlockDataBlock………………MapperFlushDataBlockDataBlockDataBlockUpdatetopicN,1……N,MDataNode2Reducer图3.1数据分块与处理过程示意尽管在LDA算法中不考虑文章中词语出现的先后顺序,但是四个统计量ni、nkti、nk、nk之间存在着相互依赖的关系。在LDA模型中,可观察到的文档词语xij被记作文档序号-词表序号构成的矩阵。一行文文档序号代表一篇文章,对该文的每个词语需要记录每个词元出现的频次nki和文章的总词数ni。同理可知,同列的一个词语总计ntk在统计量上与nk相互依赖,因此规划并行CGS时,同行或同列的数据不能同时被选择。本文采用对角线法对数据块进行采样计算。在分隔数据时将行列划分成数量相同的正方形矩阵,沿对角线计算可以保证同一行或同一列不被同时选择。在一条对角线内数据可以并行计算,完成后就计算下一条对角线的数据。对角线之间的工作方式是串行计算。3.2.3过滤低频词为了显著减少LDA算法的计算时间,本文设计了一种对词表V中出现频率低于阈值的词汇停止抽样的方法。因为低频词的重要性较小,在阈值设置合理的理想化情况下,停止更新低频词对参数θ、φ的不利小于算法计算时间减少带来23 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用的优势。在每个计算节点p上,求出词元xij在节点每篇文档上出现的词频nij和文章Di中总词数ni,由此计算在所有文档上xij出现的词频∑inij和文档块中总词数∑in,并进行向量归一化。文本相似性的TF-IDF特征研究有以下假设:文章中非停用词的重要性水平与词频基本呈正相关。文档输入时中文分词工具已经删去了停用词,因此可以通过词频判断Vt的重要性。然后,在归一化词频向量上叠加合适的随机数序列,从而改变每个采样点的重要性水平,提高判断的容错率。随机数组采用[0,1]上的均匀分布生成概率向量,与词语重要性向量相乘。最后将得到的结果与阈值比较,如果大于阈值则认为该词作为高频对象更新主题分布θ、φ,否则就将它过滤。表3.2算法5-低频词过滤并行算法算法5低频词过滤并行算法INPUT:DpOUTPUT:xij’step1:initializenij,nistep2:forallDiinDpdocountnij,nia+=nijb+=nistep3:c=a/bR~U[0,1]ifa*R>TthendoCGSalgorithm3.2.4算法处理过程上文提到使用CGS的LDA并行算法主要难题是nkti、ni、nk、nk这四个统计量相互依赖,却要并行更新。详细地说,文章中一个单词依赖于它在另一篇文章中的ntk、nk采样结果,同一篇文章的后一个单词依赖于前一个单词的ni、nki采样结果,同一个主题的后一次采样依赖于前一次采样的结果nk。这就导致了并行算法设计不能简单地将语料库拆分,因为Mapper中的多个进程会同时对这四个统计量进行读写操作,破坏统计量的一致性。数据分块中可以采用对角线法规避它们的相互关系,在分布式系统计算时这个问题仍不能避免。但是对于超大规模的语料库,每一篇文档-主题多项分布θ、主题-词语多项分布φ几乎不变,所以可以近似当作常量。算法逻辑是①改进后的分词工具对文本进行分词,包括去掉符号和停用词。24 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用②从HDFS读入语料库D,使用数据分块技术将语料库D分成MxM个小块,传送到P个计算节点上,每个数据块记作Dp。这些节点除了记录K、α、β外,还共享两个全局参数θ、φ,即每个节点完整复制ntkk、nk、ni、ni这四个统计量拆分到各个节点上。③各节点上运行Mapper进行CGS过程,计算参数nk、ntkk、ni、ni对文档中的词语随机抽样出主题,放入到一个键值对中,key为xij的文档编号Di和词汇表中序号t构成的对(pair),value是当前词所属θˆφˆθˆφˆ的主题zij;达到迭代次数后计算局部多项分布参数i_p、k_p。④将i_p、k_p传送到Reducer汇总得到更新后的全局参数。通过汇总M个文档序号相同的小块的分布,可以得到文档Di的文档-主题分布θˆi。同理,汇总在M个词表序号相同的小块的分布,可以得到该词的主题-单词分布φˆk。这个过程被称为同步更新。⑤按新的参数θ、φ继续执行下一轮迭代,直至达到迭代次数。3.3算法实现表3.3是并行中文LDA算法的参数说明。表3.3并行中文LDA算法的参数说明变量名英文名性质特殊说明αhyperparameter狄利克雷分布/的参数βhyperparameter狄利克雷分布/的参数θtopic文章-主题多θi:文档D在主题上的多项分布distributionfor项分布θˆdocumenti_p:文档Dp在主题上的多项分布φterm主题-词语多φk:主题K在term上的多项分布probabilitiesfor项分布φˆtopick_p:文档Dp中主题K在term上的多项分布ztopicofeach每个词的主题zij:第i篇文档中第j个词的主题tokenxtoken词语,构成主Xij:第i篇文档的第j个词题的最小单位Ktopicnumber主题个数/Dducument文档个数Di:第i篇文档numberDp:节点p的文档Vtermnumberin词表中词的个Vt:词表中序号为t的词vocabulary数25 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用续表3.3并行中文LDA算法的参数说明Ntokennumber文档中的词元个ni:文档Di中所含词的总数indocument数nik:文档Di中主题k的词的个数nk:主题k中所含词的总数nkt:主题k中编号为t的词的个数算法的总输入、输出和过程设计见表3.4。表3.4算法6-并行LDA算法的总体设计算法6并行LDA算法的总体设计INPUT:D、V、K、α、βOUTPUT:θˆi、φˆk、zijProcedureMapperStartProcedureMapProcedureMapperFlushProcedureReducer由算法处理过程可知,基于Hadoop的中文LDA算法主要由五个部分组成。第一部分是中文文本预处理,包括去除符号、停用词和分词;第二部分,初始化采样参数tkθˆi、φˆk和计数变量nk、nk、ni、ni;第三,从HDFS读取语料库D和词表V,将Xij表示为同样大小的文档序号m-词表序号n的对,划分成MxM个数据块Dp,下发到各个计算节点;第四部分,各节点展开CGS;第五部分,汇θˆφˆ总MxM个i_p、k_p生成θˆi、φˆk,向各节点发送新参数。并行算法将LDA的每次塌缩Gibbs抽样建模为MapReduce的工作,Mapper执行第二、三、四部分,Reducer执行第五部分。下文将详细说明各部分的细节。文本预处理首先使用现有汉语词法分析系统ICTCLAS对中文文本分词。考虑如果分析对象为专业领域,或是文本数量较大,亦或是文本更新较快,则需要让分词算法能够在大规模数据集中动态更新分词词典。本文采用了PMIk算法,根据统计量PMIk衡量两个字符间的凝固程度,然后通过上下文的PMI计算,评估该组合的自由运用程度。动态更新分词词典的详细过程见算法4。使用更新后的分词词典重新对语料库D进行分词操作,在每篇文档Di中生成词元xij。参数初始化26 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用该部分和第三部分数据分块在MapperStart过程中执行。每个Map工作节点执行MapperStart时加载这个模型的本地备份。首先将计数矩阵ntk、nk、ni、nki和θˆi、φˆk初始化。然后,从HDFS读取语料库D和词表V,将xij表示为文档序号m-词表序号n的对(pair),和词元xij所属的主题zij的值(value)。数据分块在输入数据时用InputFormat将数据按文档和词表分为MxM块,由执行系统分配给每个工作Mapper。M的值可以通过实验调试。MapperStart阶段执行完毕。表3.5MapperStart过程框架ProcedureMapperStartINPUT:D、VOUTPUT:initializetkθˆi、φˆk,nk、nk、ni、niforalldocumentDiinDdoforallwordxijinDidom=Diindexn=Vtindexoutputcomputedatablockid:a=D/M,b=V/Mdistributeblocktoeachmapper塌缩Gibbs采样上一阶段执行结束之后自动唤醒Map程序,该阶段主要执行初始化采样参数,过滤低频词,CGS和计算参数四部分。第一次执行塌缩Gibbs采样时需初始θˆφˆ化计数变量,便于计算后面采样的参数i_p、k_p。这种方法是一种用于解决参数相互依赖问题的近似方法,通过将初始化数据复制到每一个Mapper上使节点间的参数不相互影响,仅在节点内部变化。在获取了初始化参数后,针对每一个xij计算它的重要性水平,过滤重要性水平低的词。计算方法为归一化的xij在文档Dp上出现的词频nij和文档中总词数ni之比,并叠加一个服从均匀分布的随机数序列,若该结果高于阈值则更新xij,反之则省略该词的更新。对过滤后的xijθˆφˆ更新相关的主题任务zij,然后输出i_p、k_p、zij到中间数据。27 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用表3.6Map过程框架ProcedureMapINPUT:、K、α、βθˆφˆOUTPUT:i_p、k_p、zij_pforeachmapperinparalleldocopyθˆi、φˆkfromHDFSforalldo//初始化采样参数Zij=k~Mult(1/K)ni+=1nk+=1nki+=1ntk+=1step3:fordocountnij,nia+=nijb+=nic=a/bR~U[0,1]ifa*R>Tthenni-=1nk-=1ni-=1nk-=1//将xij的当前主题k复制到tsampleZ‘ij=k~p(zi|z-i,x)//对xij并行抽样ni+=1nk+=1nki+=1ntk+=1//将xij的新主题zij复制到tcalculatetnˆktkp_ttnktknˆikθi_pkknik28 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用θˆφˆoutputi_p、k_p、zij对所有文件Dp进行Gibbs抽样结束之后,Map任务将会唤醒MapperFlush,输出模型的主题更新矩阵。zij矩阵的每一行代表了词表中的一个词语Vt包含的各种主题,将作为Mapper的输出键值对。表3.7MapperFlusht过程框架ProcedureMapperFlushforeachVtinVdozij_p+=zijoutput参数归总与更新在Reduce阶段进行数据归总更新。该阶段有两项任务:一是汇总每次Mapθˆφˆ输出的i_p、k_p,并复制到Map作为下次采样的参数,另一个是对汇总,复制到HDFS。这里设计分别由不同的Reducer完成。LDA之所以被称为主题模式,是因为它的输出都有主题矩阵相伴输出。这是它对比其他分类聚类算法的特殊之处。表3.8Reducer过程框架ProcedureReducerθˆφˆINPUT:OUTPUT:θˆi、φˆkforallreducerinparalleldoθˆaggregateθˆi=∑Mi_paggregateφˆk=∑Mˆkp_aggregateZij=∑zij_pwriteθˆi、φˆktoMap,ZijtoHDFS3.4本章小结本章是论文的核心,详细设计和实现了中文并行LDA算法。此部分先介绍29 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用了预处理的过程,主要包括去除特殊符号、标点符号,引入停用词表,采用某种分词模型对文本分词。中文文本向量化过程是预处理过程的重点和难点。LDA模型要求文本中词元有明确划分,英文文档天然的有空格号作为词语之间的间隔,中文文档则必须先进行中文分词操作。本文采用改进的汉语词法分析系统ICTCLAS作为分词工具。ICTCLAS包含七万多词汇,能基本满足分词需要,但对专业领域的支持力度不够。本文引入点互信息(Pointwisemutualinformation,PMIk)算法,方便在大规模数据集中动态更新分词词典,并给出了算法的并行框架。然后,本章论述了Hadoop作为平台构建LDA算法的并行程序的优势,并设计了MapperStart、Map、MapperFlush、Reducer四个过程实现算法。本文在数据分块、低频词过滤方面改进现有的基于Hadoop的并行LDA算法,设计了相应计算框架与实现过程。MapperStart阶段的任务是数据分块,本文设计将输入的文档D从外部和内部分块,复制到各数据节点,加快运行速度。为避免参数采集中的依赖性,采用对角线法分发数据。Map程序主要执行初始化采样参数,过滤低频词,塌缩吉布斯采样和计算参数四部分。过滤低频词是对词表V中出现频率低于阈值的词汇停止抽样的方法,在归一化词频向量上叠加合适的随机数序列,提高判断的容错率,过滤掉低于阈值的词语。MapperFlush阶段输出模型的主题更新矩阵。Reducer汇总并复制θ、φ、Zij等参数。30 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用4实验分析4.1实验环境及测试数据1、硬件环境实验使用了3台服务器构建了基于MapReduce计算框架的Hadoop集群,一台作为NameNode,其余两台作为DataNode,每台机器的配置见表4.1。表4.1Hadoop集群机器的配置CPU:Intel®Core™i3-380MProcessor2.53GHz内存:4G硬盘:100G操作系统:UbuntuKylyn®14.042、软件环境:表4.2Hadoop集群机器软件环境JDK版本:1.7.0Eclipse版本:3.8Hadoop版本:2.5.2Maven版本:3.3.9测试数据来源于复旦大学计算机信息与技术系国际数据库中心的中文语料库,语料主要是艺术、文学、教育、哲学、历史、能源、经济、交流、电脑、交通、环境、农业、法律、医药、军事、政治、体育等方面的新闻文本,从中选择艺术、文学、教育、哲学、历史、能源、经济、交流、电脑、交通等10个类别的文档共5539篇,构成测试数据集。数据大小为30M左右。4.2分析指标1、查准率、查全率常用的分类算法评价指标有查准率和查全率。查准率指返回分类结果中被正确分类的文本比例。AP=re(4.1)A+B31 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用A指被正确分类的文档数,B是被误归到该类的文档数。在分词算法中,A为正确分词词数,B为被错误分词的词数。A+B为该算法得到的总词数。查全率是指分类器判断属于该类的文档或文本占总体的比例。AR=ec(4.2)A+CA指被正确分类的文档数,C为被误归到其他类的文档数。在分词算法中,A为正确分词词数,A+C为最合适的分词算法计算出的词数。2、困惑度困惑度(perplexity)在自然语言处理中被广泛用于判断训练得到模型的质量,它是描述测试集符合该模型的最常用的概率方式。困惑度的计算方法如下:1DNiperplexityxmodel=exp(-log(|))ij(4.3)NDij1其中log(|xmodel=ijlog)(θφ)(4.4)p困惑度的值代表意义与词表的有效大小有关。例如,困惑度值为100表示从模型获得该词的概率相当于从100个词汇中随机挑选了每个单词。值越小表明该模型越适合该测试集。3、加速比加速比(speedup)指标用于衡量并行计算程序对比单机运行的程序提升的性能,它的计算公式是某一任务在单核处理器中运行所需的时间除以它在并行处理器上消耗的时间。SpTeedupT/onep(4.5)Tone是单核处理器下运行所需时间,Tp是在P个处理器中并行计算的运行时间。当加速比等于处理器数量时,此加速比称为线性加速比。若Tone是某种最佳算法在单核处理器环境中运行的时间,则此加速比被称为绝对加速比(absolutespeedup)。如果Tone是同一算法在单核处理器与并行环境下所需时间之商,则此加速比被称为相对加速比(relativespeedup)。本文计算的是LDA算法的相对加速比,即LDA算法在单核处理器中运行任务所需的时间除以它在并行处理器上消耗的时间,表示了并行程序对比单程序提升的计算性能。4.3过程及结果分析1、分词准确性32 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用采用汉语词法分析系统ICTCLAS自带的词表和停用词表对测试集进行分词。通过对50篇文章的分词结果人工复检,得到ICTCLAS分词准确率为91.89%,召回率为81.42%。对所有测试集采用PMIk改进后的分词算法,新增除去停用词的词汇1646个,将它加入到词表后总分词错误减少了2612个。抽样结果表示分词准确率上升到96.64%,召回率为85.38%。表4.3分词准确性对比词表总数抽样文档正确分类准确率召回率词语总数词语数ICTCLAS76431487194476891.89%81.42%分词算法PMIk改进78077490274738096.64%85.38%的分词算法变化+1646+308+2612+4.75%+3.96%2、词语过滤本文通过设置阈值控制更新的词元,以减少计算时间。阈值的设置需要通过实验来确定。阈值设置的越高,可更新的词元就越少,计算时间减少,但会导致模型质量的下降。此处用困惑度指标来衡量模型的质量。设置K=100,α=50/K,β=0.01,将改进分词算法输出的文档作为数据集D,获取Gibbs抽样迭代1000次后样本的nkti和nk,计算样本的困惑度及运行时间。图4.1表现了阈值变化对计算时间和模型困惑度的影响。图4.1阈值变化-计算时间/困惑度曲线由上图可知,阈值T设置为小于0.6时模型的困惑度轻微上升,无明显快速33 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用上升趋势,模型运行时间稳步下降。当阈值设置为高于0.6时,困惑度上升程度加剧,当阈值设为0.9时模型困惑度到达最大值,此时该模型泛化能力最弱。总结得到阈值的设置对困惑度的影响:起初阈值增大会引起困惑度轻微上升,到某个临界点后困惑度呈明显快速上升趋势;模型运行时间随阈值的增大——即过滤的词语增多,一直稳步下降。在之后的计算中,阈值T被设置为0.6。3、主题数设置与收敛速度通过困惑度指标评估主题数K的设置对模型的影响,确定最优主题数。K设置越小,主题划分的维度就越大,模型过于粗略;K设置越大,对文档的划分越精细,但会造成过大的计算矩阵,并且可能没有对应的细化含义。设计测试K在20到200之间依次递增时的困惑度,在拐点附近调整参数仔细选择,从而得到最优的主题数。同样,在固定主题个数K的条件下,计算算法达到收敛所需的迭代次数,即算法收敛速度,就可以找到运行时间最少的迭代次数。图4.2和图4.3表明了实验中主题数和迭代次数对困惑度的影响。图4.2主题数-困惑度曲线34 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用图4.3迭代次数-困惑度曲线测试集的主题数K在60处有明显拐点,低于60时困惑度随主题数增加而逐渐下降,高于60时随主题增多逐步上升,合适的主题数设置为60。迭代次数小于70次时,随迭代次数的增加算法的困惑度陡然下降,在70到100区间逐步下降并稳定在一个值上,当迭代次数等于100时可基本判定该算法收敛,所以设置迭代次数在100次左右。4、Mapper、Reducer数量与加速比Mapper、Reducer数量与算法运行时间有关。用加速比作为指标研究它们的最优设置。设定主题数K为60,最大迭代次数为100的并行LDA模型,起始Mapper数量为3个,Reducer数量为1个,然后增加Mapper数量到12个,计算Map任务和算法任务的加速比。最后在Mapper数量不变的条件下增加Reducer数量到6个,计算算法任务的加速比。Mapper数-加速比曲线图见4.4。35 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用图4.4Mapper数-加速比曲线Mapper数量与Map任务之间的关系基本成正比,但是算法加速比到某个值以后不随Mapper的增加而增加。这是因为算法运行时间是由计算时间和通信时间两部分组成,计算时间随着Mapper节点数量减少,但是通信时间也相应增加。考虑到Mapper产生的中间结果需在Reducer上等待所有Mapper执行完成再计算Reducer任务,即当Mapper的数量不能改变运行时间时,说明该节点并行计算节约的时间等于或者小于节点间的通信时间。此时通过增加Reducer数量能有效降低通讯时间。Reducer数量的增多使得Mapper输出的中间结果等待时间减少,中间结果能被马上执行,但是算法运行时间仍受限于耗时最长的Mapper任务。36 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用图4.5Reducer数-加速比曲线图4.5可以得知,增加Reducer数量的表现增加Reducer数量有效降低了通信时间,从而缩短了任务运行时间。设定合适的Mapper数量为8,Reducer数量为6。4.4实验结论与存在的问题这个算法是单机版本的GibbsSampling的近似实现,因为本节点上的nki和ntktk与其他机器的ni和nk存在依赖关系,如果按单机的计算方式会造成修改冲突,破坏统计量的一致性,所以采用近似实现的方法。尽管全局更新φ、θ尽力修复了这个问题,但实际上这一步已经产生了误差。这是本文的并行设计不能避免的问题。4.5本章小结本章主要介绍了实验的软硬件环境、测试集来源,从准确率、困惑度、加速比三个指标详细分析实验结果。PMIk改进后的分词算法新增词汇1646个,将它加入到词表后总分词错误减少了2612个。抽样结果表示分词准确率和召回率有所上升。阈值的设置对困惑度的影响是起初阈值增大会引起困惑度轻微上升,到某个临界点后困惑度呈明显快速上升趋势,而模型运行时间随阈值的增大稳步下降。测试集的主题数-困惑度曲线基本呈U型,K设置越小,主题划分的维度就越大,模型过于粗略;K设置越大,对文档的划分越精细,但会造成过大的计算37 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用矩阵,并且可能没有对应的细化含义。迭代次数-困惑度曲线呈L型,到足够次数时能稳定在某个值上。算法加速比随着Mapper的增多而增加,但由于通信时间也相应增加,使得加速比稳定在某个值左右。Reducer数量的增多使得Mapper输出的中间结果能被马上执行,但是算法运行时间仍受限于耗时最长的Mapper任务。38 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用5并行LDA算法在新生儿疾病挖掘中的应用5.1新生儿疾病及诊断特征新生儿在医院出生后需进行新生儿疾病筛查,标本采集过程为婴儿出生满72h后,取其足跟血滴于纸质血卡上,送至当地新生儿疾病筛查中心进行实验室筛查。目前在全国范围内免费的筛查项目有先天性甲状腺功能低下症(CH)、苯丙酮尿症(PKU)两项,其他可检项目有葡萄糖-6-磷酸脱氢酶缺乏症(G6PD)、先天性肾上腺皮质增生症(CAH)、高胱氨酸尿症、枫糖尿症、酪氨酸血症、瓜氨酸血症、精氨酸血症等。这些项目选择的病种均含以下三个特点:第一,发病率较高,据统计新生儿疾病总体发病率在1‰左右;第二,容易造成致死、致愚等严重后果;第三,早期干预治疗对患儿康复的效果较好。本文选择发病率相对较高的先天性甲状腺功能低下症、苯丙酮尿症、葡萄糖-6-磷酸脱氢酶缺乏症、先天性肾上腺皮质增生症四种作为研究对象。CH先天性甲状腺功能低下症,又称“呆小症”,其临床症状有:孕期超过42周,孕期胎动偏少,新生儿出生时体重偏重,排便延迟,黄疸消退延迟,多睡少动,体温偏低,呼吸较难,面容特殊等。发病原因可能是新生儿甲状腺发育和甲状腺素合成相关基因突变和孕妇孕期缺碘元素。检测方法为血清T4、T3、TSH测定,正常人T4范围在50-126ng/ml,T3范围在0.8-2.2ng/ml,TSH<10μIU/ml。PKU苯丙酮尿症的临床表现有新生儿生长迟缓,精神亢奋或不安多动,皮肤异常。它的测定方法是枯草杆菌生长抑制法,其原理是苯丙氨酸能促进已被抑制的枯草杆菌重新生长,正常人苯丙氨酸浓度为0.06~0.18mmol/L(1~3mg/dl),超过0.24mmol/L(4mg/dl)则应进行复查。G6PD葡萄糖-6-磷酸脱氢酶缺乏症,由于部分病例食用蚕豆后发生急性溶血性疾病,又称“蚕豆症”。发病原因主要是由于G-6-PD基因突变。主要检测方法有硝基四氮唑蓝试纸和G-6-PD活性测定法等。CAH先天性肾上腺皮质增生症的常见病因是皮质激素合成酶的先天缺陷。常见症状有雄激素过多引发的食欲差,呕吐,男性化,多睡少动和体重增加缓慢等。不同种类的CAH症状差别较大,基本检测方法为血清17-OHP基础值,需和其他指标综合参考。5.2影响因素分析对新生儿疾病的特征汇总发现,它们有若干共同特征,例如新生儿体重、睡眠情况等,但也有各疾病的特殊症状,例如CH的面容特殊特征。考虑到新生儿39 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用出生的健康情况与孕妇在孕期的状态相关,特征中还需增加孕妇方面的因素。目前对新生儿疾病的研究还没有出现较为完整的新生儿疾病临床检验因素,需从孕妇产检记录、新生儿出生记录等原始数据分析出特征作为因素分析。原始数据维度非常高,这种情况下可以使用并行LDA算法找到不同词语间的关系,用主题作为特征。将多项分布中若干个出现最频繁的主题作为新生儿疾病的发病潜在相关因素,依照“该影响因素对疾病的阳性率高,则对于疾病特征表示的重要性越大”的原理确定疾病影响因素[37]。5.3实验设计5.3.1数据来源及预处理本研究数据来源于丁香园医疗数据库ChinaPharmaData(http://db.dxy.cn)和浙江省某市级新生儿疾病筛查中心,研究对象包括2005-2015年参加新生儿疾病筛查的所有活产新生儿共193844例,其中患病新生儿1619例。清洗新生儿电子病历或产妇电子病历缺失的样本,将无缺失值的1539个病例作为分析对象。其中70%的文档作为模型运行的数据基础,其余30%作为得到参数的计算结果后用于推断的新文档。相应疾病数据信息见表5.1。表5.1新生儿疾病数据集信息疾病分类患儿人数检出率‰实际样本占比%CH5452.8145329.43PKU350.18332.14G6PD10235.28104467.84CAH160.0890.58总计16198.351539100数据预处理过程由文档整理、词表更新、中文分词三部分组成。首先,从数据库中导出患病新生儿的一条电子病历记录和对应产妇电子病历记录,合并成一个TXT文档,按“疾病类型标志+编号”的方式命名,如CH0001,PK0023等。文档内容为医院病历系统中会诊记录、生产记录、病程记录、出院记录、黄疸记录、新生儿窒息记录、早产儿记录等,数据类型包括文本和数字。其次,将丁香园医疗数据库中下载的医学术语词典通过分词系统接口加载到ICTCLAS算法中,使用PMIk改进后的ICTCLAS算法更新词表中的词语。运行完毕后,更新算法新增词语1265个,大致可分成两种情况:一种是新词未导入,例如“绕颈”、40 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用“给氧”、“前卤”、“黄染”、“发绀”等;另一种是错误断开,例如“外麻”、“单活胎”、“点状”、“小大”、“进行性”等。将新词表与停用词表比对,删去包含停用词的词语,结果被复制到分词算法和LDA算法的词表中。最后,再次使用ICTCLAS算法对样本文档集进行文本分词,输出处理后的文档。图5.1展示了部分获得的新词。图5.1词典更新算法的新词5.3.2参数设置按经验取α=50/K,β=0.01,主题数K等于疾病分类数4,其他待确定参数有过滤阈值T和迭代次数,设计两次实验确定参数的值。实验一:迭代次数为500次时,阈值取值为0到1之间,间隔为0.1的等差数列,计算不同阈值下模型的困惑度。41 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用图5.2阈值-困惑度曲线不过滤低频词时模型的困惑度最小,模型的困惑度水平随着阈值的增加而增大,且斜率也越来越大。当T在0到0.5之间时,模型的困惑度轻微上升,但是无明显快速上升趋势。当t大于0.5时困惑度快速上升。考虑到计算时间一直随着阈值的增大稳步下降,将阈值T的值设置为0.5。实验二:当K=4,T=0.5时,迭代次数的设置对困惑度及运算时间的影响。在100以内时,迭代次数以10递增,用来观察次数较少时困惑度的收敛速度,在超过100时迭代次数以100递增,最多迭代1000次。图5.3迭代次数-困惑度曲线42 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用开始计算时困惑度随迭代次数的增加而快速下降,在运行200次以后基本稳定在3700左右。算法的运行时间基本与迭代次数成正比。运行200次所需时间为237秒。综上所述,本文将实验的参数设置为K=4,T=0.5,迭代次数为200次。5.3.3算法运行结果算法运行后,得到的主要结果为*.phi、*.theta、*.twords、*.tassign文件,还有wordmap.txt。wordmap.txt为带序号的算法词表,算法运行时将词表中的词语按照出现顺序标号,然后以编号进行计算。*.theta储存了文档-主题多项分布,每行代表一个文档,每列代表某个主题,它是一个稀疏矩阵,矩阵中的数字代表了某个主题对文档的重要性,很多数据近似等于0说明对应主题在该文档中基本没有贡献。输出的theta最终矩阵为图5.4。图5.4文档-主题多项分布*.phi储存了主题-词语的多项分布,这个文件中每行代表的是一个主题,每列代表的是wordmap中单词的编号,矩阵中的每一个数字代表了对应词语对该主题的重要性。最终输出的phi文件为图5.5。43 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用图5.5主题-词语多项分布*.twords显示了每个主题包含的词语,选择显示主题重要性最大的若干个,并标出了每个词语的重要程度。图5.6描述每个主题的词语*.tassign它的每一行代表了一个文档,空格间隔开的“数字:数字”指的是文档中的每个词元,冒号之前的是这个词语在wordmap中的编号,冒号之后的是这个词语对应的主题编号。44 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用图5.7*.tassign矩阵5.4挖掘结果与分析5.4.1分类准确率将数据集中未使用的338个新文档保存到HDFS中,使用inf函数推断新文档的主题。下图是输出结果。通过比较文档的名称编号和被分类的主题类别,得到算法分类的查准率为83.44%,查全率为80.82%。实验表明该算法能够根据文本完成主题分类,分类准确率较高。图5.8预测新文档主题45 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用5.4.2主题的内容倾向在本次挖掘中,最重要的观察矩阵是主题-词语矩阵,保存在*.twords文档中。本实验将LDA模型的主题数K设置为4个,对应数据集中的四种疾病分类,这些主题下得到的单词可用于描述该主题。选择各主题下重要性水平最高的10个单词,结果见下表。在这些因素中可分析出新增的描述疾病影响因素的候选单词。例如G6PD主题下,描述性单词包括黄疸、律齐、孕周、胆红素、感染、反射、胎膜、引出、畸形、查体等。经过分析,黄疸、感染、畸形这三个因素可加入到G6PD疾病的候选影响因素,与已知的血气分析、血常规等疾病检查指标结合进行因素分析。CH主题下新增候选因素为黄疸,体重,皮肤,前囟,嗜睡,肌张力,体温。将皮肤、体重、嗜睡、早产儿、亢奋、前囟、肌张力确定为PKU疾病的候选因素。男性化、体重、腹泻、前囟、反应、宫内窘迫、拒食、剖宫产为CAH疾病的候选影响因素。表5.2四种主题中重要性水平前十的描述性词语主题1主题2主题3主题4单词1黄疸黄染查体男性化单词2律齐体重皮肤体重单词3孕周黄疸体重病程单词4胆红素皮肤异常腹泻单词5感染前囟律齐前囟单词6反射胆红素嗜睡过快单词7胎膜嗜睡早产儿反应单词8引出肌张力亢奋宫内窘迫单词9畸形蓝光前囟拒食单词10查体体温肌张力剖宫产对应分类G6PDCHPKUCAH表5.3四种疾病的候选影响因素分类候选影响因素G6PD黄疸、感染、畸形CH黄疸,体重,前囟,嗜睡,肌张力,体温PKU皮肤、体重、嗜睡、早产儿、亢奋、前囟、肌张力CAH男性化、体重、腹泻、宫内窘迫、拒食、剖宫产46 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用5.4.3单因素方差分析单因素方差分析法是统计分析中一种各个自变量的重要性进行测定的方法,它通过比较某个自变量的水平与因变量之间是否存在显著性影响,常用于降低因素的维度。在SPSS20.0中建立G6PD疾病与影响因素分析表。数据样本包括无缺失值的731个患病新生儿和相同数量的健康儿。利用SQL数据库技术,将新生儿基本信息表中的性别、G6PD家族病史、产妇年龄,查体表中体温T、脉搏P、呼吸R,病程表中提取感染、畸形,黄疸可用检查表中的总胆红素、TCB表示,检查表的CRP共12个字段信息导入到SPSS中,作为研究的自变量。各自变量取值如表5.4。表5.4G6PD各自变量取值自变量赋值情况说明新生儿性别男=1,女=2G6PD家族病史是=1,否=2产妇年龄20周岁以下=1,20~25=1,25~30=2,30~35=3,35周岁以上=4体温T腋温小于36℃=1,36-37=2,大于新生儿正常腋温为3637=3到37度脉搏P每分钟低于120次=1,120-140=2,新生儿出生时脉搏波大于140=3动较大,出生不久后稳定在120-140次每分钟呼吸R每分钟低于40次=1,40-45次=2,大新生儿出生后稳定在于45次=340-45次每分钟是否感染是=1,否=2是否畸形是=1,否=2总胆红素小于等于204μmol/L=1,大于出生后在3~5天左右204μmol/L=2达高峰TCB小于等于12=1,大于12=2皮胆红素值CRP小于等于10mg/L=1,大于10=2C-反应蛋白47 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用表5.5G6PD患儿信息统计表因素类别人数比例%患儿数患儿比例%新生儿性男74951.2346964.16别女71348.7726235.84G6PD家是26317.9917924.49族病史否119982.0155275.51产妇年龄20周岁以下191.3030.4120~25周岁45330.9825835.2925~30周岁70948.5035648.7030~35周岁24216.5510714.6435周岁以上392.6770.96体温T腋温小于36℃26418.0613117.92腋温36-37℃87259.6444961.42腋温大于37℃32622.3015120.66脉搏P低于120次/分20514.028611.76120-140次/分77953.2839153.49大于140次/分47832.6925434.74呼吸R低于40次/分1127.66648.7640-45次/分91862.7946563.61大于45次/分43229.5420227.63是否感染是45431.0520828.45否100868.9552371.55是否畸形是765.20466.29否138694.8068593.71总胆红素小于等于49533.86233.15204μmol/L大于96766.1470896.85204μmol/LTCB小于等于1292263.0613318.19mg/L大于12mg/L54036.9459881.81CRP小于等于105672.2360382.4910mg/L大于10mg/L40627.7712817.51接着,通过自变量的单因素方差分析,选出对G6PD患病率有显著影响的因素。单因素方差分析的过程包括提出假设,构造统计量和显著性检验。以新生儿48 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用性别因素为例,需要分析的是男女这两个类别与患病率之间是否有显著差异,原假设为这两个类别发病的均值相等。如果均值相等,则意味着性别对患病率没有影响,即男女之间的患病率没有显著差异。如果均值不全相等,则意味着性别对患病率有影响,男女之间的发病率有显著差异。H0:μ男=μ女H1:μ男≠μ女在SPSS中选择α=0.05进行显著性检验。显著性检验的假设是在一次实验中小概率事件是不可能发生的,α=0.05时,表明有5%的偶然性机率造成变量间的相互关联。统计量为F检验。如果F检验的伴随概率P小于显著性水平α,则拒绝H0,认为性别“男、女”在不同水平下总体均值有显著差异,反之则接受H0,认为性别变量没有显著差异。图5.9性别因素的显著性检验可以得到结论:新生儿性别对G6PD患病率有显著影响。将所有因素下两组数据进行F检验,其相伴概率P列表计算如表5.6。表5.6G6PD疾病因素的显著性检验自变量P-VALUE<0.05新生儿性别0.000是G6PD家族病史0.000是产妇年龄0.126否体温T0.955否脉搏P0.145否呼吸R0.255否是否感染0.212否是否畸形0.292否总胆红素0.000是TCB0.000是CRP0.000是由单因素方差分析的结果可知,在α等于0.05的前提下,与G6PD疾病的49 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用发病率相关的因素有新生儿性别、G6PD家族病史、总胆红素、TCB、CRP指标。对其他三种典型性的新生儿疾病进行单因素方差分析。在CH疾病的分析中,自变量的取值为新生儿性别、CH家族病史或孕妇甲亢、产妇年龄、体温、脉搏、呼吸、体重,是否有特殊面容,精神状态,总胆红素、TSH指标11项。PKU疾病的分析指标为新生儿性别、PKU家族病史、产妇年龄、体温、脉搏、呼吸、体重,是否早产儿,精神状态,是否特殊面容10种。CAH的指标为新生儿性别、CAH家族病史,产妇年龄、体温、脉搏、呼吸、体重,是否男性化,是否腹泻,是否拒食,是否剖宫产11种。三种疾病的各因素P-VALUE值如表5.7。表5.7其他三种新生儿疾病因素的显著性检验CH因素P-VALUEPKU因素P-VALUECAH因素P-VALUE新生儿性别0.157新生儿性0.453新生儿性0.307别别CH家族病0.000PKU家族0.000CAH家族0.000史或孕妇病史病史甲亢产妇年龄0.364产妇年龄0.230产妇年龄0.473体温T0.060体温T0.222体温T0.135脉搏P0.282脉搏P0.321脉搏P0.637呼吸R0.229呼吸R0.091呼吸R0.352体重0.041体重0.745体重0.000是否特殊0.000是否特殊0.110是否男性0.000面容面容化精神状态0.001精神状态0.000是否腹泻0.160总胆红素0.847是否早产0.616是否拒食0.000儿TSH0.000是否剖宫0.241产从表的分析结果可知,CH疾病的发病率相关因素有:CAH家族病史和孕妇甲亢、是否有特殊面容、精神状态、TSH指标。与PKU患病率相关的因素是PKU家族病史和新生儿精神状态。与CH疾病的发病率相关的因素是CAH家族病史、体重、是否男性化、是否拒食。5.5本章小结本章主要介绍了并行LDA算法在新生儿疾病挖掘中的应用。首先介绍四种典型的新生儿疾病及相关诊断特征,汇总发现新生儿疾病表现出某些共同特征,50 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用也存在着疾病的特殊症状。孕妇和新生儿的电子病历包括会诊记录、生产记录、病程记录、出院记录等,纬度高特征多,可以采用并行LDA方法找到不同词语间的关系并抽象出特征。接着确定算法的词表、迭代次数和过滤阈值设置,得到文档-主题多项分布矩阵*.theta,主题-词语的多项分布*.phi,还有显示了每个主题包含的词语文档*.twords。设计了运行结果的两种应用,第一种是用获得的*.theta、*.phi对新文档进行分类,得到分类的查准率为83.44%;另一种是利用*.twords文件找到描述主题的词语矩阵,在四个主题下选出重要性水平最高的10个单词,共40个候选特征。最后通过单因素方差分析筛选出对四种新生儿疾病患病率有显著影响的因素。51 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用6总结与展望6.1总结在互联网+背景下,医疗行业与互联网的联系日益紧密。越来越多的成年人在网上搜寻健康信息,医生也通过远程诊疗、慢性病远程监控、在线心理健康服务等项目提供互联网上的诊疗手段。电子病历作为互联网医疗的基础技术之一,是极具价值的数据资源。统计我国市级以上医院的病历信息系统,总数据规模估计在100TB以上,日新增数据的数量级为GB,数据类型非常多样,符合学术界对大数据的定义。目前对电子病历的数据挖掘实践多采用在单台计算机上运用常规的聚类分类算法和关联规则分析处理结构化数据,不能适应大数据背景下的数据挖掘这一情况。本文选择主题模型中的LDA模型作为并行化的目标。它的主要优点是通过无监督学习发现分类规则,能有效降维,支持文本、数字、视频、图片等多种数据类型,主要应用于自然语言处理、文本挖掘等领域。本文选择塌缩Gibbs采样方法作为LDA参数估计方法,并在数据分块、低频词过滤方面加以改进,在Hadoop平台下设计与实现了相应的并行计算框架。本文引入点互信息算法PMIk对ICTCLAS分词系统增加了词库的动态更新功能,使之更适用于专业领域的分词。考虑到在大规模数据集中使用,本文还给出了动态更新算法的并行框架。常用数据分块方法是将一个文档作为一个整体,在文档间划分。为加快算法运行速度,本文设计将输入的文档D从外部和内部分块,复制到各数据节点。为避免参数采集中的依赖性,采用对角线法分配数据。过滤低频词是在吉布斯采样时对词表中出现频率低于阈值的词汇停止抽样的方法。统计每一个单词在所有文档中的词频,在归一化词频向量上叠加合适的随机数序列,过滤掉低于阈值的词语。过滤低频词能减少计算矩阵的规模,有效加快算法收敛速度。本文采用复旦大学的中文语料库从准确率、困惑度、加速比三个指标分析实验结果,得到如下结论:改进后的分词算法能有效减少总分词错误,增加分词准确率和召回率;存在一个合适的主题数使模型的困惑度最小;合适的阈值设置对困惑度的影响较小,并能显著减少模型运行时间;迭代次数-困惑度曲线呈L型,到足够次数时能稳定在某个值上。以上结论验证了改进的并行LDA算法的优势。最后,本文以真实新生儿电子病历集为挖掘对象,采用并行LDA算法进行文档分类和特征发现。用获得多项分布矩阵对新文档进行分类,得到分类的准确率较高。利用描述疾病的词语矩阵,选出重要性水平高单词作为候选特征,通过52 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用单因素方差分析检验对新生儿疾病患病率有显著影响的因素。最终得到了若干结论。6.2展望本文基于并行LDA模型对其进行了数据分块和低频词过滤方面的改进,能有效减少算法运行时间,但仍有改进的余地:数据分块中难以保证各节点的负载均衡,可能出现某节点分配的数据过大,成为计算瓶颈的情况;某些词虽然出现频率很低,但非常重要,过滤算法虽然采用了叠加一个均匀分布的方法,仍不能保证保留这些词。在电子病历挖掘方面,LDA算法得到的准确率仍有提高的空间,输出的描述主题的词语矩阵可以尽量多的包含候选特征,获得新生儿疾病发病率的显著性因素。随着电子病例的标准化和联网趋势,对电子病历大数据的分析已逐渐引起关注,各种疾病的病因,病程,诊疗方法都将作为挖掘的对象。对可穿戴设备和相应APP上的健康信息也是未来研究的热点之一。53 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用参考文献[1]新华社.第十二届全国人民代表大会第三次会议关于政府工作报告的决议[EB/OL].http://politics.people.com.cn/n/2015/0315/c70731-26695847.html,2015-03-15.[2]ManyikaJ,ChuiM,BrownB,etal.Bigdata:Thenextfrontierforinnovation,competition,andproductivity[EB/OL].http://www.citeulike.org/group/18242/article/9341321.2011.[3]BleiDM,NgAY&JordanMI.Latentdirichletallocation[J].JournalofmachineLearningresearch,2003,3(Jan):993-1022.[4]SteyversM&GriffithsT.Probabilistictopicmodels[J].Handbookoflatentsemanticanalysis,2007,427(7):424-440.[5]ZengJ.Atopicmodelingtoolboxusingbeliefpropagation[J].JournalofMachineLearningResearch,2012,13(Jul):2233-2236.[6]HoffmanM,BachFR&BleiDM.Onlinelearningforlatentdirichletallocation[C]//advancesinneuralinformationprocessingsystems.2010:856-864.[7]NewmanD,AsuncionA,SmythP,etal.Distributedalgorithmsfortopicmodels[J].JournalofMachineLearningResearch,2009,10(Aug):1801-1828.[8]ZhaiK,Boyd-GraberJ&AsadiN.UsingvariationalinferenceandMapReducetoscaletopicmodeling[J].arXivpreprintarXiv:1107.3765,2011.[9]NewmanD,SmythP,WellingM,etal.Distributedinferenceforlatentdirichletallocation[C]//Advancesinneuralinformationprocessingsystems.2007:1081-1088.[10]AsuncionA,WellingM,SmythP,etal.Onsmoothingandinferencefortopicmodels[C]//ProceedingsoftheTwenty-FifthConferenceonUncertaintyinArtificialIntelligence.AUAIPress,2009:27-34.[11]WangY,BaiH,StantonM,etal.Plda:Parallellatentdirichletallocationforlarge-scaleapplications[C]//InternationalConferenceonAlgorithmicApplicationsinManagement.SpringerBerlinHeidelberg,2009:301-314.[12]LiuZ,ZhangY,ChangEY,etal.Plda+:Parallellatentdirichletallocationwithdataplacementandpipelineprocessing[J].ACMTransactionsonIntelligentSystemsandTechnology(TIST),2011,2(3):26.[13]ChangEY.SpeedingUpLatentDirichletallocationwithParallelizationandPipelineStrategies[M]//FoundationsofLarge-ScaleMultimediaInformationManagementandRetrieval.SpringerBerlinHeidelberg,2011:259-286.[14]ShahYA,AhmadN,NaeemM.IdentificationofcriticalbandsinDCTdomain54 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用representationforfingerprintrecognition[C]//AutomationandComputing(ICAC),201218thInternationalConferenceon.IEEE,2012:1-4.[15]邱卓林.并行LDA算法的研究与实现[D].北京邮电大学,2015.[16]GaoY,SunZ,WangY,etal.AcomparativestudyonparallelLDAalgorithmsinmapreduceframework[C]//Pacific-AsiaConferenceonKnowledgeDiscoveryandDataMining.SpringerInternationalPublishing,2015:675-689.[17]陆建红,张文献.关联规则在肿瘤诊断中的应用[J].计算机工程,2003,29(12):8-9.[18]张高峰,王志萍,林大枫,等.早产相关危险因素的调查分析[J].中国优生与遗传杂志,2008,16(5):70-71.[19]丁卫平,施佺,管致锦等.基于频繁概念格的电子病历关联规则挖掘研究[J].微电子学与计算机,2008,25(8):125-128.[20]曾勇.关联规则在脑科电子病历挖掘中的应用[J].医学信息学杂志,2014(10):55-58.[21]曾逸笛,朱文雄,文毅,等.基于关联规则的中医治疗老年性痴呆用药规律研究[J].中国中医药信息杂志,2015,22(2):31-33.[22]WuL.HealthRapidAssessmentBasedonFuzzyRoughSetReductionAlgorithm[J].HansJournalofDataMining,2015,5(02):32.[23]饶静.心率变异性分析方法的研究和应用[D].华南理工大学,2015.[24]吴生根,陈武,欧剑鸣等.福建省2008—2013年手足口病重症病例危险因素的分类决策树分析[J].中国卫生统计,2015,32(6):1040-1041.[25]王冬冬.基于openEHR的临床医疗数据仓库构建方法研究与实践[D].浙江工业大学,2015.[26]鞠美芝.中文医学术语资源的自动构建方法研究及应用[D].浙江大学,2016.[27]CrainSP,ZhouK,YangSH,etal.Dimensionalityreductionandtopicmodeling:Fromlatentsemanticindexingtolatentdirichletallocationandbeyond[M]//Miningtextdata.SpringerUS,2012:129-161.[28]李锋刚,梁钰.基于LDA—WSVM模型的文本分类研究[J].计算机应用研究,2015,32(1):21-25.[29]吕超镇,姬东鸿,吴飞飞.基于LDA特征扩展的短文本分类[J].计算机工程与应用,2015,51(4):123-127.[30]HeinrichG.Parameterestimationfortextanalysis[J].UniversityofLeipzig,Tech.Rep,2008.[31]高阳,严建峰,刘晓升.朴素并行LDA[J].计算机科学,2015,42(6):243-246.[32]YaoL,MimnoD&McCallumA.Efficientmethodsfortopicmodelinferenceon55 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用streamingdocumentcollections[C]//Proceedingsofthe15thACMSIGKDDinternationalconferenceonKnowledgediscoveryanddatamining.ACM,2009:937-946.[33]HoffmanM,BachFR&BleiDM.Onlinelearningforlatentdirichletallocation[C]//advancesinneuralinformationprocessingsystems.2010:856-864.[34]董露露.基于特征选择及LDA模型的中文文本分类研究与实现[D].合肥:安徽大学,2014.[35]杜丽萍,李晓戈,于根,等.基于互信息改进算法的新词发现对中文分词系统改进[J].北京大学学报(自然科学版),2016,52(1):35-40.[36]YanJ,LiuZQ,GaoY,etal.Communication-efficientparallelbeliefpropagationforlatentDirichletallocation(2012)[J].arXivpreprintarXiv:1206.2190.[37]陆维嘉.辅助慢性呼吸道疾病诊疗的电子病历系统与数据挖掘研究[D].上海大学,2015.[38]SunJ&ReddyCK.Bigdataanalyticsforhealthcare[C]//Proceedingsofthe19thACMSIGKDDinternationalconferenceonKnowledgediscoveryanddatamining.ACM,2013:1525-1525.[39]ColakC,ColakMC,ErmisN,etal.Predictionofcholesterollevelinpatientswithmyocardialinfarctionbasedonmedicaldataminingmethods[J].KuwaitJournalofScience,2016,43(3).[40]IlayarajaM&MeyyappanT.MiningmedicaldatatoidentifyfrequentdiseasesusingApriorialgorithm[C]//PatternRecognition,InformaticsandMobileEngineering(PRIME),2013InternationalConferenceon.IEEE,2013:194-199.[41]ZhangB,PengB&QiuJ.ParallelLDAThroughSynchronizedCommunicationOptimizations[EB/OL].http://ipcc.soic.iu.edu/LDA_optimization_paper.pdf.2015.[42]YangS,WeltonCE&YangG.Highlyscalablememory-efficientparallelLDAinashared-nothingMPPdatabase:U.S.Patent9,317,809[P].2016-4-19.[43]ZhangB,PengB&QiuJ.HighPerformanceLDAthroughCollectiveModelCommunicationOptimization[J].ProcediaComputerScience,2016,80:86-97.[44]SeitaD,ChenH&CannyJ.FastParallelSAMEGibbsSamplingonGeneralDiscreteBayesianNetworks[J].arXivpreprintarXiv:1511.06416,2015.[45]HuangCR&XueNW.Modelingwordconceptswithoutconvention:linguisticandcomputationalissuesinChinesewordidentification[EB/OL].http://ira.lib.polyu.edu.hk/handle/10397/35342.2015.[46]XuJ&SunX.Dependency-basedgatedrecursiveneuralnetworkforChinesewordsegmentation[C]//The54thAnnualMeetingoftheAssociationforComputational56 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用Linguistics.2016:567.[47]LiMF,LinWC,ChouTL,etal.TheroleoforthographicneighborhoodsizeeffectsinChinesewordrecognition[J].Journalofpsycholinguisticresearch,2015,44(3):219-236.[48]FanX,ChenS,QianJ,etal.IncidenceandInterrelatedFactorsinPatientsWithCongenitalHypothyroidismasDetectedbyNewbornScreeninginGuangxi,China[J].GlobalPediatricHealth,2015,2:2333794X14567193.[49]LiangJ.AnalysisandexperiencefromnewborndiseasescreeninginLongnancityofGansuProvince[J].GlobalJournalofPublicHealth,2016,3(1):14.[50]HuangS,XuY,LiuX,etal.MolecularnewbornscreeningoffourgeneticdiseasesinGuizhouProvinceofSouthChina[J].Gene,2016,591(1):119-122.57 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用致谢浙江工业大学依山傍水,风景秀丽,是我学习和生活了六年的母校。在母校老师的谆谆教诲下,我的通识课和专业课水平有了很大的提高,从一个高考以后上略知天文下略知地理的同学成长为一个对某方面有比较深入研究的研究生。现在我即将从大学毕业,进入工作这个副本,回顾大学生涯有许许多多难忘的记忆和需要感谢的老师同学。首先是论文写作期间,我的导师叶枫老师给了我很大的支持。老师从文献阅读开始指导我的论文,并在百忙中抽出时间与我们讨论主题、结构、内容,耐心指导论文修改,鞭策拖延症的我,终于使我按时完成了论文。学长王冬冬、学姐饶飘雪也指点了论文写作的方法和技巧,使我受益匪浅。同门的张丽平、杨雯雯、李恭平同学与我一起度过了研究生美好的时光。我还要感谢本科的导师蔡建湖老师,您的专业水平、论文写作水平和师德都非常令学生难忘。我的室友王怡娟、张梅美、王利琴在寝室中营造了浓厚的学术氛围,当然还有一起吐槽的欢乐气氛,让我有一种家的温暖。管理科学与工程专业的13人是一个大家庭,我们在体育馆下谈心,一起去苏州旅游、去西塘调研,留下了很多珍贵的合照。最后也是最重要的,我要感谢我的妈妈许建萍女士和爸爸丁海洋先生。我的论文写作地点主要是家里,除了仔细照顾赶工写论文的我和关注我的心理状态,当我选择困难时妈妈还与我讨论论文写哪些部分,虽然我写了什么她并不很懂。论文中的500字需要写1个小时,致谢的500字只用了10分钟,因为这就是我内心想说的话。祝老师和妈妈身体健康,祝我的同学们前程似锦!58 浙江工业大学硕士论文基于Hadoop的中文并行LDA算法及在电子病历挖掘中的应用攻读学位期间参加的研究工作和获得的学术成果攻读学位期间参加的科研项目无攻读学位期间发表的学术成果[1]丁晓琳,丁锋.我国旅游在线预订市场逆向定价模式发展的影响因素分析[J].现代营销2016(9).59

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭