1
0
mirror of https://github.com/fumiama/jieba.git synced 2026-06-05 00:32:51 +08:00
Files
jieba/analyse/idf.go

35 lines
732 B
Go

package analyse
import (
"github.com/wangbin/jiebago"
"sort"
)
type IDFLoader struct {
IDFFreq map[string]float64
Median float64
freqs []float64
}
func (l *IDFLoader) AddEntry(entry *jiebago.Entry) {
l.IDFFreq[entry.Word] = entry.Freq
l.freqs = append(l.freqs, entry.Freq)
}
func NewIDFLoader(IDFFileName string) (*IDFLoader, error) {
IDFFilePath, err := jiebago.DictPath(IDFFileName)
if err != nil {
return nil, err
}
loader := &IDFLoader{make(map[string]float64), 0.0, make([]float64, 0)}
err = jiebago.LoadDict(loader, IDFFilePath, false)
if err != nil {
return nil, err
}
sort.Float64s(loader.freqs)
loader.Median = loader.freqs[len(loader.freqs)/2]
loader.freqs = []float64{}
return loader, nil
}