基于复杂网络模型并行化标签传播算法的药物社团发现方法

文档序号:6368098阅读:203来源:国知局
专利名称:基于复杂网络模型并行化标签传播算法的药物社团发现方法
技术领域
本发明涉及一种中药复杂网络建模方法,以及在该中药药物复杂网络TCM上采用并行标签传播算法挖掘中药药物社団的技木。
背景技术
利用数据挖掘技术可以智能分析中药复方数据,发现潜在中药配伍规律。常用的中药数据挖掘中有ー类应用是药物的聚类算法,其基于事务项模型(把复方看成由多种药物组成的事务并储存在事务数据库中)对相似药物进行聚合以发现频繁组方的药物组。传统基于事务项模型的中药药物聚类算法很难挖掘间接组方配伍的药物,而且往往忽略对生僻药物的处理,不利于深入研究每种药物的配伍规律知识。本发明尝试用复杂网络模型建模中药药物网络,在药物网络中应用社团发现算法挖掘药性相似的药物组。在复杂网络分析中对网络社团结构的研究已经有很长的历史,其涉及到计算机科学、社会学、生命科学等各个领域。分析和掲示网络中的社团结构,对于了解网络结构与分析网络特性都是非常重要的。在中药复杂网络中进行社团发现与传统基于事务项模型的药物聚类分析的目的很相近,都是将频繁在一起组方的药物聚合在同一类别中,并挖掘出药性相似的药物以便研究中药配伍规律。基于复杂网络模型构建中药药物复杂网络这一思路打破了传统中药数据挖掘都基于事务项的建模模型的惯例,并且采用复杂网络分析中的标签传播算法可以深入挖掘中药药物社団,发现药性相似、社団内部相对频繁组方的药物组,克服了传统基于事务项聚类算法不能发现间接配伍以及忽略生僻药物的缺陷。近期以来,随着中药复方数据的激増,非并行的算法已不再适用于较大规模中药数据的社団发现。

发明内容
本发明所要解决的技术问题是实现中药复杂网络建摸,并在该模型上采用并行标签传播算法,以快速有效地发现药物社団。为解决上述问题,本发明的基于复杂网络模型并行化标签传播算法的药物社团发现方法包括如下步骤I)组网阶段a预处理以生成中药数据集,格式化为初始文本数据;b将初始文本数据部署至Hadoop平台;c并行化组建中药药物网络,即TCM网络,该网络以药物为节点,将SCab大于给定阈值的节点连边;d 结束。2)挖掘阶段
a获取步骤I)-c处理生成的中药药物网络文本文件;b将上述TCM网络文本文件部署至Hadoop平台;c实施并行化标签传播算法,即采用MapReduce框架并行化的标签传播算法,利用节点邻居信息迭代更新自身标签(即所属社団号),以发现药物社団;d)结束。步骤I)-a中所说的预处理为抽取中药复方数据中所有复方的药物组成。步骤l)-b中所说的部署为将步骤l)_a生成的初始文本数据上传至Hadoop平台 的分布式文件系统(HDFS)。进一歩,步骤I) -C的具体过程如下I)为每个中药复方,即ー行文本数据,设定ー个唯一标识ID2)建立从药物到复方标识ID之间的倒排索引;3)为每个药物设定唯一药物标识id,其中包含该药物在复方中出现的频次;4)对倒排索引进行还原,即再次实行倒排索引算法,每行复方读入此次任务的某个Map函数中,还原中药复方文本数据;5)每个Map函数读取一行文本,解析出药物节点信息;6)判断该Map函数中的复方所含药物还能否两两组建联合键值〈Key,Value),是则执行7),否则执行8);7)组建联合键值〈Key,Value〉;8)〈Key, Value〉经过 shuff le&&sort 发送到 Reduce 中,Reduce 接收相同 Key 下组成的[Value]数组,按照下式计算两两药物间度量,将大于设定阈值的药对写入文件并保存至HDFS中SCab = —\FaC^Fb\
min{ \ Fa\,\Fb\)其中|FA n FbI表示药物A、B—起组方的次数,min{ I Fa I,I Fb |}表示药物A、B中组方次数较少的药物的出现次数,而SCab表示药物A、B共现次数与最少出现药物次数的比率;9)读取6)中生成的药对文件,即药物复杂网络的边集,格式化为邻接表形式保存中药网络拓扑结构;10)结束。进ー步,步骤2)-C中利用邻居节点所属标签更新自身标签(一般为频次最大的标签,如果最大频次标签有多个则采取一定的随机选择)。并行化标签传播算法总过程是基于迭代式的,迭代终止条件是各节点标签基本稳定,例如大于90%的节点标签不发生变化等。在此给出迭代步骤中的某次迭代算法流程,即其中并行化标签传播算法的一次迭代过程具体如下I)为每个药物节点设置唯一的初始标签id ;2)每个Map函数从HDFS读取一行文本,存入Value变量中;3)解析Value变量中的数据,用临时数组Tmp [O]保存节点id,Tmp [I]保存邻接表 AdjList 及 Label ;4)发送节点数据结构;
5)判断Label中是否只含有ー个标签,即首次迭代,执行6),否则执行7);6)令变量V =标签I ;7)令变量V =标签1&&标签2,其中标签I表示t-Ι次迭代的标签和标签2表示t-2次迭代的标签;8)令变量 i = 0;9)判断i是否小于AdjList. length,是则执行步骤10,否则执行步骤1210)发送〈AdjList. get (i),V>ll)i 自增 1,执行 8);12)Map 过程结束,Hadoop 执行 shuffle&&sort ; 13)Reduce解析[Value]数组,分别用数据结构AdjLabelPA保存节点结构,临时链表Is1, Is2分别保存每个传递过来的し、I2的值(如果有两个标签,否则Is2为空)14)根据下式找出新的节点标签;Cx(0=/(C^-iX-.Cx^-i)^*C^-2),..,w*c^-2))15)其中表示t-Ι次迭代Xk节点的标签,f函数返回的是邻居节点传递过来频次最多的标记;16)更新AdjLabel中的t_l标签和t标签分别为Cx(t_l)与Cx (t);17)保存此次迭代的结果至分布式文件系统HDFS中;18)结束。本发明的基于复杂网络模型并行化标签传播算法的药物社团发现方法建立了中药药物复杂网络模型,利用并行化技术提高了组网以及标签传播算法的可扩展性和运行速度,并且能有效挖掘复方中药性相似的药物社团,帮助研究中药配伍规律。


图I为药物社团发现操作流程图。图2为本发明的基于复杂网络模型并行化标签传播算法的药物社团发现方法的流程图。图3为生成中药药物(TCM)网络的流程图。图4为在中药药物(TCM)网络上利用标签传播算法(某一次迭代)挖掘药物社団的流程图。
具体实施例方式为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。如图I所示,核心药物挖掘通过方剂数据库查询、不规则文本数据提取等获取中药复方数据,经数据规范化、格式化等预处理生成文本数据,然后在Hadoop平台上并行化组建中药药物复杂网络,最后在该网络上运行并行化标签传播算法以挖掘药物社団。中药复方数据组网与行化标签传播算法挖掘药物社団是该发明的主要步骤,本发明的思路就是通过复杂网络建模和并行化标签传播算法有效挖掘药物社団,同时提高算法可扩展性和运行速度。本发明的基于复杂网络模型并行化标签传播算法的药物社团发现方法的流程图如图2所示。步骤O为本发明的药物社团发现方法的起始状态;在组网阶段(步骤1-3),步骤I是从数据库或者其他不规则文本数据中获取初始的中药复方组网数据,并且格式化为文本数据以便上传至Hadoop平台的分布式文件系统(HDFS);步骤2是在初始数据集中并行组建中药药物(TCM)网络,包括两次倒排索引以及两两组建药对联合键值对;步骤3是把生成的TCM网络保存至Hadoop平台的HDFS。在挖掘阶段(步骤4-5),步骤4,在步骤3所生成的TCM网络中运行并行化标签传 播算法; 步骤5是将挖掘出的结果保存至HDFS ;步骤6是本发明的基于复杂网络模型并行化标签传播算法的药物社团发现方法的结束步骤。图3是对图2中步骤2的详细描述。步骤20为起始步骤;步骤21是为每个中药复方设定一个唯一的ID值,从标号I开始;步骤22是建立药物到复方ID的倒排索引;步骤23是为每个药物设定id,从标号I % N,其中N表示该药物在复方中出现的频次,即倒排索引的长度;步骤24对倒排索引进行还原,即再次实行倒排索引算法,每行复方读入此次任务的某个Map函数中;步骤25判断该Map函数中的复方所含药物还能否两两组建联合键值,可以即执行26,否则执行27 (注意此时应该是说该次任务的Map过程结束);步骤26为组建联合键值〈Key, Value〉(其中Key小于Value);步骤27为Reduce函数中利用式I计算SCab的值
权利要求
1.一种基于复杂网络模型并行化标签传播算法的药物社团发现方法,其特征在于,包括如下步骤 1)组网阶段 a预处理以生成中药数据集,格式化为初始文本数据; b将初始文本数据部署至Hadoop平台; c并行化组建中药药物网络,该网络以药物为节点,将SCab大于给定阈值的节点连边; d结束。
2)挖掘阶段 a获取步骤l)-c处理生成的中药药物网络文本文件; b将上述中药药物网络文本文件部署至Hadoop平台; c实施并行化标签传播算法,即采用MapReduce框架并行化的标签传播算法,利用节点邻居信息迭代更新自身标签,以发现药物社団;d)结束。
2.根据权利要求I所述的基于复杂网络模型并行化标签传播算法的药物社团发现方法,其特征在于,其中步骤l)_a中所说的预处理为抽取中药复方数据中所有复方的药物组成。
3.根据权利要求I所述的基于复杂网络模型并行化标签传播算法的药物社团发现方法,其特征在于,其中步骤l)_b中所说的部署为将步骤l)_a生成的初始文本数据上传至Hadoop平台的分布式文件系统。
4.根据权利要求I所述的基于复杂网络模型并行化标签传播算法的药物社团发现方法,其特征在于,其中步骤l)-c的具体过程如下 1)为每个中药复方,即ー行文本数据,设定ー个唯一标识ID 2)建立从药物到复方标识ID之间的倒排索引; 3)为每个药物设定唯一药物标识id,其中包含该药物在复方中出现的频次; 4)对倒排索引进行还原,即再次实行倒排索引算法,每行复方读入此次任务的某个Map函数中,还原中药复方文本数据; 5)每个Map函数读取一行文本,解析出药物节点信息; 6)判断该Map函数中的复方所含药物还能否两两组建联合键值〈Key,Value〉,是则执行7),否则执行8); 7)组建联合键值〈Key,Value); 8)〈Key,Value〉经过shuff le&&sort发送到Reduce中,Reduce接收相同Key下组成的[Value]数组,按照下式计算两两药物间度量,将大于设定阈值的药对写入文件并保存至分布式文件系统中
5.根据权利要求I所述的基于复杂网络模型并行化标签传播算法的药物社团发现方法,其特征在于,步骤2)-c中并行化标签传播算法总过程是基于迭代式的,迭代终止条件是各节点标签基本稳定,其中并行化标签传播算法的一次迭代过程具体如下 1)为每个药物节点设置唯一的初始标签id; 2)每个Map函数从HDFS读取一行文本,存入Value变量中; 3)解析Value变量中的数据,用临时数组Tmp
保存节点id,Tmp[I]保存邻接表AdjList 及 Label ; 4)发送节点数据结构; 5)判断Label中是否只含有ー个标签,即首次迭代,执行6),否则执行7); 6)令变量V=标签I ; 7)令变量V=标签1&&标签2,其中标签I表示t-1次迭代的标签和标签2表示t-2次迭代的标签; 8)令变量i= 0 ; 9)判断i是否小于AdjList.length,是则执行步骤10,否则执行步骤1210)发送〈AdjList.get (i),V> 11)i自增1,执行8); 12)Map过程结束,Hadoop 执行 shuffle&&sort ; 13)Reduce解析[Value]数组,分别用数据结构AdjLabelPA保存节点结构,临时链表Is1, Is2分别保存每个传递过来的し、I2的值(如果有两个标签,否则Is2为空) 14)根据下式找出新的节点标签; 15)其中GxtOf-1)表示t-l次迭代Xk节点的标签,f函数返回的是邻居节点传递过来频次最多的标记; 16)更新AdjLabel中的t-l标签和t标签分别为Cx(t-l)与Cx⑴; 17)保存此次迭代的结果至分布式文件系统中; 18)结束。
全文摘要
本发明提供一种基于复杂网络模型并行化标签传播算法的药物社团发现方法,包括如下步骤组网阶段a)预处理生成中药数据集,格式化为文本数据;b)将初始文本数据部署至Hadoop平台;c)并行化组建中药药物(Traditional Chinese Medicine简称TCM)网络;d)结束。挖掘阶段a)获取步骤1-c处理生成的TCM网络文本文件;b)将TCM网络文本文件部署至Hadoop平台;c)实施并行化标签传播算法发现药物社团;d)结束。本发明的基于复杂网络模型并行化标签传播算法的药物社团发现方法建立了TCM网络模型,利用并行化技术提高了组网以及标签传播算法的可扩展性和运行速度,并且能有效挖掘复方中药性相似的药物社团,帮助研究中药配伍规律。
文档编号G06F17/30GK102663108SQ20121011117
公开日2012年9月12日 申请日期2012年4月16日 优先权日2012年4月16日
发明者刘正, 孙道平, 杨鸿超, 王崇骏, 谢俊元 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1