发明名称 一种分布式Web文档聚类方法
摘要 本申请提出一个分布式Web文档聚类系统DCS(Distributed Clustering System),该系统采用的主要方法称之为DACWD(Distributed Approach to Clustering Web Documents)。DACWD方法的核心是一个基于信息瓶颈理论的文档聚类方法DCIB(Document Clustering using Information Bottleneck)。DACWD的局部聚类和全局聚类过程迭代使用了DCIB方法。
申请公布号 CN102110172B 申请公布日期 2013.04.10
申请号 CN201110083090.1 申请日期 2011.03.31
申请人 河南理工大学 发明人 刘永利
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 代理人
主权项 1.一种分布式Web文档聚类方法,该方法包括多个局部数据节点服务器和一个中心数据节点服务器,每个局部数据节点服务器负责存储Web文档及完成局部聚类,中心数据节点服务器负责完成全局聚类,其特征在于:该方法采取以下步骤进行聚类:①设在一个分布式的环境中,Web文档分布在n个数据节点N<sub>1</sub>,N<sub>2</sub>,…,N<sub>n</sub>上,各个节点上的文档数目分别为s<sub>1</sub>,s<sub>2</sub>,…,s<sub>n</sub>,节点N<sub>i</sub>上的文档表示为<img file="FSB00001010037100011.GIF" wi="263" he="78" />假设文档的特征词集合为{t<sub>1</sub>,t<sub>2</sub>,…,t<sub>m</sub>},其中n、i和m为自然数,且m为特征词个数,1≤i≤n;②针对每个节点N<sub>i</sub>,使用下述方法进行局部聚类:1)得到节点N<sub>i</sub>上各文档<img file="FSB00001010037100012.GIF" wi="241" he="67" />的向量表示形式,根据文档中特征词的分布情况,文档<img file="FSB00001010037100013.GIF" wi="46" he="66" />的向量形式表示为<maths num="0001"><![CDATA[<math><mrow><msubsup><mover><mi>d</mi><mo>&RightArrow;</mo></mover><mi>j</mi><mi>i</mi></msubsup><mo>=</mo><mo>{</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>1</mn></msub><mo>|</mo><msubsup><mi>d</mi><mi>j</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>2</mn></msub><mo>|</mo><msubsup><mi>d</mi><mi>j</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>m</mi></msub><mo>|</mo><msubsup><mi>d</mi><mi>j</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>其中,1≤j≤s<sub>i</sub>,<img file="FSB00001010037100015.GIF" wi="179" he="66" />表示文档<img file="FSB00001010037100016.GIF" wi="47" he="66" />中特征词t<sub>a</sub>出现的条件概率,1≤a≤m,其计算方法为<img file="FSB00001010037100017.GIF" wi="494" he="210" /><img file="FSB00001010037100018.GIF" wi="177" he="65" />表示文档<img file="FSB00001010037100019.GIF" wi="45" he="65" />中特征词t<sub>a</sub>的出现次数;2)将节点N<sub>i</sub>上的文档<img file="FSB000010100371000110.GIF" wi="240" he="67" />表示为一个集合<img file="FSB000010100371000111.GIF" wi="411" he="78" />从中随机取一个文档表示为<img file="FSB000010100371000112.GIF" wi="64" he="74" />将其初始化为一个簇,记为<img file="FSB000010100371000113.GIF" wi="181" he="81" />存放在簇集合C<sup>i</sup>中,即<img file="FSB000010100371000114.GIF" wi="189" he="81" />同时将<img file="FSB000010100371000115.GIF" wi="42" he="60" />从X<sup>i</sup>中删除,簇<img file="FSB000010100371000116.GIF" wi="39" he="60" />的向量形式表示为:<maths num="0002"><![CDATA[<math><mrow><msubsup><mover><mi>c</mi><mo>&RightArrow;</mo></mover><mn>0</mn><mi>i</mi></msubsup><mo>=</mo><mo>{</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>1</mn></msub><mo>|</mo><msubsup><mi>c</mi><mn>0</mn><mi>i</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>2</mn></msub><mo>|</mo><msubsup><mi>c</mi><mn>0</mn><mi>i</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>m</mi></msub><mo>|</mo><msubsup><mi>c</mi><mn>0</mn><mi>i</mi></msubsup><mo>)</mo></mrow><mo>}</mo><mo>=</mo><mo>{</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>1</mn></msub><mo>|</mo><msubsup><mi>x</mi><mn>0</mn><mi>i</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>2</mn></msub><mo>|</mo><msubsup><mi>x</mi><mn>0</mn><mi>i</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>m</mi></msub><mo>|</mo><msubsup><mi>x</mi><mn>0</mn><mi>i</mi></msubsup><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>其中,<img file="FSB000010100371000118.GIF" wi="173" he="61" />表示簇<img file="FSB000010100371000119.GIF" wi="38" he="61" />中特征词t<sub>a</sub>出现的条件概率,<img file="FSB000010100371000120.GIF" wi="174" he="60" />(1≤a≤m)表示文档<img file="FSB000010100371000121.GIF" wi="42" he="61" />中特征词t<sub>a</sub>出现的条件概率;3)从X<sup>i</sup>中取一个文档x<sup>i</sup>,并将其初始化为一个簇<img file="FSB000010100371000122.GIF" wi="222" he="81" />从C<sup>i</sup>中寻找簇c<sup>i</sup>,使得<img file="FSB000010100371000123.GIF" wi="536" he="90" />其中<img file="FSB000010100371000124.GIF" wi="180" he="65" />表示合并<img file="FSB000010100371000125.GIF" wi="39" he="60" />和<img file="FSB000010100371000126.GIF" wi="44" he="66" />两个簇时产生的共有信息损失,其计算方法如下:<maths num="0003"><![CDATA[<math><mrow><mi>D</mi><mrow><mo>(</mo><msubsup><mi>c</mi><mi>e</mi><mi>i</mi></msubsup><mo>,</mo><msubsup><mi>c</mi><mi>f</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>u</mi><mo>=</mo><mi>e</mi><mo>,</mo><mi>f</mi></mrow></munder><mfrac><mrow><mo>|</mo><msubsup><mi>c</mi><mi>u</mi><mi>i</mi></msubsup><mo>|</mo></mrow><mrow><mo>|</mo><msup><mi>X</mi><mi>i</mi></msup><mo>|</mo></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>a</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msubsup><mi>c</mi><mi>u</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mi>log</mi><mfrac><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msubsup><mi>c</mi><mi>u</mi><mi>i</mi></msubsup><mo>)</mo></mrow></mrow><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msubsup><mi>c</mi><mi>e</mi><mi>i</mi></msubsup><mo>&cup;</mo><msubsup><mi>c</mi><mi>f</mi><mi>i</mi></msubsup><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>其中,|X<sup>i</sup>|表示集合X<sup>i</sup>中文档的个数,<img file="FSB000010100371000128.GIF" wi="272" he="70" />表示合并<img file="FSB000010100371000129.GIF" wi="38" he="65" />和<img file="FSB000010100371000130.GIF" wi="45" he="71" />两个簇所得到的新簇中特征词t<sub>a</sub>出现的条件概率,<maths num="0004"><![CDATA[<math><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msubsup><mi>c</mi><mi>e</mi><mi>i</mi></msubsup><mo>&cup;</mo><msubsup><mi>c</mi><mi>f</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>|</mo><msubsup><mi>c</mi><mi>e</mi><mi>i</mi></msubsup><mo>|</mo></mrow><mrow><mo>|</mo><msubsup><mi>c</mi><mi>e</mi><mi>i</mi></msubsup><mo>&cup;</mo><msubsup><mi>c</mi><mi>f</mi><mi>i</mi></msubsup><mo>|</mo></mrow></mfrac><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msubsup><mi>c</mi><mi>e</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mo>|</mo><msubsup><mi>c</mi><mi>f</mi><mi>i</mi></msubsup><mo>|</mo></mrow><mrow><mo>|</mo><msubsup><mi>c</mi><mi>e</mi><mi>i</mi></msubsup><mo>&cup;</mo><msubsup><mi>c</mi><mi>f</mi><mi>i</mi></msubsup><mo>|</mo></mrow></mfrac><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msubsup><mi>c</mi><mi>f</mi><mi>i</mi></msubsup><mo>)</mo></mrow></mrow></math>]]></maths>得到c<sup>i</sup>之后,若<img file="FSB00001010037100022.GIF" wi="399" he="72" />将<img file="FSB00001010037100023.GIF" wi="172" he="60" />的值加入到最小值列表L<sup>i</sup>中,将x<sup>i</sup>添加到簇c<sup>i</sup>中;否则,为x<sup>i</sup>新建一个簇保存,并将新建的簇添加到集合C<sup>i</sup>中,其中α<sup>i</sup>为调节系数,aver<sup>i</sup>为最小值列表L<sup>i</sup>中所有最小值的算术平均,L<sup>i</sup>在初始时为空;4)若X<sup>i</sup>中还有文档未处理,则重复步骤3);5)对上述聚类结果进行调整,依次从C<sup>i</sup>的每个簇中取每个文档x构成一个新的簇{x},根据共有信息损失最小原则,将{x}合并到C<sup>i</sup>包含的一个簇中,从而完成对聚类结果的一次调整,将上述针对调整过程循环sum次后,聚类过程完成,其中sum为一个自然数;③综合各节点的聚类结果,使用DCIB方法进行全局聚类1)节点N<sub>i</sub>上的文档经局部聚类后产生的簇集合表示为<img file="FSB00001010037100024.GIF" wi="385" he="79" />k<sub>i</sub>表示节点N<sub>i</sub>上的聚类结果所包含的簇数目,由局部聚类的过程可知,簇<img file="FSB00001010037100025.GIF" wi="39" he="60" />的向量表示形式为<img file="FSB00001010037100026.GIF" wi="759" he="73" />其中<img file="FSB00001010037100027.GIF" wi="171" he="61" />表示簇<img file="FSB00001010037100028.GIF" wi="40" he="60" />中特征词t<sub>a</sub>出现的条件概率,v为一个自然数,1≤v≤k<sub>i</sub>;2)将所有节点上聚类得到的簇集合进行合并,得到所有簇组成的集合C,即<maths num="0005"><![CDATA[<math><mrow><mi>C</mi><mo>=</mo><msup><mi>C</mi><mn>1</mn></msup><mo>&cup;</mo><msup><mi>C</mi><mn>2</mn></msup><mo>&cup;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cup;</mo><msup><mi>C</mi><mi>n</mi></msup><mo>=</mo><mo>{</mo><msubsup><mi>c</mi><mn>1</mn><mn>1</mn></msubsup><mo>,</mo><msubsup><mi>c</mi><mn>2</mn><mn>1</mn></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>c</mi><msub><mi>k</mi><mn>1</mn></msub><mn>1</mn></msubsup><mo>,</mo><msubsup><mi>c</mi><mn>1</mn><mn>2</mn></msubsup><mo>,</mo><msubsup><mi>c</mi><mn>2</mn><mn>2</mn></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>c</mi><msub><mi>k</mi><mn>2</mn></msub><mn>2</mn></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msubsup><mi>c</mi><mn>1</mn><mi>n</mi></msubsup><mo>,</mo><msubsup><mi>c</mi><mn>2</mn><mi>n</mi></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>c</mi><msub><mi>k</mi><mi>n</mi></msub><mi>n</mi></msubsup><mo>}</mo><mo>=</mo><mo>{</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>c</mi><mn>2</mn></msub><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msub><mi>c</mi><mi>r</mi></msub><mo>}</mo></mrow></math>]]></maths>其中,<img file="FSB000010100371000210.GIF" wi="191" he="133" />从集合C中随机取一个簇表示为c<sub>0</sub>,存放在簇集合C′中,即C′={{c<sub>0</sub>}},其中集合C′的元素为簇,这些簇由局部聚类阶段产生的簇组成,即C′={{c<sub>1</sub>,c<sub>2</sub>},{c<sub>3</sub>,c<sub>4</sub>},{c<sub>5</sub>,c<sub>6</sub>}}),同时将c<sub>0</sub>从C中删除;簇c<sub>0</sub>的向量形式表示为:<maths num="0006"><![CDATA[<math><mrow><msub><mover><mi>c</mi><mo>&RightArrow;</mo></mover><mn>0</mn></msub><mo>=</mo><mo>{</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>1</mn></msub><mo>|</mo><msub><mi>c</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mn>2</mn></msub><mo>|</mo><msub><mi>c</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>m</mi></msub><mo>|</mo><msub><mi>c</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>其中,p(t<sub>a</sub>|c<sub>0</sub>)表示簇c<sub>0</sub>中特征词t<sub>a</sub>出现的条件概率;3)从集合C中取一个簇记为c<sub>e</sub>,从C′中寻找簇c,使得<img file="FSB000010100371000212.GIF" wi="513" he="84" />其中D(c<sub>e</sub>,c<sub>f</sub>)表示合并c<sub>e</sub>和c<sub>f</sub>两个簇时产生的共有信息损失,其计算方法如下:<maths num="0007"><![CDATA[<math><mrow><mi>D</mi><mrow><mo>(</mo><msub><mi>c</mi><mi>e</mi></msub><mo>,</mo><msub><mi>c</mi><mi>f</mi></msub><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>u</mi><mo>=</mo><mi>e</mi><mo>,</mo><mi>f</mi></mrow></munder><mfrac><mrow><mo>|</mo><msub><mi>c</mi><mi>u</mi></msub><mo>|</mo></mrow><mi>r</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>a</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msub><mi>c</mi><mi>u</mi></msub><mo>)</mo></mrow><mi>log</mi><mfrac><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msub><mi>c</mi><mi>u</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msub><mi>c</mi><mi>e</mi></msub><mo>&cup;</mo><msub><mi>c</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>其中,|c<sub>u</sub>|表示簇c<sub>u</sub>所包含簇的个数,<img file="FSB00001010037100031.GIF" wi="275" he="59" />表示合并c<sub>e</sub>和c<sub>f</sub>两个簇所得到的新簇中特征词t<sub>a</sub>出现的条件概率,<maths num="0008"><![CDATA[<math><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msub><mi>c</mi><mi>e</mi></msub><mo>&cup;</mo><msub><mi>c</mi><mi>f</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>|</mo><msub><mi>c</mi><mi>e</mi></msub><mo>|</mo></mrow><mrow><mo>|</mo><msub><mi>c</mi><mi>e</mi></msub><mo>&cup;</mo><msub><mi>c</mi><mi>f</mi></msub><mo>|</mo></mrow></mfrac><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msub><mi>c</mi><mi>e</mi></msub><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mo>|</mo><msub><mi>c</mi><mi>f</mi></msub><mo>|</mo></mrow><mrow><mo>|</mo><msub><mi>c</mi><mi>e</mi></msub><mo>&cup;</mo><msub><mi>c</mi><mi>f</mi></msub><mo>|</mo></mrow></mfrac><mi>p</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>a</mi></msub><mo>|</mo><msub><mi>c</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths>得到c之后,若D(c<sub>e</sub>,c)<α×aver,将D(c<sub>e</sub>,c)的值加入到最小值列表L中,将c<sub>e</sub>添加到簇c中;否则,为c<sub>e</sub>新建一个簇保存,并将新建的簇添加到集合C中,其中α为调节系数,aver为最小值列表L中所有最小值的算术平均,L在初始时为空;4)若C中还有簇未处理,则重复步骤3);5)对上述聚类结果进行调整,依次从C的每个簇中取每个簇c构成一个新的簇{c},根据共有信息损失最小原则,将{c}合并到C包含的一个簇中,从而完成对聚类结果的一次调整;将上述针对调整过程循环sum次后,聚类过程完成。
地址 454000 河南省焦作市高新区世纪大道2001号河南理工大学