1. 项目背景与核心价值
股票名称相似度分析是一个看似简单但极具实际价值的金融数据处理课题。在A股市场三十多年的发展历程中,上市公司数量从最初的"老八股"增长到如今的数千家,股票命名规则也经历了多次演变。这个项目通过量化分析1990-2025年间上市公司股票名称的相似程度,至少可以解决三个实际问题:
首先,帮助投资者规避"李鬼"股票带来的混淆风险。市场上经常出现名称高度相似的股票(如"中国平安"与"平安银行"),容易导致交易失误。其次,为监管机构提供命名规范优化的数据支持,减少因名称雷同造成的市场混乱。最后,这项研究还能揭示上市公司命名策略的演变规律,反映不同时期的市场特征和企业文化。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案设计
2.1 数据获取与清洗
完整的历史股票数据需要从多个权威渠道整合:
- 使用Tushare Pro API获取1990-2023年上市公司基础信息
- 通过CSMAR数据库补充早期缺失数据
- 对2024-2025年数据采用滚动预测方法(基于IPO排队企业名单和命名规律)
数据清洗要特别注意:
- 处理特殊字符(如*ST、退市标记)
- 统一公司简称和全称的对应关系
- 识别并排除B股、H股等特殊类别
2.2 相似度算法选型
经过实测对比,我们采用混合相似度计算模型:
-
字符级相似度(权重40%)
- 编辑距离(Levenshtein Distance)
- Jaro-Winkler距离(对前缀更敏感)
-
语义级相似度(权重60%)
- 基于BERT的中文词向量
- 行业关键词特征提取(使用TF-IDF加权)
特别注意:金融行业特有词汇需要自定义词库,比如"证券"与"银行"虽属同大类但应区分
2.3 动态权重调整机制
考虑到不同时期命名习惯的差异,我们设计了时间衰减因子:
- 1990s:侧重地域特征(如"深发展")
- 2000s:强调行业属性(如"宝钢股份")
- 2010s后:关注品牌价值(如"贵州茅台")
3. 核心实现步骤
3.1 基础环境搭建
python复制# 主要依赖库
import jieba
import pandas as pd
from transformers import BertModel
from
