Compare commits
10 Commits
v2025.11.2
...
v2025.11.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa658357c9 | ||
|
|
746589a972 | ||
|
|
401dd17fa8 | ||
|
|
c365bd9534 | ||
|
|
104ee51e13 | ||
|
|
00f3e5f0e0 | ||
|
|
483ffa2244 | ||
|
|
63d278b9aa | ||
|
|
5621d40c71 | ||
|
|
26e9753b94 |
@@ -1,6 +1,6 @@
|
||||
# 金融股票全场景分词字典(去重优化版)
|
||||
# 金融股票全场景分词字典(最终去重优化版)
|
||||
# 格式:单词 权重 词性 | 权重280-350分,核心术语优先匹配,无重复词汇
|
||||
# 覆盖:净买卖、股指、财务指标、交易操作、政策宏观、热点概念等全场景
|
||||
# 覆盖:净买卖、股指、财务指标、交易操作、政策宏观、热点概念、机构媒体、美股中概股、十五五规划等全场景
|
||||
|
||||
# 一、净买卖与资金流向(核心交易表述)
|
||||
净卖出 340 v
|
||||
@@ -94,7 +94,8 @@
|
||||
信息披露 310 n
|
||||
内幕交易 300 n
|
||||
操纵市场 300 n
|
||||
|
||||
亏损 100 n
|
||||
加工 100 n
|
||||
# 三、全球主要股指(含中英文缩写)
|
||||
# 中国市场
|
||||
A股 350 n
|
||||
@@ -137,13 +138,6 @@ Russell 2000 310 n
|
||||
纽约证交所综合指数 310 n
|
||||
NYSE Composite 300 n
|
||||
纳斯达克中国金龙指数 310 n
|
||||
英伟达 300 n
|
||||
苹果 300 n
|
||||
谷歌 300 n
|
||||
蔚来 300 n
|
||||
雅虎 300 n
|
||||
中概股 300 n
|
||||
雅虎财经 300 n
|
||||
# 欧洲市场
|
||||
德国DAX指数 330 n
|
||||
DAX 30 320 n
|
||||
@@ -206,8 +200,8 @@ G20国家指数 300 n
|
||||
|
||||
# 四、A股龙头公司(资讯高频)
|
||||
贵州茅台 310 n
|
||||
宁德时代 310 n
|
||||
比亚迪 300 n
|
||||
宁德时代 350 n
|
||||
比亚迪 340 n
|
||||
隆基绿能 300 n
|
||||
长江电力 290 n
|
||||
中国平安 300 n
|
||||
@@ -223,7 +217,7 @@ G20国家指数 300 n
|
||||
东方财富 290 n
|
||||
爱尔眼科 290 n
|
||||
通威股份 290 n
|
||||
药明康德 290 n
|
||||
药明康德 320 n
|
||||
阳光电源 290 n
|
||||
天齐锂业 290 n
|
||||
赣锋锂业 290 n
|
||||
@@ -359,21 +353,21 @@ RQFII 290 n
|
||||
|
||||
# 八、热点概念与行业
|
||||
AI 330 n
|
||||
人工智能 330 n
|
||||
人工智能 350 n
|
||||
算力 330 n
|
||||
大数据 320 n
|
||||
云计算 320 n
|
||||
半导体 320 n
|
||||
芯片 320 n
|
||||
集成电路 310 n
|
||||
新能源 320 n
|
||||
光伏 320 n
|
||||
半导体 350 n
|
||||
芯片 350 n
|
||||
集成电路 340 n
|
||||
新能源 350 n
|
||||
光伏 340 n
|
||||
锂电 320 n
|
||||
储能 320 n
|
||||
储能 340 n
|
||||
充电桩 310 n
|
||||
新能源车 320 n
|
||||
智能汽车 310 n
|
||||
自动驾驶 310 n
|
||||
自动驾驶 330 n
|
||||
军工 310 n
|
||||
国防军工 300 n
|
||||
医药 310 n
|
||||
@@ -390,16 +384,16 @@ CXO 300 n
|
||||
房地产 300 n
|
||||
基建 300 n
|
||||
新基建 310 n
|
||||
数字经济 320 n
|
||||
数字经济 350 n
|
||||
数字货币 310 n
|
||||
区块链 300 n
|
||||
元宇宙 300 n
|
||||
低空经济 310 n
|
||||
人形机器人 310 n
|
||||
工业互联网 300 n
|
||||
低空经济 340 n
|
||||
人形机器人 330 n
|
||||
工业互联网 330 n
|
||||
物联网 300 n
|
||||
5G 300 n
|
||||
6G 300 n
|
||||
6G 340 n
|
||||
|
||||
# 九、交易操作与行情
|
||||
上涨 310 v
|
||||
@@ -449,8 +443,8 @@ CXO 300 n
|
||||
跌停板 300 n
|
||||
一字涨停 290 n
|
||||
一字跌停 290 n
|
||||
打开涨停 280 v
|
||||
打开跌停 280 v
|
||||
打开涨停 320 v
|
||||
打开跌停 320 v
|
||||
集合竞价 290 n
|
||||
连续竞价 280 n
|
||||
开盘价 340 n
|
||||
@@ -465,8 +459,6 @@ CXO 300 n
|
||||
跌幅 340 n
|
||||
涨停价 330 n
|
||||
跌停价 330 n
|
||||
打开涨停 320 v
|
||||
打开跌停 320 v
|
||||
熔断 330 n
|
||||
临时停牌 320 n
|
||||
复牌 320 v
|
||||
@@ -484,443 +476,4 @@ CXO 300 n
|
||||
# 十、委托交易与规则
|
||||
限价委托 340 n
|
||||
市价委托 340 n
|
||||
止损委托 330 n
|
||||
止盈委托 330 n
|
||||
预埋单 320 n
|
||||
条件单 330 n
|
||||
触发委托 320 n
|
||||
追涨委托 320 n
|
||||
抄底委托 320 n
|
||||
挂单 330 n
|
||||
撤单 330 v
|
||||
成交 340 v
|
||||
未成交 320 adj
|
||||
部分成交 320 adj
|
||||
委托价 320 n
|
||||
成交价 320 n
|
||||
委托量 320 n
|
||||
买单 330 n
|
||||
卖单 330 n
|
||||
买入 340 v
|
||||
卖出 340 v
|
||||
做多 330 v
|
||||
做空 330 v
|
||||
开仓 330 v
|
||||
满仓 330 v
|
||||
空仓 330 v
|
||||
半仓 320 v
|
||||
轻仓 320 v
|
||||
重仓 320 v
|
||||
底仓 320 n
|
||||
补仓 320 v
|
||||
T+1交易 330 n
|
||||
T+0交易 330 n
|
||||
日内交易 320 n
|
||||
短线交易 320 n
|
||||
中线交易 320 n
|
||||
长线交易 320 n
|
||||
集合竞价交易 320 n
|
||||
连续竞价交易 320 n
|
||||
保证金 320 n
|
||||
杠杆 320 n
|
||||
融资 320 n
|
||||
融券 320 n
|
||||
融资买入 320 v
|
||||
融券卖出 320 v
|
||||
融资余额 320 n
|
||||
融券余额 320 n
|
||||
两融业务 320 n
|
||||
信用账户 320 n
|
||||
普通账户 320 n
|
||||
资金账户 320 n
|
||||
证券账户 320 n
|
||||
持仓 330 n
|
||||
持仓股 320 n
|
||||
持仓数量 320 n
|
||||
可用资金 320 n
|
||||
可取资金 320 n
|
||||
冻结资金 320 n
|
||||
交易成本 320 n
|
||||
手续费 320 n
|
||||
佣金 320 n
|
||||
印花税 320 n
|
||||
过户费 320 n
|
||||
交易规费 320 n
|
||||
B股 310 n
|
||||
H股 310 n
|
||||
美股 310 n
|
||||
创业板 320 n
|
||||
科创板 320 n
|
||||
主板 320 n
|
||||
纳斯达克 310 n
|
||||
纽交所 310 n
|
||||
标普500 310 n
|
||||
道琼斯 310 n
|
||||
成分股 310 n
|
||||
权重股 310 n
|
||||
龙头股 310 n
|
||||
中小盘股 310 n
|
||||
大盘股 310 n
|
||||
小盘股 310 n
|
||||
ST股 320 n
|
||||
*ST股 320 n
|
||||
退市股 320 n
|
||||
次新股 320 n
|
||||
新股 320 n
|
||||
打新 320 v
|
||||
新股申购 320 n
|
||||
中签 320 v
|
||||
新股上市 320 n
|
||||
限售股 310 n
|
||||
解禁 310 v
|
||||
股权登记日 310 n
|
||||
除权除息日 310 n
|
||||
派息 310 n
|
||||
分红 310 n
|
||||
送股 310 n
|
||||
转增股 310 n
|
||||
配股 310 n
|
||||
除权 310 n
|
||||
除息 310 n
|
||||
填权 310 v
|
||||
贴权 310 v
|
||||
筹码分析 310 n
|
||||
盘口分析 310 n
|
||||
K线图 310 n
|
||||
均线 310 n
|
||||
日均线 310 n
|
||||
周均线 310 n
|
||||
月均线 310 n
|
||||
MACD 310 n
|
||||
KDJ 310 n
|
||||
RSI 310 n
|
||||
布林带 310 n
|
||||
成交量均线 310 n
|
||||
支撑位 310 n
|
||||
压力位 310 n
|
||||
阻力位 310 n
|
||||
突破 310 v
|
||||
跌破 310 v
|
||||
站稳 310 v
|
||||
回落 310 v
|
||||
横盘整理 310 n
|
||||
震荡整理 310 n
|
||||
洗盘 310 n
|
||||
吸筹 310 n
|
||||
出货 310 n
|
||||
建仓成本 310 n
|
||||
持仓周期 310 n
|
||||
交易频率 310 n
|
||||
长线持有 310 v
|
||||
高抛低吸 310 v
|
||||
追涨杀跌 310 v
|
||||
低吸高抛 310 v
|
||||
顺势而为 310 n
|
||||
逆向投资 310 n
|
||||
交易软件 300 n
|
||||
行情软件 300 n
|
||||
交易终端 300 n
|
||||
手机炒股 300 n
|
||||
电脑炒股 300 n
|
||||
网上交易 300 n
|
||||
电话委托 290 n
|
||||
营业部交易 290 n
|
||||
交易系统 300 n
|
||||
行情系统 300 n
|
||||
Level-2行情 300 n
|
||||
实时行情 300 n
|
||||
延时行情 290 n
|
||||
交易接口 300 n
|
||||
量化交易 310 n
|
||||
算法交易 300 n
|
||||
程序化交易 300 n
|
||||
自动交易 300 n
|
||||
智能投顾 300 n
|
||||
券商APP 300 n
|
||||
交易佣金 300 n
|
||||
开户 300 v
|
||||
销户 290 v
|
||||
转户 290 v
|
||||
绑定银行卡 290 v
|
||||
银证转账 300 n
|
||||
银证通 290 n
|
||||
第三方存管 290 n
|
||||
赛道股 330 n
|
||||
抱团股 310 n
|
||||
妖股 310 n
|
||||
庄股 310 n
|
||||
# 主要财经网站与机构名词(格式:单词 权重 词性)
|
||||
# 权重320-350分,与核心金融术语优先级一致,确保精准识别
|
||||
|
||||
# 一、国内财经网站(资讯高频来源)
|
||||
东方财富网 350 n
|
||||
同花顺财经 340 n
|
||||
财新网 340 n
|
||||
新浪财经 340 n
|
||||
第一财经 330 n
|
||||
金融界 330 n
|
||||
华尔街见闻 330 n
|
||||
每日经济新闻 330 n
|
||||
证券时报网 330 n
|
||||
财联社 330 n
|
||||
和讯网 320 n
|
||||
证券之星 320 n
|
||||
中国证券报 330 n
|
||||
上海证券报 330 n
|
||||
证券日报 320 n
|
||||
界面新闻 320 n
|
||||
澎湃新闻财经 320 n
|
||||
腾讯财经 320 n
|
||||
网易财经 320 n
|
||||
凤凰财经 320 n
|
||||
|
||||
# 二、国际财经媒体(全球市场资讯来源)
|
||||
彭博社 350 n
|
||||
路透社 350 n
|
||||
金融时报 340 n
|
||||
华尔街日报 340 n
|
||||
雅虎财经 320 n
|
||||
CNBC 320 n
|
||||
路透财经 330 n
|
||||
彭博财经 330 n
|
||||
英国金融时报 330 n
|
||||
美国消费者新闻与商业频道 320 n
|
||||
日经新闻 320 n
|
||||
韩国经济新闻 310 n
|
||||
|
||||
# 三、国际金融机构(投行/基金/银行)
|
||||
高盛集团 350 n
|
||||
摩根士丹利 350 n
|
||||
摩根大通 350 n
|
||||
瑞银集团 340 n
|
||||
汇丰银行 340 n
|
||||
野村证券 330 n
|
||||
贝莱德 350 n
|
||||
桥水基金 340 n
|
||||
黑石集团 340 n
|
||||
橡树资本 330 n
|
||||
花旗集团 330 n
|
||||
美银美林 330 n
|
||||
德意志银行 320 n
|
||||
瑞士信贷 320 n
|
||||
法国巴黎银行 320 n
|
||||
三菱日联金融集团 310 n
|
||||
|
||||
# 四、国内外金融监管与交易机构
|
||||
中国证监会 350 n
|
||||
美联储 350 n
|
||||
英国金融行为管理局 330 n
|
||||
香港证监会 330 n
|
||||
纽约证券交易所 350 n
|
||||
纳斯达克 350 n
|
||||
香港交易所 340 n
|
||||
伦敦证券交易所 340 n
|
||||
芝商所集团 330 n
|
||||
泛欧证券交易所 330 n
|
||||
上海证券交易所 340 n
|
||||
深圳证券交易所 340 n
|
||||
北京证券交易所 330 n
|
||||
中国人民银行 350 n
|
||||
银保监会 340 n
|
||||
国家金融监督管理总局 340 n
|
||||
财政部 340 n
|
||||
发改委 330 n
|
||||
石油输出国组织 340 n
|
||||
国际能源署 330 n
|
||||
美国能源信息署 320 n
|
||||
世界银行 330 n
|
||||
国际货币基金组织 330 n
|
||||
|
||||
# 五、国内核心金融机构(券商/基金/银行)
|
||||
中国工商银行 340 n
|
||||
中国建设银行 340 n
|
||||
中国农业银行 340 n
|
||||
中国银行 340 n
|
||||
交通银行 330 n
|
||||
招商银行 330 n
|
||||
兴业银行 320 n
|
||||
浦发银行 320 n
|
||||
中信证券 340 n
|
||||
华泰证券 330 n
|
||||
中金公司 330 n
|
||||
中信建投 330 n
|
||||
国泰君安 330 n
|
||||
广发证券 320 n
|
||||
东方证券 320 n
|
||||
南方基金 330 n
|
||||
易方达基金 330 n
|
||||
华夏基金 330 n
|
||||
嘉实基金 320 n
|
||||
博时基金 320 n
|
||||
# 知名美股与中概股(Jieba格式:词汇 权重 词性)
|
||||
# 权重320-350分,核心龙头股优先级最高,适配资讯分词场景
|
||||
|
||||
# 一、知名美股(科技、消费、金融龙头)
|
||||
苹果 350 n
|
||||
Apple 340 n
|
||||
英伟达 350 n
|
||||
Nvidia 340 n
|
||||
特斯拉 350 n
|
||||
Tesla 340 n
|
||||
谷歌 340 n
|
||||
Alphabet 330 n
|
||||
亚马逊 340 n
|
||||
Amazon 330 n
|
||||
Meta Platforms 330 n
|
||||
Meta 330 n
|
||||
微软 350 n
|
||||
Microsoft 340 n
|
||||
甲骨文 320 n
|
||||
Oracle 310 n
|
||||
伯克希尔哈撒韦 320 n
|
||||
Berkshire Hathaway 310 n
|
||||
闪迪 300 n
|
||||
SanDisk 290 n
|
||||
高通 320 n
|
||||
Qualcomm 310 n
|
||||
英特尔 320 n
|
||||
Intel 310 n
|
||||
AMD 320 n
|
||||
超威半导体 310 n
|
||||
脸书 320 n
|
||||
Facebook 310 n
|
||||
推特 310 n
|
||||
Twitter 300 n
|
||||
Square 300 n
|
||||
Block 290 n
|
||||
PayPal 310 n
|
||||
贝宝 300 n
|
||||
星巴克 310 n
|
||||
Starbucks 300 n
|
||||
可口可乐 310 n
|
||||
Coca-Cola 300 n
|
||||
百事可乐 300 n
|
||||
PepsiCo 290 n
|
||||
沃尔玛 310 n
|
||||
Walmart 300 n
|
||||
家得宝 300 n
|
||||
Home Depot 290 n
|
||||
摩根大通 320 n
|
||||
JPMorgan Chase 310 n
|
||||
高盛 320 n
|
||||
Goldman Sachs 310 n
|
||||
摩根士丹利 320 n
|
||||
Morgan Stanley 310 n
|
||||
美国银行 310 n
|
||||
Bank of America 300 n
|
||||
|
||||
# 二、知名中概股(互联网、新能源、金融、医药龙头)
|
||||
阿里巴巴 350 n
|
||||
Alibaba 340 n
|
||||
拼多多 340 n
|
||||
PDD 330 n
|
||||
蔚来汽车 330 n
|
||||
NIO 320 n
|
||||
理想汽车 330 n
|
||||
LI 320 n
|
||||
腾讯音乐 320 n
|
||||
TME 310 n
|
||||
唯品会 310 n
|
||||
VIPS 300 n
|
||||
富途控股 310 n
|
||||
FUTU 300 n
|
||||
老虎证券 310 n
|
||||
TIGR 300 n
|
||||
万物新生 300 n
|
||||
RERE 290 n
|
||||
涂鸦智能 300 n
|
||||
TUYA 290 n
|
||||
百济神州 320 n
|
||||
BeiGene 310 n
|
||||
百度集团 340 n
|
||||
Baidu 330 n
|
||||
文远知行 300 n
|
||||
WRD 290 n
|
||||
贝壳 310 n
|
||||
KE 300 n
|
||||
新氧 300 n
|
||||
SY 290 n
|
||||
京东 340 n
|
||||
JD.com 330 n
|
||||
京东物流 320 n
|
||||
JD Logistics 310 n
|
||||
腾讯控股 350 n
|
||||
Tencent Holdings 340 n
|
||||
美团 340 n
|
||||
Meituan 330 n
|
||||
小米集团 340 n
|
||||
Xiaomi Group 330 n
|
||||
快手 330 n
|
||||
Kuaishou 320 n
|
||||
字节跳动 340 n
|
||||
ByteDance 330 n
|
||||
滴滴 330 n
|
||||
DiDi 320 n
|
||||
携程 320 n
|
||||
Ctrip 310 n
|
||||
去哪儿 310 n
|
||||
Qunar 300 n
|
||||
同程旅行 300 n
|
||||
LY.com 290 n
|
||||
途牛 300 n
|
||||
Tuniu 290 n
|
||||
哔哩哔哩 320 n
|
||||
Bilibili 310 n
|
||||
爱奇艺 320 n
|
||||
iQiyi 310 n
|
||||
优酷 310 n
|
||||
Youku 300 n
|
||||
芒果超媒 310 n
|
||||
Mango TV 300 n
|
||||
网易 330 n
|
||||
NetEase 320 n
|
||||
新浪 320 n
|
||||
Sina 310 n
|
||||
微博 320 n
|
||||
Weibo 310 n
|
||||
知乎 310 n
|
||||
Zhihu 300 n
|
||||
小红书 310 n
|
||||
Xiaohongshu 300 n
|
||||
商汤科技 310 n
|
||||
SenseTime 300 n
|
||||
旷视科技 300 n
|
||||
Megvii 290 n
|
||||
云从科技 300 n
|
||||
Cloudwalk 290 n
|
||||
依图科技 300 n
|
||||
Yitu 290 n
|
||||
药明康德 320 n
|
||||
WuXi AppTec 310 n
|
||||
药明生物 320 n
|
||||
WuXi Biologics 310 n
|
||||
康希诺 310 n
|
||||
CanSino Biologics 300 n
|
||||
智飞生物 310 n
|
||||
Innovax 300 n
|
||||
宁德时代 350 n
|
||||
CATL 340 n
|
||||
比亚迪 340 n
|
||||
BYD 330 n
|
||||
小鹏汽车 330 n
|
||||
Xpeng 320 n
|
||||
哪吒汽车 310 n
|
||||
Nezha Auto 300 n
|
||||
零跑汽车 310 n
|
||||
Leapmotor 300 n
|
||||
极氪 310 n
|
||||
ZEEKR 300 n
|
||||
岚图汽车 300 n
|
||||
VOYAH 290 n
|
||||
华为 350 n
|
||||
Huawei 340 n
|
||||
荣耀 330 n
|
||||
Honor 320 n
|
||||
OPPO 330 n
|
||||
vivo 330 n
|
||||
一加 310 n
|
||||
OnePlus 300 n
|
||||
真我 310 n
|
||||
realme 300 n
|
||||
传音控股 310 n
|
||||
Transsion 300 n
|
||||
止损委托 330 n
|
||||
26
backend/data/data/dict/user.txt
Normal file
26
backend/data/data/dict/user.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
公司 0.1 n
|
||||
国家 0.1 n
|
||||
国际 0.1 n
|
||||
会议 0.1 n
|
||||
市场 0.1 n
|
||||
经济 0.1 n
|
||||
技术 0.1 n
|
||||
记者 0.1 n
|
||||
时间 0.1 n
|
||||
项目 0.1 n
|
||||
问题 0.1 n
|
||||
企业 0.1 n
|
||||
财联社 0.1 n
|
||||
上涨 0.1 v
|
||||
下跌 0.1 v
|
||||
期货 0.1 n
|
||||
跌幅 0.1 n
|
||||
跌超 0.1 adj
|
||||
股票 0.1 n
|
||||
冰雪旅游 500 n
|
||||
特高压 500 n
|
||||
跨境电商 500 n
|
||||
俄乌冲突 400 n
|
||||
新能源汽车 500 n
|
||||
机器人 500 n
|
||||
具身智能 500 n
|
||||
@@ -13,11 +13,14 @@ import (
|
||||
"strings"
|
||||
"unicode"
|
||||
|
||||
"github.com/duke-git/lancet/v2/convertor"
|
||||
"github.com/duke-git/lancet/v2/fileutil"
|
||||
"github.com/duke-git/lancet/v2/strutil"
|
||||
"github.com/go-ego/gse"
|
||||
)
|
||||
|
||||
const basefreq float64 = 100
|
||||
|
||||
// 金融情感词典,包含股票市场相关的专业词汇
|
||||
var (
|
||||
seg gse.Segmenter
|
||||
@@ -30,7 +33,7 @@ var (
|
||||
"复苏": 2.0, "突破": 2.0, "创新高": 3.0, "回暖": 1.5, "上扬": 1.5,
|
||||
"利好消息": 3.0, "收益增长": 2.5, "利润增长": 2.5, "业绩优异": 2.5,
|
||||
"潜力股": 2.0, "绩优股": 2.0, "强势": 1.5, "走高": 1.5, "攀升": 1.5,
|
||||
"大涨": 2.5, "飙升": 3.0, "井喷": 3.0, "爆发": 2.5, "暴涨": 3.0,
|
||||
"大涨": 2.5, "飙升": 3.0, "井喷": 3.0, "暴涨": 3.0,
|
||||
}
|
||||
|
||||
// 负面金融词汇及其权重
|
||||
@@ -42,6 +45,7 @@ var (
|
||||
"利空消息": 3.0, "收益下降": 2.5, "利润下滑": 2.5, "业绩不佳": 2.5,
|
||||
"垃圾股": 2.0, "风险股": 2.0, "弱势": 1.5, "走低": 1.5, "缩量": 2.5,
|
||||
"大跌": 2.5, "暴跌": 3.0, "崩盘": 3.0, "跳水": 3.0, "重挫": 3.0, "跌超": 2.5, "跌逾": 2.5,
|
||||
"被抓": 3.0, "被抓捕": 3.0,
|
||||
}
|
||||
|
||||
// 否定词,用于反转情感极性
|
||||
@@ -53,7 +57,7 @@ var (
|
||||
degreeWords = map[string]float64{
|
||||
"非常": 1.8, "极其": 2.2, "太": 1.8, "很": 1.5,
|
||||
"比较": 0.8, "稍微": 0.6, "有点": 0.7, "显著": 1.5,
|
||||
"大幅": 1.8, "急剧": 2.0, "轻微": 0.6, "小幅": 0.7, "逾": 1.8,
|
||||
"大幅": 1.8, "急剧": 2.0, "轻微": 0.6, "小幅": 0.7, "逾": 1.8, "超": 1.8,
|
||||
}
|
||||
|
||||
// 转折词,用于识别情感转折
|
||||
@@ -69,22 +73,24 @@ var baseDict string
|
||||
var zhDict string
|
||||
|
||||
func InitAnalyzeSentiment() {
|
||||
logger.SugaredLogger.Infof("初始化词典库路径:%s", fileutil.CurrentPath())
|
||||
//加载默认词典
|
||||
err := seg.LoadDictEmbed(zhDict)
|
||||
err = seg.LoadDictEmbed(baseDict)
|
||||
//err := seg.LoadDictEmbed()
|
||||
err := seg.LoadDictEmbed(baseDict)
|
||||
if err != nil {
|
||||
logger.SugaredLogger.Error(err.Error())
|
||||
} else {
|
||||
logger.SugaredLogger.Info("加载默认词典成功")
|
||||
}
|
||||
seg.CalcToken()
|
||||
|
||||
stocks := &[]StockBasic{}
|
||||
db.Dao.Model(&StockBasic{}).Find(stocks)
|
||||
for _, stock := range *stocks {
|
||||
if strutil.Trim(stock.Name) == "" {
|
||||
continue
|
||||
}
|
||||
err := seg.AddToken(stock.Name, 188888, "n")
|
||||
err := seg.AddToken(stock.Name, basefreq+500, "n")
|
||||
if strutil.Trim(stock.BKName) != "" {
|
||||
err = seg.AddToken(stock.BKName, 188888, "n")
|
||||
err = seg.AddToken(stock.BKName, basefreq+500, "n")
|
||||
}
|
||||
if err != nil {
|
||||
logger.SugaredLogger.Errorf("添加%s失败:%s", stock.Name, err.Error())
|
||||
@@ -96,9 +102,9 @@ func InitAnalyzeSentiment() {
|
||||
if strutil.Trim(stock.Name) == "" {
|
||||
continue
|
||||
}
|
||||
err := seg.AddToken(stock.Name, 188888, "n")
|
||||
err := seg.AddToken(stock.Name, basefreq+500, "n")
|
||||
if strutil.Trim(stock.BKName) != "" {
|
||||
err = seg.AddToken(stock.BKName, 188888, "n")
|
||||
err = seg.AddToken(stock.BKName, basefreq+500, "n")
|
||||
}
|
||||
if err != nil {
|
||||
logger.SugaredLogger.Errorf("添加%s失败:%s", stock.Name, err.Error())
|
||||
@@ -115,13 +121,45 @@ func InitAnalyzeSentiment() {
|
||||
tags := &[]models.Tags{}
|
||||
db.Dao.Model(&models.Tags{}).Find(tags)
|
||||
for _, tag := range *tags {
|
||||
err := seg.AddToken(tag.Name, 188888, "n")
|
||||
err := seg.AddToken(tag.Name, basefreq, "n")
|
||||
if err != nil {
|
||||
logger.SugaredLogger.Errorf("添加%s失败:%s", tag.Name, err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
logger.SugaredLogger.Info("加载词典成功")
|
||||
seg.CalcToken()
|
||||
//加载用户自定义词典 先判断用户词典是否存在
|
||||
if fileutil.IsExist("data/dict/user.txt") {
|
||||
lines, err := fileutil.ReadFileByLine("data/dict/user.txt")
|
||||
if err != nil {
|
||||
logger.SugaredLogger.Error(err.Error())
|
||||
return
|
||||
}
|
||||
for _, line := range lines {
|
||||
if len(line) == 0 || line[0] == '#' {
|
||||
continue
|
||||
}
|
||||
k := strutil.SplitAndTrim(line, " ")
|
||||
switch len(k) {
|
||||
case 1:
|
||||
err = seg.ReAddToken(k[0], 100)
|
||||
case 2:
|
||||
freq, _ := convertor.ToFloat(k[1])
|
||||
err = seg.ReAddToken(k[0], freq)
|
||||
case 3:
|
||||
freq, _ := convertor.ToFloat(k[1])
|
||||
err = seg.ReAddToken(k[0], freq, k[2])
|
||||
default:
|
||||
logger.SugaredLogger.Errorf("用户词典格式错误:%s", line)
|
||||
}
|
||||
logger.SugaredLogger.Infof("添加用户词典[%s]成功", line)
|
||||
}
|
||||
if err != nil {
|
||||
logger.SugaredLogger.Error(err.Error())
|
||||
} else {
|
||||
logger.SugaredLogger.Infof("加载用户词典成功")
|
||||
}
|
||||
}
|
||||
seg.CalcToken()
|
||||
}
|
||||
|
||||
// WordFreqWithWeight 词频统计结果,包含权重信息
|
||||
@@ -129,14 +167,17 @@ type WordFreqWithWeight struct {
|
||||
Word string
|
||||
Frequency int
|
||||
Weight float64
|
||||
Score float64
|
||||
}
|
||||
|
||||
// getWordWeight 获取词汇权重
|
||||
func getWordWeight(word string) float64 {
|
||||
// 从分词器获取词汇权重
|
||||
freq, pos, _ := seg.Find(word)
|
||||
if pos == "n" {
|
||||
return freq
|
||||
|
||||
freq, pos, ok := seg.Dictionary().Find([]byte(word))
|
||||
if ok {
|
||||
logger.SugaredLogger.Infof("获取%s的权重:%f,pos:%s,ok:%v", word, freq, pos, ok)
|
||||
return basefreq + freq
|
||||
}
|
||||
return 0
|
||||
}
|
||||
@@ -149,13 +190,11 @@ func SortByWeightAndFrequency(frequencies map[string]WordFreqWithWeight) []WordF
|
||||
freqSlice = append(freqSlice, freq)
|
||||
}
|
||||
|
||||
// 按权重降序排列,如果权重相同则按频次降序排列
|
||||
// 按权重*频次降序排列
|
||||
sort.Slice(freqSlice, func(i, j int) bool {
|
||||
if freqSlice[i].Weight != freqSlice[j].Weight {
|
||||
return freqSlice[i].Weight > freqSlice[j].Weight // 权重高的排前面
|
||||
}
|
||||
return freqSlice[i].Frequency > freqSlice[j].Frequency // 权重相同时频次高的排前面
|
||||
return freqSlice[i].Weight*float64(freqSlice[i].Frequency) > freqSlice[j].Weight*float64(freqSlice[j].Frequency)
|
||||
})
|
||||
logger.SugaredLogger.Infof("排序后的结果:%v", freqSlice)
|
||||
|
||||
return freqSlice
|
||||
}
|
||||
@@ -228,11 +267,12 @@ func countWordFrequencyWithWeight(text string) map[string]WordFreqWithWeight {
|
||||
// 构建包含权重的结果
|
||||
for word, frequency := range wordCount {
|
||||
weight := getWordWeight(word)
|
||||
if weight > 100 {
|
||||
if weight > 200 {
|
||||
freqMap[word] = WordFreqWithWeight{
|
||||
Word: word,
|
||||
Frequency: frequency,
|
||||
Weight: weight,
|
||||
Score: float64(frequency) * weight,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,12 +25,13 @@ func TestAnalyzeSentiment(t *testing.T) {
|
||||
//}
|
||||
|
||||
text := messageText.String()
|
||||
text = " 【周六你需要知道的隔夜全球要闻:美联储鸽声重振 美股走势回稳】 1、纽约联储行长威廉姆斯表示,随着劳动力市场走软,美联储近期内仍有再次降息的空间。 2、美联储理事斯蒂芬·米兰表示,自上次联邦公开市场委员会(FOMC)会议以来的经济数据应“促使人们偏向鸽派立场”。 3、波士顿联邦储备银行行长柯林斯表示,由于通胀可能在一段时间内保持高位,维持利率不变“目前合适”。 4、据CME“美联储观察”,截至北京时间11月22日6时30分,美联储12月降息25个基点的概率为69.4%,维持利率不变的概率为30.6%。 5、美国劳工统计局表示,11月CPI报告将于12月18日发布,同时取消了10月CPI报告发布,表示无法追溯采集政府停摆期间未能收集的部分数据。 6、俄罗斯总统普京表示,已收到美提出解决俄乌冲突的计划,俄罗斯愿意进行和平谈判。美国总统特朗普表示,他认为27日是乌克兰接受美国支持的和平计划的最后期限。 7、美联储高官鸽派言论提振市场情绪,美股三大指数收盘集体上涨,道琼斯指数涨1.08%,标普500指数涨0.98%,纳斯达克综合指数涨0.88%。甲骨文跌超5%,英伟达跌超1%。纳指本周累计跌2.74%,标普500指数累跌1.95%,道指累跌1.91%。英伟达本周累跌5.9%。 8、热门中概股多数上涨,纳斯达克中国金龙指数收涨1.23%。蔚来涨超3%,哔哩哔哩、理想汽车涨超2%,京东、小鹏汽车涨超1%。 9、国际油价下跌,交易员评估乌克兰与俄罗斯可能达成和平协议的前景。WTI 1月期货下跌1.6%,结算价报每桶58.06美元,为过去五个交易日中第四次下跌。布伦特1月期货下跌1.3%,结算价报每桶62.56美元。 10、美联储延长压力测试改进方案征询期,为银行反馈提供更多时间。 11、由于美国人对个人财务状况的看法恶化,美国消费者信心在11月跌至接近纪录最低水平;密歇根大学数据显示,11月消费者信心指数降至51,10月为53.6。 12、日本央行政策委员会委员Kazuyuki Masu表示,日本央行接近作出加息决定。 13、穆迪将意大利信用评级从BAA3上调至BAA2,展望稳定。\n"
|
||||
|
||||
//text = " 【周六你需要知道的隔夜全球要闻:美联储鸽声重振 美股走势回稳】 1、纽约联储行长威廉姆斯表示,随着劳动力市场走软,美联储近期内仍有再次降息的空间。 2、美联储理事斯蒂芬·米兰表示,自上次联邦公开市场委员会(FOMC)会议以来的经济数据应“促使人们偏向鸽派立场”。 3、波士顿联邦储备银行行长柯林斯表示,由于通胀可能在一段时间内保持高位,维持利率不变“目前合适”。 4、据CME“美联储观察”,截至北京时间11月22日6时30分,美联储12月降息25个基点的概率为69.4%,维持利率不变的概率为30.6%。 5、美国劳工统计局表示,11月CPI报告将于12月18日发布,同时取消了10月CPI报告发布,表示无法追溯采集政府停摆期间未能收集的部分数据。 6、俄罗斯总统普京表示,已收到美提出解决俄乌冲突的计划,俄罗斯愿意进行和平谈判。美国总统特朗普表示,他认为27日是乌克兰接受美国支持的和平计划的最后期限。 7、美联储高官鸽派言论提振市场情绪,美股三大指数收盘集体上涨,道琼斯指数涨1.08%,标普500指数涨0.98%,纳斯达克综合指数涨0.88%。甲骨文跌超5%,英伟达跌超1%。纳指本周累计跌2.74%,标普500指数累跌1.95%,道指累跌1.91%。英伟达本周累跌5.9%。 8、热门中概股多数上涨,纳斯达克中国金龙指数收涨1.23%。蔚来涨超3%,哔哩哔哩、理想汽车涨超2%,京东、小鹏汽车涨超1%。 9、国际油价下跌,交易员评估乌克兰与俄罗斯可能达成和平协议的前景。WTI 1月期货下跌1.6%,结算价报每桶58.06美元,为过去五个交易日中第四次下跌。布伦特1月期货下跌1.3%,结算价报每桶62.56美元。 10、美联储延长压力测试改进方案征询期,为银行反馈提供更多时间。 11、由于美国人对个人财务状况的看法恶化,美国消费者信心在11月跌至接近纪录最低水平;密歇根大学数据显示,11月消费者信心指数降至51,10月为53.6。 12、日本央行政策委员会委员Kazuyuki Masu表示,日本央行接近作出加息决定。 13、穆迪将意大利信用评级从BAA3上调至BAA2,展望稳定。\n"
|
||||
text = "财联社电:英伟达周五冲高回落,股价涨幅收于1%,市场普遍认为其走势疲软"
|
||||
text = "【本轮巴以冲突已致加沙地带69733人死亡】财联社11月22日电,当地时间22日下午,以军对加沙城西部一辆汽车发动空袭,已造成5人死亡,多人受伤。自2023年10月7日巴以新一轮大规模冲突爆发以来,以色列对加沙地带的袭击已造成69733人死亡、170863人受伤。"
|
||||
//text = "【牛肉加工亏损 美国泰森公司关停缩减相关业务】财联社11月22日电,受牛肉加工业务亏损影响,当地时间21日,美国泰森食品公司发布公告称,将关闭位于内布拉斯加州的一家大型牛肉加工厂,还计划缩小得克萨斯州一家牛肉加工厂的生产规模。根据泰森食品公司的公告,被关闭的这家工厂位于内布拉斯加州列克星敦,日均可宰杀并处理大约5000头牛,约占全美日均牛肉屠宰数量的4.8%。与此同时,公司还计划缩小得克萨斯州一家牛肉加工厂的生产规模,这家工厂每天大约可屠宰6000头牛。据悉,泰森此次业务调整影响两个工厂大约5000个工作岗位。《华尔街日报》报道称,泰森是美国四大肉类加工公司中首家关闭主要牛肉加工厂的公司,其最新财报显示,2025财年牛肉加工是唯一亏损的业务部门,调整后的营业亏损为4.26亿美元。"
|
||||
// 分析情感
|
||||
words := splitWords(text)
|
||||
fmt.Println(strings.Join(words, " "))
|
||||
result := AnalyzeSentiment(text)
|
||||
result, frequencies := AnalyzeSentimentWithFreqWeight(text)
|
||||
// 过滤标点符号和分隔符
|
||||
cleanFrequencies := FilterPunctuationAndSeparators(frequencies)
|
||||
|
||||
@@ -53,6 +53,7 @@ const containerRef = ref({})
|
||||
const realtimeProfit = ref(0)
|
||||
const telegraph = ref([])
|
||||
const groupList = ref([])
|
||||
const officialStatement= ref("")
|
||||
const menuOptions = ref([
|
||||
{
|
||||
label: () =>
|
||||
@@ -599,6 +600,7 @@ onBeforeMount(() => {
|
||||
GetVersionInfo().then(result => {
|
||||
if(result.officialStatement){
|
||||
content.value = result.officialStatement+"\n\n"+content.value
|
||||
officialStatement.value = result.officialStatement
|
||||
}
|
||||
})
|
||||
|
||||
@@ -669,7 +671,7 @@ onBeforeMount(() => {
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
WindowSetTitle("go-stock:AI赋能股票分析✨ 未经授权,禁止商业目的! [数据来源于网络,仅供参考;投资有风险,入市需谨慎]")
|
||||
WindowSetTitle("go-stock:AI赋能股票分析✨ "+officialStatement.value+" 未经授权,禁止商业目的! [数据来源于网络,仅供参考;投资有风险,入市需谨慎]")
|
||||
contentStyle.value = "max-height: calc(92vh);overflow: hidden"
|
||||
GetConfig().then((res) => {
|
||||
if (res.enableNews) {
|
||||
|
||||
@@ -1,9 +1,197 @@
|
||||
<script setup>
|
||||
|
||||
import {AnalyzeSentimentWithFreqWeight} from "../../wailsjs/go/main/App";
|
||||
import * as echarts from "echarts";
|
||||
import {onMounted,onUnmounted, ref} from "vue";
|
||||
import _ from "lodash";
|
||||
const { name,darkTheme,kDays ,chartHeight} = defineProps({
|
||||
name: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
kDays: {
|
||||
type: Number,
|
||||
default: 14
|
||||
},
|
||||
chartHeight: {
|
||||
type: Number,
|
||||
default: 500
|
||||
},
|
||||
darkTheme: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
const chartRef = ref(null);
|
||||
const gaugeChartRef = ref(null);
|
||||
let handleChartInterval=null
|
||||
onMounted(() => {
|
||||
handleChart()
|
||||
handleChartInterval=setInterval(function () {
|
||||
handleChart()
|
||||
}, 1000 * 60)
|
||||
})
|
||||
|
||||
onUnmounted(()=>{
|
||||
clearInterval(handleChartInterval)
|
||||
})
|
||||
|
||||
function handleChart(){
|
||||
const formatUtil = echarts.format;
|
||||
AnalyzeSentimentWithFreqWeight("").then((res) => {
|
||||
console.log(res)
|
||||
const treemapchart = echarts.init(chartRef.value);
|
||||
const gaugeChart=echarts.init(gaugeChartRef.value);
|
||||
let option = {
|
||||
title: {
|
||||
text:name,
|
||||
left: 'center'
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
tooltip: {
|
||||
formatter: function (info) {
|
||||
var value = info.value;
|
||||
var frequency = info.data.frequency;
|
||||
var weight = info.data.weight;
|
||||
return [
|
||||
'<div class="tooltip-title">' + info.name+ '</div>',
|
||||
'热度: ' + formatUtil.addCommas(value) + '',
|
||||
'<div class="tooltip-title">频次: ' + formatUtil.addCommas(frequency)+ '</div>',
|
||||
'<div class="tooltip-title">权重: ' + formatUtil.addCommas(weight)+ '</div>',
|
||||
].join('');
|
||||
}
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'treemap',
|
||||
left: '0',
|
||||
top: '0',
|
||||
right: '0',
|
||||
bottom: '0',
|
||||
tooltip: {
|
||||
show: true
|
||||
},
|
||||
data: res['frequencies'].map(item => ({
|
||||
name: item.Word,
|
||||
// value: item.Frequency,
|
||||
// value: item.Weight,
|
||||
frequency: item.Frequency,
|
||||
weight: item.Weight,
|
||||
value: item.Score,
|
||||
}))
|
||||
}
|
||||
]
|
||||
};
|
||||
treemapchart.setOption(option);
|
||||
|
||||
|
||||
|
||||
let option2 = {
|
||||
series: [
|
||||
{
|
||||
type: 'gauge',
|
||||
startAngle: 180,
|
||||
endAngle: 0,
|
||||
center: ['50%', '75%'],
|
||||
radius: '90%',
|
||||
min: 0,
|
||||
max: 1,
|
||||
splitNumber: 8,
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
width: 6,
|
||||
color: [
|
||||
// [0.25, '#FF6E76'],
|
||||
// [0.5, '#FDDD60'],
|
||||
// [0.75, '#58D9F9'],
|
||||
// [1, '#7CFFB2'],
|
||||
|
||||
[0.25, '#02f423'],
|
||||
[0.5, '#58D9F9'],
|
||||
[0.75, 'rgb(241,115,14)'],
|
||||
[1, '#fa242f']
|
||||
]
|
||||
}
|
||||
},
|
||||
pointer: {
|
||||
icon: 'path://M12.8,0.7l12,40.1H0.7L12.8,0.7z',
|
||||
length: '12%',
|
||||
width: 20,
|
||||
offsetCenter: [0, '-60%'],
|
||||
itemStyle: {
|
||||
color: 'auto'
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
length: 12,
|
||||
lineStyle: {
|
||||
color: 'auto',
|
||||
width: 2
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
length: 20,
|
||||
lineStyle: {
|
||||
color: 'auto',
|
||||
width: 5
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#464646',
|
||||
fontSize: 20,
|
||||
distance: -60,
|
||||
rotate: 'tangential',
|
||||
formatter: function (value) {
|
||||
if (value === 0.875) {
|
||||
return '极热';
|
||||
} else if (value === 0.625) {
|
||||
return '乐观';
|
||||
} else if (value === 0.375) {
|
||||
return '谨慎';
|
||||
} else if (value === 0.125) {
|
||||
return '冰点';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
title: {
|
||||
offsetCenter: [0, '-10%'],
|
||||
fontSize: 20
|
||||
},
|
||||
detail: {
|
||||
fontSize: 30,
|
||||
offsetCenter: [0, '-35%'],
|
||||
valueAnimation: true,
|
||||
formatter: function (value) {
|
||||
return value.toFixed(2) + '';
|
||||
},
|
||||
color: 'inherit'
|
||||
},
|
||||
data: [
|
||||
{
|
||||
value: res.result.Score/100.0,
|
||||
name: '市场情绪'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
gaugeChart.setOption(option2);
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
<n-grid :cols="24" :y-gap="0">
|
||||
<n-gi span="6">
|
||||
<div ref="gaugeChartRef" style="width: 100%;height: auto;--wails-draggable:no-drag" :style="{height:chartHeight+'px'}" ></div>
|
||||
</n-gi>
|
||||
<n-gi span="18">
|
||||
<div ref="chartRef" style="width: 100%;height: auto;--wails-draggable:no-drag" :style="{height:chartHeight+'px'}" ></div>
|
||||
</n-gi>
|
||||
</n-grid>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
SaveAsMarkdown,
|
||||
ShareAnalysis,
|
||||
SummaryStockNews,
|
||||
GetAiConfigs, AnalyzeSentimentWithFreqWeight
|
||||
GetAiConfigs,
|
||||
} from "../../wailsjs/go/main/App";
|
||||
import {EventsOff, EventsOn} from "../../wailsjs/runtime";
|
||||
import NewsList from "./newsList.vue";
|
||||
@@ -127,7 +127,6 @@ onBeforeMount(() => {
|
||||
|
||||
})
|
||||
onMounted(() => {
|
||||
Analyze() // 页面显示
|
||||
})
|
||||
|
||||
|
||||
@@ -155,7 +154,6 @@ EventsOn("newTelegraph", (data) => {
|
||||
telegraphList.value.pop()
|
||||
}
|
||||
telegraphList.value.unshift(...data)
|
||||
Analyze() // 页面显示
|
||||
}
|
||||
})
|
||||
EventsOn("newSinaNews", (data) => {
|
||||
@@ -164,7 +162,6 @@ EventsOn("newSinaNews", (data) => {
|
||||
sinaNewsList.value.pop()
|
||||
}
|
||||
sinaNewsList.value.unshift(...data)
|
||||
Analyze() // 页面显示
|
||||
}
|
||||
})
|
||||
|
||||
@@ -173,32 +170,6 @@ window.onresize = () => {
|
||||
panelHeight.value = window.innerHeight - 240
|
||||
}
|
||||
|
||||
function Analyze(){
|
||||
console.log("treemapchart:",treemapchart)
|
||||
console.log("treemapRef:",treemapRef.value)
|
||||
treemapchart = echarts.init(treemapRef.value);
|
||||
treemapchart.showLoading()
|
||||
AnalyzeSentimentWithFreqWeight("").then((res) => {
|
||||
|
||||
let option = {
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'treemap',
|
||||
data: res['frequencies'].slice(0, 20).map(item => ({
|
||||
name: item.Word,
|
||||
value: item.Frequency,
|
||||
}))
|
||||
}
|
||||
]
|
||||
};
|
||||
treemapchart.setOption(option);
|
||||
treemapchart.hideLoading()
|
||||
})
|
||||
}
|
||||
|
||||
function getAreaName(code) {
|
||||
switch (code) {
|
||||
case "america":
|
||||
@@ -273,9 +244,6 @@ function getAiSummary() {
|
||||
function updateTab(name) {
|
||||
summaryBTN.value = (name === "市场快讯");
|
||||
nowTab.value = name
|
||||
if (name === "市场快讯") {
|
||||
Analyze()
|
||||
}
|
||||
}
|
||||
|
||||
EventsOn("summaryStockNews", async (msg) => {
|
||||
@@ -366,7 +334,7 @@ function ReFlesh(source) {
|
||||
<n-tab-pane name="市场快讯" tab="市场快讯">
|
||||
<n-grid :cols="1" :y-gap="0">
|
||||
<n-gi>
|
||||
<div ref="treemapRef" style="width: 100%;height: 300px;" ></div>
|
||||
<AnalyzeMartket :dark-theme="darkTheme" :chart-height="300" :kDays="1" :name="'最近24小时热词'" />
|
||||
</n-gi>
|
||||
<n-gi>
|
||||
<n-grid :cols="2" :y-gap="0">
|
||||
|
||||
4
main.go
4
main.go
@@ -125,7 +125,7 @@ func main() {
|
||||
|
||||
// Create application with options
|
||||
err = wails.Run(&options.App{
|
||||
Title: "go-stock:AI赋能股票分析✨",
|
||||
Title: "go-stock:AI赋能股票分析✨ " + OFFICIAL_STATEMENT,
|
||||
Width: width * 4 / 5,
|
||||
Height: 920,
|
||||
MinWidth: minWidth,
|
||||
@@ -150,7 +150,7 @@ func main() {
|
||||
OnShutdown: app.shutdown,
|
||||
WindowStartState: options.Normal,
|
||||
SingleInstanceLock: &options.SingleInstanceLock{
|
||||
UniqueId: "go-stock-dev",
|
||||
UniqueId: "go-stock",
|
||||
OnSecondInstanceLaunch: OnSecondInstanceLaunch,
|
||||
},
|
||||
Bind: []interface{}{
|
||||
|
||||
Reference in New Issue
Block a user