1
0
mirror of https://github.com/fumiama/jieba.git synced 2026-06-07 09:40:38 +08:00
Files
jieba/analyse/idf.go
2015-03-24 18:34:07 +08:00

33 lines
646 B
Go

package analyse
import (
"github.com/wangbin/jiebago"
"sort"
)
type IDFLoader struct {
IDFFreq map[string]float64
Median float64
}
func NewIDFLoader(IDFFileName string) (*IDFLoader, error) {
IDFFilePath, err := jiebago.DictPath(IDFFileName)
if err != nil {
return nil, err
}
wtfs, err := jiebago.ParseDictFile(IDFFilePath)
if err != nil {
return nil, err
}
freqs := make([]float64, len(wtfs))
loader := &IDFLoader{make(map[string]float64), 0.0}
for index, wtf := range wtfs {
loader.IDFFreq[wtf.Word] = wtf.Freq
freqs[index] = wtf.Freq
}
sort.Float64s(freqs)
loader.Median = freqs[len(freqs)/2]
return loader, nil
}