gmq版本
This commit is contained in:
46
utils/gse.go
46
utils/gse.go
@@ -2,7 +2,6 @@ package utils
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"path/filepath"
|
|
||||||
"sort"
|
"sort"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
@@ -37,56 +36,25 @@ type gseTool struct {
|
|||||||
tr *extracker.TextRanker
|
tr *extracker.TextRanker
|
||||||
}
|
}
|
||||||
|
|
||||||
// newGseTool 初始化工具(使用外部数据文件)
|
// newGseTool 初始化工具(内置词典 + 停用词)
|
||||||
func newGseTool() (tool *gseTool, err error) {
|
func newGseTool() (tool *gseTool, err error) {
|
||||||
// 1. 初始化分词器
|
// 1. 初始化分词器
|
||||||
var seg gse.Segmenter
|
var seg gse.Segmenter
|
||||||
|
// 内置词典(无外部文件)
|
||||||
// gse数据文件在可执行文件同级的gse/dict目录下
|
err = seg.LoadDictEmbed()
|
||||||
gseDataPath := "gse"
|
|
||||||
dictPath := filepath.Join(gseDataPath, "dict", "zh")
|
|
||||||
idfPath := filepath.Join(dictPath, "idf.txt")
|
|
||||||
stopPath := filepath.Join(dictPath, "stop.txt")
|
|
||||||
|
|
||||||
// 加载词典
|
|
||||||
err = seg.LoadDict(filepath.Join(dictPath, "dict.txt"))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Warning(context.Background(), "加载gse词典失败,尝试embed模式:", err)
|
|
||||||
// 回退到embed模式
|
|
||||||
err = seg.LoadDictEmbed()
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = seg.LoadStopEmbed()
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
tfidf := &extracker.TagExtracter{}
|
|
||||||
tfidf.WithGse(seg)
|
|
||||||
err = tfidf.LoadIdf()
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
tr := &extracker.TextRanker{}
|
|
||||||
tr.WithGse(seg)
|
|
||||||
tool = &gseTool{
|
|
||||||
seg: seg,
|
|
||||||
tfidf: tfidf,
|
|
||||||
tr: tr,
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 内置停用词(v1.0.2 标准)
|
||||||
// 加载停用词
|
err = seg.LoadStopEmbed()
|
||||||
err = seg.LoadStop(stopPath)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Warning(context.Background(), "加载停用词失败,继续:", err)
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 初始化 TF-IDF 提取器
|
// 2. 初始化 TF-IDF 提取器
|
||||||
tfidf := &extracker.TagExtracter{}
|
tfidf := &extracker.TagExtracter{}
|
||||||
tfidf.WithGse(seg)
|
tfidf.WithGse(seg)
|
||||||
err = tfidf.LoadIdf(idfPath)
|
err = tfidf.LoadIdf()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user