Compare commits

..

3 Commits

Author SHA1 Message Date
ArvinLovegood
63d278b9aa feat(stock):加载用户自定义词典进行情感分析(用户可以自己定义词典调整热词权重)
- 在默认词典加载成功后,增加加载用户自定义词典逻辑
- 判断用户词典文件是否存在,避免加载空文件
- 记录用户词典加载成功或失败的日志信息
- 保持原有默认词典加载流程不变
- 确保词典加载错误不会中断程序运行
- 统一词典加载后的日志输出格式
2025-11-22 13:02:33 +08:00
ArvinLovegood
5621d40c71 feat(market):调整词频树图数据计算方式
- 将词频树图中的值计算方式从 Frequency 改为 Frequency * Weight
- 更新 treemap 数据映射逻辑以反映新的权重计算
- 确保前端展示的数据更加准确地反映词汇的重要性
2025-11-22 12:58:41 +08:00
ArvinLovegood
26e9753b94 feat(data):添加十五五规划重点领域关键词到基础词典
- 新增涵盖七个大类的政策关键词汇
- 设置词汇权重范围为310-350,适配政策资讯分词场景
- 包含核心战略方向、科技创新与数字经济等领域术语
- 添加能源与绿色转型相关高频词汇
- 补充高端制造与新兴产业的专业表达
- 增加乡村振兴与农业现代化关键词
- 纳入对外开放与贸易升级术语
- 更新社会民生与公共服务领域用词
2025-11-22 12:55:11 +08:00
3 changed files with 115 additions and 2 deletions

View File

@@ -923,4 +923,105 @@ OnePlus 300 n
真我 310 n
realme 300 n
传音控股 310 n
Transsion 300 n
Transsion 300 n
# 十五五规划重点领域关键词Jieba格式词汇 权重 词性)
# 权重330-350分核心政策术语优先级高于普通词汇适配政策资讯分词场景
# 一、核心战略方向
新质生产力 350 n
科技自立自强 350 n
全要素生产率 340 n
高质量发展 340 n
中国式现代化 340 n
共同富裕 330 n
区域协调发展 330 n
城乡融合发展 330 n
国家安全体系 330 n
双循环 330 n
高水平对外开放 320 n
# 二、科技创新与数字经济
量子科技 340 n
脑机接口 340 n
具身智能 340 n
第六代移动通信 340 n
6G 340 n
人工智能 350 n
生成式AI 340 n
通用人工智能 330 n
工业母机 340 n
半导体 350 n
芯片 350 n
集成电路 340 n
高端算力 330 n
数据要素 340 n
数字经济 350 n
数字基础设施 330 n
工业互联网 330 n
智能制造 340 n
服务型制造 320 n
绿色制造 320 n
# 三、能源与绿色转型
新型能源体系 340 n
新能源 350 n
氢能 340 n
核聚变能 330 n
储能 340 n
可再生能源 330 n
光伏 340 n
风电 330 n
生物质能 320 n
碳排放双控 340 n
碳达峰 330 n
碳中和 330 n
绿色低碳 330 n
循环经济 320 n
节能环保 320 n
碳交易 320 n
# 四、高端制造与新兴产业
航空航天 340 n
低空经济 340 n
新材料 340 n
生物制造 330 n
生物医药 330 n
基因编辑 320 n
合成生物学 320 n
智能网联汽车 330 n
自动驾驶 330 n
机器人 330 n
人形机器人 330 n
海洋工程 320 n
核电 320 n
高端装备 330 n
# 五、乡村振兴与农业现代化
乡村振兴 340 n
农业机械化 330 n
智慧农业 330 n
现代农业 320 n
粮食安全 330 n
农产品深加工 320 n
农村电商 320 n
乡村旅游 310 n
# 六、对外开放与贸易升级
跨境电商 330 n
自贸试验区 320 n
海南自贸港 320 n
一带一路 330 n
服务贸易 320 n
数字贸易 320 n
跨境金融 320 n
外资准入 310 n
# 七、社会民生与公共服务
教育强国 320 n
健康中国 320 n
养老服务 310 n
医疗保障 310 n
保障性住房 310 n
公共卫生 320 n
文化强国 320 n
体育强国 310 n

View File

@@ -75,7 +75,19 @@ func InitAnalyzeSentiment() {
err = seg.LoadDictEmbed(baseDict)
if err != nil {
logger.SugaredLogger.Error(err.Error())
} else {
logger.SugaredLogger.Info("加载默认词典成功")
}
//加载用户自定义词典 先判断用户词典是否存在
if !fileutil.IsExist(fileutil.CurrentPath() + "/data/dict/user.txt") {
err = seg.LoadDictEmbed(fileutil.CurrentPath() + "/data/dict/user.txt")
if err != nil {
logger.SugaredLogger.Error(err.Error())
} else {
logger.SugaredLogger.Info("加载用户词典成功")
}
}
stocks := &[]StockBasic{}
db.Dao.Model(&StockBasic{}).Find(stocks)
for _, stock := range *stocks {

View File

@@ -189,7 +189,7 @@ function Analyze(){
type: 'treemap',
data: res['frequencies'].slice(0, 20).map(item => ({
name: item.Word,
value: item.Frequency,
value: item.Frequency*item.Weight,
}))
}
]