Closed paithiov909 closed 9 months ago
確率的IDF(globalIDF3)の計算が間違っていると思われたため、weights.Rを編集しました。
globalIDF3
この関数は次式のように、文書数Nと「各単語を含む文書数」との差を「各単語を含む文書数」で割ってlogをとるものだと思いますが、log2((ncol(m) - df) / df)のようになるべきところがlog2(ncol(m - df) / df)となっています。
log2((ncol(m) - df) / df)
log2(ncol(m - df) / df)
$$idf = \log \frac{N - n_t}{n_t}$$
また、この修正のほかに、weights.Rとzzz.Rの体裁を整えました。
編集前
# probabilistic IDF globalIDF3 <- function(m, tp=0) { # m <- removeInfo ( m ) if(tp == 1){ df <- colSums(localBin( m ), na.rm=TRUE)# 各単語を含む文書数 (文書頻度) return ( log2 ( nrow( m - df) /df ) )# 行側に文書 }else{ df <- rowSums(localBin( m ), na.rm=TRUE)# 各単語を含む文書数 (文書頻度) return ( log2 ( ncol( removeInfo(m) - df) /df ) ) } }
編集後
# probabilistic IDF globalIDF3 <- function(m, tp = 0) { if (tp == 1) { df <- colSums(localBin(m), na.rm = TRUE) # 各単語を含む文書数 (文書頻度) return(log2((nrow(m) - df) / df)) # 行側に文書 } else { m <- removeInfo(m) df <- rowSums(localBin(m), na.rm = TRUE) # 各単語を含む文書数 (文書頻度) return(log2((ncol(m) - df) / df)) } }
Thank you for the correction.
確率的IDF(
globalIDF3
)の計算が間違っていると思われたため、weights.Rを編集しました。この関数は次式のように、文書数Nと「各単語を含む文書数」との差を「各単語を含む文書数」で割ってlogをとるものだと思いますが、
log2((ncol(m) - df) / df)
のようになるべきところがlog2(ncol(m - df) / df)
となっています。$$idf = \log \frac{N - n_t}{n_t}$$
また、この修正のほかに、weights.Rとzzz.Rの体裁を整えました。
編集前
編集後