2013-02-12 23 views
0

餘弦相似度上的輸入是兩個向量,代表我想比較的兩個不同數據。是否需要矢量的語義?它可以簡單地成爲每個文件的字節表示。然後計算每個字節的頻率?這有意義嗎?或者應該有文件的矢量化,其中每個維度不是來自文件的原始數據,而是一些元數據作爲每個術語的頻率,如果我們說的是文本文件或tf-idf編碼模型?把它放在另一個形狀中:爲了「正確」,餘弦相似性是否需要一個複雜的數據預處理步驟,或者我可以將其作爲輸入整數值來表示數據的每個字節,而不考慮文本或只是一個頻率每個字節的長短?餘弦相似度的預處理要求是什麼?

回答

1

數據的「語義」很關鍵。例如,假設你正在比較英文文本文件。對於大型文檔,各種字母出現的頻率大致相同,因此如果向量中的元素表示字母的數量,您將難以區分文檔。如果你的向量的元素代表單詞的計數,你會得到更好的結果。如果你的向量元素代表「幹」字的計數,甚至更好。等

餘弦相似性是一個「愚蠢的」統計測量 - 它是由你來給它一些有意義的比較。

+0

如果我想比較記錄,並且每個向量由數值數據,布爾值和字符串組成,那麼該怎麼辦?Ie:[數字] [數字] [字符串] [布爾值] – curious 2013-03-19 17:05:06

+0

@Curious - 我不確定你是什麼問。你能否提供一個簡單的例子,展示你正在考慮的一些向量表示? – kc2001 2013-03-22 12:13:56

+0

假設我有兩個記錄。 r1 = 234,1023,不,今天是星期天。 r2 = 876,423,是的,明天我要走了。我如何計算這兩條記錄的餘弦?我如何計算它們的向量?我只是通過字符來表示它們的ascii表示並創建一個向量?那麼就沒有語義和餘弦可能會給出不準確的結果 – curious 2013-03-22 13:09:26