文本資源管理器中的餘弦相似度測量是否可以在文本資源管理器中進行餘弦相似度測量來識別彼此“接近”的文檔。我看到我們可以對文檔進行聚類並進行潛在語義分析,但我沒有看到任何計算餘弦相似度度量的方法。任何幫助將不勝感激。
拉胡爾
回复:文本資源管理器中的餘弦相似度測量這是一個很好的問題! 當所考慮的向量居中(即平均值為零)時,餘弦相似性係數將與相關係數相同。 傳統上,在信息檢索領域,創建數據項矩陣(DTM)並直接對其進行奇異值分解(SVD),而不對向量進行中心化或標準化(即中心化和縮放)。 與此類似,餘弦相似度是與非中心向量關聯的度量。
然而,將 DTM 居中具有重要的優勢。 具體來說,如果尚未進行居中,則 SVD(您的第一個維度或主題)中的第一個奇異向量不一定是多維空間中最重要的奇異向量。 這就是 JMP 允許用戶集中和/或標準化 DTM 以用於潛在語義分析或主題分析的原因之一。 類似地,相關係數是從中心和縮放(即標準化)DTM 獲得的。
總之,您可以通過將DTM 保存到數據表並轉到“分析”>“多元方法”>“多元”,將所有DTM 列添加到Y 角色中並單擊“確定”,輕鬆獲得向量相似性的度量。 所得的相關矩陣將指向向量的相似程度。 也就是說,值 1 表示兩個相同方向的相同向量,而值 -1 表示兩個相同方向的相同向量,依此類推。 最後,如果您想查找文檔而不是術語之間的相似性,則必須在執行上述步驟之前轉置數據。
哈特哈,
~勞拉
聚苯乙烯 如果您尚未升級到 JMP 13.2,我強烈建議您升級。 請看一下我的帖子這裡因此您可以了解 13.2 中對文本資源管理器的改進。
回复:文本資源管理器中的餘弦相似度測量感謝幫助。這就是我想做的事情。得到矩陣並自己做。我想知道它是內置的嗎?
拉胡爾
回复:文本資源管理器中的餘弦相似度測量由於 JMP 允許您保存文檔術語矩陣 (DTM),因此您始終可以直接計算它。 所附表格是根據“飛機事故”樣本數據製作的。 下面的代碼(在我的筆記本電腦上運行需要幾秒鐘)在第二個附表中生成了相似性矩陣。
// https://en.wikipedia.org/wiki/Cosine_similarity
NamesDefaultToHere(1);
dt = CurrentDataTable();
m = dt << getAsMatrix;
n = NRow(dt);
// Make some column headings for the final table
cols = {};
for(i=1, i<=n, i++,
InsertInto(cols, "Document in Row "||Char(i));
);
// Get the modulus of each feature vector
modulus = J(n, 1, .);
for(i=1, i<=n, i++,
modulus[i] = sqrt(ssq(m[i,0]));
);
// Get the cosine of the angle between each pair of feature vectors
cosTheta = J(n, n, .);
for(i=1, i<=n, i++,
for(j=1, j<=i, j++,
cosTheta[i,j] = Sum(m[i, 0]
m[j, 0])/(modulus[i] * modulus[j]);
);
);
dt2 = AsTable(cosTheta, << ColumnNames(cols));
dt2 << setName("Cosine between feature vectors in "||(dt << getName));