mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 22:00:11 +08:00
fix(wordcount): 修改分词模块至外部gse仓库 (#1165)
Some checks failed
打包最新版为 Docker Image / build docker (push) Waiting to run
最新版 / Build binary CI (386, linux) (push) Failing after 1s
最新版 / Build binary CI (386, windows) (push) Failing after 1s
最新版 / Build binary CI (amd64, linux) (push) Failing after 1s
最新版 / Build binary CI (amd64, windows) (push) Failing after 1s
最新版 / Build binary CI (arm, linux) (push) Failing after 1s
最新版 / Build binary CI (arm64, linux) (push) Failing after 1s
PushLint / lint (push) Failing after 1s
Some checks failed
打包最新版为 Docker Image / build docker (push) Waiting to run
最新版 / Build binary CI (386, linux) (push) Failing after 1s
最新版 / Build binary CI (386, windows) (push) Failing after 1s
最新版 / Build binary CI (amd64, linux) (push) Failing after 1s
最新版 / Build binary CI (amd64, windows) (push) Failing after 1s
最新版 / Build binary CI (arm, linux) (push) Failing after 1s
最新版 / Build binary CI (arm64, linux) (push) Failing after 1s
PushLint / lint (push) Failing after 1s
Co-authored-by: 源文雨 <41315874+fumiama@users.noreply.github.com>
This commit is contained in:
parent
c888936489
commit
076b113455
@ -11,6 +11,12 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/go-ego/gse"
|
||||||
|
"github.com/golang/freetype"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/tidwall/gjson"
|
||||||
|
"github.com/wcharczuk/go-chart/v2"
|
||||||
|
|
||||||
"github.com/FloatTech/floatbox/binary"
|
"github.com/FloatTech/floatbox/binary"
|
||||||
fcext "github.com/FloatTech/floatbox/ctxext"
|
fcext "github.com/FloatTech/floatbox/ctxext"
|
||||||
"github.com/FloatTech/floatbox/file"
|
"github.com/FloatTech/floatbox/file"
|
||||||
@ -18,17 +24,16 @@ import (
|
|||||||
"github.com/FloatTech/zbputils/control"
|
"github.com/FloatTech/zbputils/control"
|
||||||
"github.com/FloatTech/zbputils/ctxext"
|
"github.com/FloatTech/zbputils/ctxext"
|
||||||
"github.com/FloatTech/zbputils/img/text"
|
"github.com/FloatTech/zbputils/img/text"
|
||||||
"github.com/golang/freetype"
|
|
||||||
"github.com/sirupsen/logrus"
|
|
||||||
"github.com/tidwall/gjson"
|
|
||||||
"github.com/wcharczuk/go-chart/v2"
|
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
"github.com/wdvxdr1123/ZeroBot/message"
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
|
"github.com/wdvxdr1123/ZeroBot/utils/helper"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
re = regexp.MustCompile(`^[一-龥]+$`)
|
re = regexp.MustCompile(`^[一-龥]+$`)
|
||||||
stopwords []string
|
stopwords []string
|
||||||
|
seg gse.Segmenter
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -39,6 +44,11 @@ func init() {
|
|||||||
PublicDataFolder: "WordCount",
|
PublicDataFolder: "WordCount",
|
||||||
})
|
})
|
||||||
cachePath := engine.DataFolder() + "cache/"
|
cachePath := engine.DataFolder() + "cache/"
|
||||||
|
// 读取gse内置中文词典
|
||||||
|
err := seg.LoadDictEmbed()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
_ = os.RemoveAll(cachePath)
|
_ = os.RemoveAll(cachePath)
|
||||||
_ = os.MkdirAll(cachePath, 0755)
|
_ = os.MkdirAll(cachePath, 0755)
|
||||||
engine.OnRegex(`^热词\s?(\d*)\s?(\d*)$`, zero.OnlyGroup, fcext.DoOnceOnSuccess(func(ctx *zero.Ctx) bool {
|
engine.OnRegex(`^热词\s?(\d*)\s?(\d*)$`, zero.OnlyGroup, fcext.DoOnceOnSuccess(func(ctx *zero.Ctx) bool {
|
||||||
@ -120,12 +130,14 @@ func init() {
|
|||||||
if tex == "" {
|
if tex == "" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
for _, t := range ctx.GetWordSlices(tex).Get("slices").Array() {
|
segments := seg.Segment(helper.StringToBytes(tex))
|
||||||
tex := strings.TrimSpace(t.Str)
|
words := gse.ToSlice(segments, true)
|
||||||
i := sort.SearchStrings(stopwords, tex)
|
for _, word := range words {
|
||||||
if re.MatchString(tex) && (i >= len(stopwords) || stopwords[i] != tex) {
|
word = strings.TrimSpace(word)
|
||||||
|
i := sort.SearchStrings(stopwords, word)
|
||||||
|
if re.MatchString(word) && (i >= len(stopwords) || stopwords[i] != word) {
|
||||||
mapmu.Lock()
|
mapmu.Lock()
|
||||||
messageMap[tex]++
|
messageMap[word]++
|
||||||
mapmu.Unlock()
|
mapmu.Unlock()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user