mirror of
https://github.com/fumiama/jieba.git
synced 2026-06-05 00:32:51 +08:00
35 lines
732 B
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
|
|
}
|