CN102708285B - 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 - Google Patents
基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 Download PDFInfo
- Publication number
- CN102708285B CN102708285B CN201210122900.4A CN201210122900A CN102708285B CN 102708285 B CN102708285 B CN 102708285B CN 201210122900 A CN201210122900 A CN 201210122900A CN 102708285 B CN102708285 B CN 102708285B
- Authority
- CN
- China
- Prior art keywords
- medicine
- value
- node
- chinese medicine
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法包括如下步骤:1)组网阶段:a)预处理生成中药数据集,格式化为文本数据;b)将初始文本数据部署至Hadoop平台;c)并行化组建中药药物网络TCM;d)结束。2)挖掘阶段:a)获取步骤1-c处理生成的中药药物网络文本文件;b)将药物网络文本文件部署至Hadoop平台;c)实施并行化PageRank算法发现核心药物节点;d)结束。本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法建立了中药药物复杂网络模型,利用并行化技术提高了组网以及PageRank算法的可扩展性和运行速度,并且能有效挖掘复方中的关键核心药物节点,研究中药配伍规律。
Description
技术领域
本发明涉及一种中药复杂网络建模,以及在该模型上采用并行化PageRank算法挖掘中药核心药物的技术。
背景技术
数据挖掘技术可以在大量数据下发现潜在的、有用的知识,是计算机人工智能的重要组成部分,利用数据挖掘技术可以实现对中药复方数据的智能分析,发现潜在中药配伍规律。常用的数据挖掘模型都是基于事务项的,即把复方看成由多种药物组成的事务并储存在事务数据库中。
随着中药复方数据规模的增加以及对更深层次挖掘的要求,传统的基于事务项模型的中药关联规则、分类和聚类等算法已经难以满足中药数据挖掘的需求。而将复杂网络分析以及并行计算引入中药数据挖掘中可以弥补传统数据挖掘的缺陷,并能直观展现药物间关系,加速系统响应速度,是有效的创新和尝试。
复杂网络分析如今已经涉及到社会关系、经济、交通、生命科学等多个领域,能够展现节点关系拓扑结构、模拟信息传播以及挖掘节点隐藏知识。利用中药复方数据构建中药复杂网络打破了传统中药数据挖掘基于事务项的建模模型,可以深入研究中药配伍规律。其中利用复杂网络中的PageRank算法可以挖掘中药的核心药物,其主要包括两方面的应用:
1)哪些药物是治疗特定病症最常见且最关键的药物,比如治疗哮喘、消渴症等给定病症,哪些中药材用得多并且对组方来说最为关键。
2)哪些药物是在大量中药组方中常用到的关键药物,可以大量随机选取复方数据库中的一些复方作为初始数据,研究其中关键的药物有哪些。在此与第一种应用不同的是这里并没有给定症状,而仅仅是随机选择的大量复方数据。
PageRank算法是一种数据挖掘的方法,传统的PageRank算法不能在分布式并行环境下运行,随着数据的激增,普通的算法不再适用于大规模数据。为了提高算法的可扩展性以及可伸缩性,以便能在大量复方数据下快速高效运行算法,需要用到并行计算MapReduce编程模式。该编程模式主要包括Map和Reduce两个过程,体现了分治和合并的思想。实现MapReduce编程模式的系统框架有Google集群和Hadoop集群等。
发明内容
本发明目的是:解决实现中药复杂网络建模,并在该模型上采用并行化PageRank算法,以快速发现中药核心药物。
为解决上述问题,本发明技术方案是:基于复杂网络模型并行化PageRank算法的核心药物挖掘方法,包括如下步骤:
1)组网阶段:
a)预处理生成中药复方数据集,格式化为文本数据;所说的预处理为抽取中药复方数据中所有复方的药物组成;每个中药复方均格式化为文本数据;
b)将初始文本数据部署至Hadoop平台,即开发分布式并行程序的平台;所说的部
署为将步骤a生成的初始文本数据上传至Hadoop的分布式文件系统(HDFS);
c)并行化组建中药药物网络TCM;
具体过程如下:
1)为每个中药复方(一行文本数据)设定一个唯一复方标识ID;
2)建立从药物到复方标识ID之间的倒排索引;
3)为每个药物设定唯一药物标识id,并包含在复方中出现的频次;
4)再次建立倒排索引,还原中药复方的文本数据;
5)分布式并行程序的每个Map函数读取一行文本数据,解析出中药复方的药物节点信息;
6)两两组合原复方中的药物,以按字典序小的药物ID加上频次作为Key,另一个作为Value,以键值对<Key,Value>的形式经过shuffle & & sort(Hadoop平台自带的两个步骤,主要对Key值进行排序整理等)发送到Reduce函数;
7)开发分布式并行程序的Reduce函数接收相同Key下组成的[Value]数组(即Map函数传递的所有在该Key下的Value,结合上文来说即药物的ID与其出现频次),按照下式计算两两药物间度量,将大于设定阈值的药对写入文件并保存至HDFS中
其中|FA∩FB|表示药物A、B一起组方的次数,min{|FA|,|FB|}表示药物A、B中组方次数较少的药物的出现次数,而SCAB表示药物A、B共现次数与最少出现药物次数的比率;
8)读取6)中生成的药对文件,格式化为邻接表形式保存中药药物网络拓扑结构;
9)结束
d)结束。
2)挖掘阶段:
a)获取步骤1-c处理生成的中药药物网络文本文件;
b)将药物网络文本文件部署至Hadoop平台;步骤2-b中所说的部署为将步骤2-a生成的药物网络文本文件上传至Hadoop的分布式文件系统;
c)实施并行化PageRank算法发现核心药物节点;
步骤具体过程如下:
1)每个Map函数读取一行文本,存入Hadoop自定义数据类型Text的变量Value中;
2)解析Value中数据,保存到临时数组Tmp[];
3)传递节点信息(在分布式环境下维持整个网络结构)
4)从Tmp[]中解析出节点PageRankCentrality值(节点PageRank值的大小)和节点的邻居节点,分别保存在变量P和临时链表AdjList中
5)令变量i为0
6)如果i小于临时链表长度AdiList.length,则发送(前者为药物节点ID,后者为均分的PageRankCentrality值)并执行7),否则执行8)
7)i自增1,执行6)
8)Map函数过程结束,Hadoop分布式文件系统执行shuffle & & sort
9)Reduce函数解析[Value]数组,分别用数据结构AdjpageRank保存节点结构,临时链表ls保存每个传递过来的PageRankCentrality值
10)令j=0,p=0
11)如果j小于临时链表长度ls.length,则|p=p+ls.get(j)并执行12),否则执行13)
12)j自增1,执行11)
13) (按照式2计算节点PageRankCentrality值作为本次迭代最新的值)
14)保存结果至HDFS中
15)结束
d)结束。
本发明的有益效果是:本发明基于复杂网络模型并行化PageRank算法的核心药物挖掘方法建立了中药药物复杂网络模型,利用并行化技术提高了组网以及PageRank算法的可扩展性和运行速度,并且能有效挖掘复方中的关键核心药物节点,研究中药配伍规律。
附图说明:
图1为核心药物挖掘操作流程图。
图2为本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法的流程图。
图3为生成中药复杂网络TCM的流程图。
图4为利用TCM网络用并行化PageRank算法(某一次迭代)挖掘核心药物的流程图。
具体实施方式
下面结合附图对本发明进行详细说明。
如图1所示,核心药物挖掘通过方剂数据库查询、不规则文本数据提取等获取中药复方数据,经数据规范化、格式化等预处理生成文本数据,然后在Hadoop平台上并行化组建中药药物复杂网络,最后在该网络上运行并行化PageRank算法以发现核心药物。
中药复方数据组网与行化PageRank算法挖掘核心药物是该发明的主要步骤,本发明的思路就是通过复杂网络建模和并行化PageRank算法有效挖掘核心药物,同时提高算法可扩展性和运行速度。
本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法的流程图如图2所示。
步骤0为本发明的核心药物挖掘方法的起始状态;
在组网阶段(步骤1-3),步骤1是从数据库或者其他不规则文本数据中获取初始的中药复方组网数据,并且格式化为文本数据以便上传至Hadoop平台的HDFS;
步骤2是利用MapReduce编程模式在初始数据集中并行组建中药药物TCM网络,包括两次倒排索引以及两两组建药对联合键值对;
步骤3是把生成的中药药物网络保存至Hadoop平台的HDFS。
在挖掘阶段(步骤4-5),步骤4在步骤3所生成的TCM网络中运行并行化PageRank算法;
步骤5是将挖掘出的结果保存至HDFS。
步骤6是本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法的结束步骤。
图3是对图2中步骤2的详细描述。。
步骤20为起始步骤。
步骤21是为每个中药复方设定一个唯一的ID值,从标号1开始。
步骤22是建立药物到复方ID的倒排索引。
步骤23是为每个药物设定id,从标号1%N,其中N表示该药物在复方中出现的频次,即倒排索引的长度。
步骤24对倒排索引进行还原,即再次实行倒排索引算法,每行复方读入此次任务的某个Map函数中。
步骤25判断该Map函数中的复方所含药物还能否两两组建联合键值,可以即执行26,否则执行27(注意此时应该是说该次任务的Map过程结束)。
步骤26为组建联合键值<Key,Value>(其中Key小于Value)。
步骤27为Reduce函数中利用式1计算SCAB的值
其中|FA∩FB|表示药物A、B一起组方的次数,min{|FA|,|FB|}表示药物A、B中组方次数较少的药物的出现次数,而SCAB表示药物A、B共现次数与最少出现药物次数的比率。
步骤28为将结果保存至HDFS。
步骤29为图3的结束。
图4是对图2中步骤4中一次迭代的详细描述。。
步骤40为起始步骤。
步骤41为读取邻接表的一行数据,保存在变量Value中。
步骤42为解析Value变量,用临时数组Tmp[0]保存节点id,Tmp[1]保存邻接链表。AdjList以及PageRankCentrality值P。
步骤43为发送节点结构以在分布式环境下保存节点结构。
步骤44令变量i=0。
步骤45判断如果i小于AdjList.length,则并执行步骤46,否则执行步骤48。
步骤46表示发送
步骤47表示i目增1。
步骤48为Hadoop平台的Shuffle和Sort过程。
步骤49为Reduce接收到<Key,[Value]>。
步骤50为Reduce解析[Value]数组,分别用数据结构AdjpageRank保存节点结构,临时链表ls保存每个传递过来的PageRankCentrality值。
步骤51令变量j=0,p=0。
步骤52判断如果j小于ls.length,则p=p+ls.get(j)并执行步骤53,否则执行步骤54。
步骤53表示p累加临时链表ls的数值,j自增1。
步骤55表示用式2计算新的PageRankCentrality值
其中|G|是指药物节点总数,α是随机跳转因子(设置为0到1之间),L(n)是连接药物节点n的邻居节点,C(m)是药物节点m的邻居节点个数。
步骤55为更新AdjpageRank中的值为p。
步骤56表示保存新的AdjpageRank。
步骤57为图4的结束步骤。
注:PageRank算法有多次迭代,迭代的终点为网络中90%以上的节点P值稳定不变。
Claims (1)
1.基于复杂网络模型并行化PageRank算法的核心药物挖掘方法,其特征是包括如下步骤:
(1)组网阶段:
a)预处理生成中药复方数据集,格式化为文本数据;所说的预处理为抽取中药复方数据中所有复方的药物组成;每个中药复方均格式化为文本数据;
b)将初始文本数据部署至Hadoop平台,即开发分布式并行程序的平台;所说的部署为将步骤a)生成的初始文本数据上传至Hadoop的分布式文件系统(HDFS);
c)并行化组建中药药物网络TCM;
步骤c)的具体过程如下:
1)为每个中药复方即一行文本数据,设定一个唯一复方标识ID;
2)建立从药物到复方标识ID之间的倒排索引;
3)为每个药物设定唯一药物标识id,并加上在复方中出现的频次;
4)再次建立倒排索引,还原中药复方的文本数据;
5)分布式并行程序的每个Map函数读取一行文本数据,解析出中药复方的药物节点信息;
6)两两组合原复方中的药物,以按字典序小的药物标识id加上频次作为Key,另一个作为Value,以键值对<Key,Value>的形式经过shuffle&&sort发送到Reduce函数;以上为Hadoop平台自带的两个步骤,对Key值进行排序整理;
7)开发分布式并行程序的Reduce函数接收相同Key下组成的[Value]数组,即Map函数传递的所有在该Key下的Value,按照下式计算两两药物间度量,将大于设定阈值的药对写入文件并保存至HDFS中;
其中|FA∩FB|表示药物A、B一起组方的次数,min{|FA|,|FB|}表示药物A、B中组方次数较少的药物的出现次数,而SCAB表示药物A、B共现次数与最少出现药物次数的比率;
8)读取7)中生成的药对文件即药物网络文本文件,格式化为邻接表形式保存中药药物网络拓扑结构;
9)结束;
(2)挖掘阶段:
a)获取步骤(1)-c)处理生成的中药药物网络文本文件;
b)将药物网络文本文件部署至Hadoop平台;将步骤(2)-a)生成的药物网络文本文件上传至Hadoop的分布式文件系统;
c)实施并行化PageRank算法发现核心药物节点;
步骤(2)-c)具体过程如下:
1)每个Map函数读取一行文本,存入Hadoop自定义数据类型Text的变量Value中;
2)解析Value中数据,保存到临时数组Tmp[];
3)传递节点信息、在分布式环境下维持整个网络结构;
4)从Tmp[]中解析出节点PageRankCentrality值即节点PageRank值的大小和节点的邻居节点,分别保存在变量p和临时链表AdjList中;
5)令变量i为0
6)如果i小于临时链表长度AdjList.length,则发送 前者为药物节点id,后者为均分的PageRankCentrality值,并执行7),否则执行8);
7)i自增1,执行6);
8)Map函数过程结束,Hadoop分布式文件系统执行shuffle&&sort;
9)Reduce函数解析[Value]数组,分别用数据结构AdjpageRank保存节点结构,临时链表ls保存每个传递过来的PageRankCentrality值;
10)令j=0,p=0;
11)如果j小于临时链表长度ls.length,则p=p+ls.get(j)并执行12),否则执行13);
12)表示p累加临时链表ls的数值,j自增1,执行11);
13) 按照下式计算节点PageRankCentrality值作为本次迭代最新的值;
其中|G|是指药物节点总数,α是随机跳转因子、设置为0到1之间,L(n)是连接药物节点n的邻居节点,C(m)是药物节点m的邻居节点个数;更新AdjpageRank中的值为p,保存新的AdjpageRank;
14)保存结果至HDFS中;
15)结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210122900.4A CN102708285B (zh) | 2012-04-24 | 2012-04-24 | 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210122900.4A CN102708285B (zh) | 2012-04-24 | 2012-04-24 | 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102708285A CN102708285A (zh) | 2012-10-03 |
CN102708285B true CN102708285B (zh) | 2015-05-13 |
Family
ID=46901041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210122900.4A Expired - Fee Related CN102708285B (zh) | 2012-04-24 | 2012-04-24 | 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102708285B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353901B (zh) * | 2013-08-01 | 2016-10-05 | 百度在线网络技术(北京)有限公司 | 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统 |
CN103530402A (zh) * | 2013-10-23 | 2014-01-22 | 北京航空航天大学 | 一种基于改进的PageRank的微博关键用户识别方法 |
CN104765762B (zh) * | 2015-01-23 | 2018-02-23 | 上海中医药大学 | 自动挖掘配伍关系系统及其方法 |
CN104933320B (zh) * | 2015-07-08 | 2018-01-02 | 北京科技大学 | 一种基于加权PageRank算法的方剂药物属性定量方法及系统 |
CN109460449B (zh) * | 2018-09-06 | 2020-05-12 | 城云科技(中国)有限公司 | 并行化数据分析方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149751A (zh) * | 2007-10-29 | 2008-03-26 | 浙江大学 | 用于分析中医方剂药物组配规律的泛化关联规则挖掘方法 |
CN101615222A (zh) * | 2008-06-23 | 2009-12-30 | 中国医学科学院放射医学研究所 | 一种基于中药有效成分群的中药组方设计技术 |
CN101989297A (zh) * | 2009-07-30 | 2011-03-23 | 陈越 | 用于计算机上的疾病基因相关药物发掘系统 |
CN102663108A (zh) * | 2012-04-16 | 2012-09-12 | 南京大学 | 基于复杂网络模型并行化标签传播算法的药物社团发现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317593B2 (en) * | 2007-10-05 | 2016-04-19 | Fujitsu Limited | Modeling topics using statistical distributions |
-
2012
- 2012-04-24 CN CN201210122900.4A patent/CN102708285B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149751A (zh) * | 2007-10-29 | 2008-03-26 | 浙江大学 | 用于分析中医方剂药物组配规律的泛化关联规则挖掘方法 |
CN101615222A (zh) * | 2008-06-23 | 2009-12-30 | 中国医学科学院放射医学研究所 | 一种基于中药有效成分群的中药组方设计技术 |
CN101989297A (zh) * | 2009-07-30 | 2011-03-23 | 陈越 | 用于计算机上的疾病基因相关药物发掘系统 |
CN102663108A (zh) * | 2012-04-16 | 2012-09-12 | 南京大学 | 基于复杂网络模型并行化标签传播算法的药物社团发现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102708285A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102768670B (zh) | 基于节点属性标签传播的网页聚类方法 | |
Perez et al. | Ringo: Interactive graph analytics on big-memory machines | |
CN102708285B (zh) | 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 | |
CN104615687B (zh) | 一种面向知识库更新的实体细粒度分类方法与系统 | |
Suen et al. | Nifty: a system for large scale information flow tracking and clustering | |
CN103473224B (zh) | 基于问题求解过程的习题语义化方法 | |
CN105706078A (zh) | 实体集合的自动定义 | |
KR101617696B1 (ko) | 데이터 정규표현식의 마이닝 방법 및 장치 | |
CN109308497A (zh) | 一种基于多标签网络的多向量表示学习方法 | |
CN103942335A (zh) | 一种针对网页结构变化的不间断爬虫系统构建方法 | |
CN103106616A (zh) | 基于资源整合与信息传播特征的社区发现及演化方法 | |
CN102663108B (zh) | 基于复杂网络模型并行化标签传播算法的药物社团发现方法 | |
CN105302803A (zh) | 一种产品bom差异分析与同步更新方法 | |
CN102968431B (zh) | 一种基于依存树的中文实体关系挖掘的控制装置 | |
CN107239492A (zh) | Xml文档转换为对象、对象转换为xml文档的方法及装置 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN103116574A (zh) | 从自然语言文本挖掘领域过程本体的方法 | |
Apiletti et al. | Pampa-HD: A parallel MapReduce-based frequent pattern miner for high-dimensional data | |
CN106844445B (zh) | 基于语义的资源描述框架rdf图划分方法 | |
Jin et al. | Robust detection of communities with multi-semantics in large attributed networks | |
Yasuda et al. | Fast compilation of st paths on a graph for counting and enumeration | |
EP3336719A1 (en) | Future scenario generation device and method, and computer program | |
Consoli et al. | A quartet method based on variable neighborhood search for biomedical literature extraction and clustering | |
Zhu et al. | A direct mining approach to efficient constrained graph pattern discovery | |
Wang et al. | Lnetwork: an efficient and effective method for constructing phylogenetic networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150513 Termination date: 20170424 |