[問題] 問一個分群的問題

作者: 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