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

楼主: Arim (象山下智久)   2011-08-26 23:07:42
各位板友好
小弟最近碰到一个分群的问题
首先我有一个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)这一群并不是最大的...请问有什么有效率的算法有办法
解决目前我遇到的这个问题嘛?
谢谢指教
作者: cansas (cansas)   0000-00-00 00:00:00
其实同样的问题我用过一个超简单的方法 每次都合并最像的词汇 先两两都比过 把最像的合起来 变成 一个群 再重复相同方法 直到剩下指定的群数 就完成了相似度可以简单定成 (A内积B)/|A|*|B| A与B为词汇向量当然这是一个超阳春的方法 有人用DP解 但你是词汇分群 建议用一些分群算法 WEKA有 还很多

Links booklink

Contact Us: admin [ a t ] ucptt.com