看板 MATLAB 關於我們 聯絡資訊
小妹我最近在網路上下載計算字詞權重tf-idf的程式碼 我在matlab輸入一個簡單的term-document矩陣 假設有一篇文章有1000個Terms,t1出現10次、t2出現100次、t3出現30次 算出來的tf-idf值應該分別是 0.0282、0及0.009 但下面程式碼算出來都是 5.809、5.809、5.809 是不是TF那邊出甚麼問題呢? 程式碼如下: function Y = tfidf( X ) X = tf(X); I = idf(X); for j=1:size(X, 2) X(:, j) = X(:, j)*I(j); end Y = X; function X = tf(X) for i=1:size(X, 1) x = X(i, :); sumX = sum( x ); if sumX ~= 0 X(i, :) = x / sum(x); else X(i, :) = 0; end end function I = idf(X) [m, n]=size(X); I = zeros(n, 1); for j=1:n nz = nnz( X(:, j) ); if nz I(j) = log( m / nz ); end 希望能得到解答~~萬分感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.139.121
celestialgod:so no data? how to test? 03/23 20:53
Jolinda:data:X(1000x1) 前面三行的值分別為10、100、30,其餘為0 03/24 00:12
Jolinda:已解決 03/25 14:34