Re: [问题] 问一个分群的问题

楼主: clliu168 (风)   2011-08-27 13:34:37
※ 引述《Arim (Arim5566)》之铭言:
: 各位板友好
: 小弟最近碰到一个分群的问题
: 首先我有一个term-by-document的matrix
: 假设我有8个term是A B C D E F G H
: 想利用cos similarity对这8个term做分群
: 分群的条件是群内的任两个term的cos similarity都大于等于门槛值
: 例如最后分出来的最大的两群为(A B C D) 以及 (F G H)
: 群内的任意两个term的cos similarity都大于等于门槛值
: 但是目前能想到的方法只有暴力法
: 例如先找跟A的cos similarity大于等于门槛值的term
: 可以先找到(A B C D E)这一个群,这时候就跑循环检查B C D E的相似度
: 在循环的过程中发现B跟E不相似,所以要把E或B拿掉,如果把E拿掉的话,
: 会变成(A B C D),之后检查C跟D也符合条件,就输出(A B C D)这一个群,
: 但如果把B拿掉的话,会变成(A C D E),但可能之后的检查过程中发
: 现C跟E又不相似,之后把C拿掉,接着D跟E又不相似,之后把D拿掉,到最后只会
: 剩下(A E),但是(A E)这一群并不是最大的...请问有什么有效率的算法有办法
: 解决目前我遇到的这个问题嘛?
: 谢谢指教
How about Agglomerative Hierarchical Clustering?
因为你的问题有 constraints,所以从底下开始 merge 的时候,只有
similarity 超过门槛才做 merge,等于是稍微修改一下 Hierarchical Clustering
算法。
我没仔细去 trace 过,不过应该是可行
作者: Arim (象山下智久)   2011-08-27 15:51:00
谢谢~只是担心使用此算法的矩阵size太大会吃光内存..如果有50000个term要做cluster的话内存很可观..

Links booklink

Contact Us: admin [ a t ] ucptt.com