diff --git a/backend/data/stock_sentiment_analysis.go b/backend/data/stock_sentiment_analysis.go index a74d01b..18f849a 100644 --- a/backend/data/stock_sentiment_analysis.go +++ b/backend/data/stock_sentiment_analysis.go @@ -3,13 +3,16 @@ package data import ( "bufio" "fmt" - "github.com/yanyiwu/gojieba" + "github.com/go-ego/gse" + "go-stock/backend/logger" "os" "strings" ) // 金融情感词典,包含股票市场相关的专业词汇 var ( + seg gse.Segmenter + // 正面金融词汇及其权重 positiveFinanceWords = map[string]float64{ "上涨": 2.0, "涨停": 3.0, "牛市": 3.0, "反弹": 2.0, "新高": 2.5, @@ -50,6 +53,14 @@ var ( } ) +func init() { + // 加载默认词典 + err := seg.LoadDict() + if err != nil { + logger.SugaredLogger.Error(err.Error()) + } +} + // SentimentResult 情感分析结果类型 type SentimentResult struct { Score float64 // 情感得分 @@ -228,10 +239,7 @@ func calculateScore(words []string) (float64, int, int) { // 简单的分词函数,考虑了中文和英文 func splitWords(text string) []string { - x := gojieba.NewJieba() - defer x.Free() - - return x.Cut(text, true) + return seg.Cut(text, true) } // GetSentimentDescription 获取情感类别的文本描述 diff --git a/go.mod b/go.mod index 4af734e..1f59b99 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/duke-git/lancet/v2 v2.3.4 github.com/energye/systray v1.0.2 github.com/glebarez/sqlite v1.11.0 + github.com/go-ego/gse v0.80.3 github.com/go-resty/resty/v2 v2.16.2 github.com/go-toast/toast v0.0.0-20190211030409-01e6764cf0a4 github.com/robertkrimen/otto v0.5.1 @@ -67,6 +68,7 @@ require ( github.com/tkrajina/go-reflector v0.5.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect + github.com/vcaesar/cedar v0.20.2 // indirect github.com/wailsapp/go-webview2 v1.0.19 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect go.uber.org/multierr v1.10.0 // indirect diff --git a/go.sum b/go.sum index 9e60394..8c7c1cf 100644 --- a/go.sum +++ b/go.sum @@ -26,6 +26,8 @@ github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9g github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k= github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GMw= github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7bWZjOhrgQ= +github.com/go-ego/gse v0.80.3 h1:YNFkjMhlhQnUeuoFcUEd1ivh6SOB764rT8GDsEbDiEg= +github.com/go-ego/gse v0.80.3/go.mod h1:Gt3A9Ry1Eso2Kza4MRaiZ7f2DTAvActmETY46Lxg0gU= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-resty/resty/v2 v2.16.2 h1:CpRqTjIzq/rweXUt9+GxzzQdlkqMdt8Lm/fuK/CAbAg= @@ -129,6 +131,10 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/vcaesar/cedar v0.20.2 h1:TDx7AdZhilKcfE1WvdToTJf5VrC/FXcUOW+KY1upLZ4= +github.com/vcaesar/cedar v0.20.2/go.mod h1:lyuGvALuZZDPNXwpzv/9LyxW+8Y6faN7zauFezNsnik= +github.com/vcaesar/tt v0.20.1 h1:D/jUeeVCNbq3ad8M7hhtB3J9x5RZ6I1n1eZ0BJp7M+4= +github.com/vcaesar/tt v0.20.1/go.mod h1:cH2+AwGAJm19Wa6xvEa+0r+sXDJBT0QgNQey6mwqLeU= github.com/wailsapp/go-webview2 v1.0.19 h1:7U3QcDj1PrBPaxJNCui2k1SkWml+Q5kvFUFyTImA6NU= github.com/wailsapp/go-webview2 v1.0.19/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=