4. 金融文本表示
在金融NLP项目中,模型能否理解“降准”“缩表”“北向资金”这类术语,取决于文本表示的质量。文本表示把非结构化的金融文本转成向量,是特征工程与深度模型之间的桥梁。本节从稀疏表示讲到稠密表示,再落到金融领域预训练词向量,帮助你建立完整的选型判断。
一、核心原理:从离散符号到语义向量
文本表示的核心问题是:如何让“利率”和“利息”在向量空间中更接近,而“利率”和“天气”更远。稀疏表示把词视为独立符号,稠密表示则通过上下文学习语义。
- 词袋模型(BoW):忽略词序,统计词频。实现简单,但维度高、稀疏,且无法区分“不涨”和“涨”。
- TF-IDF:在词频基础上乘以逆文档频率,降低“公司”“公告”等高频通用词权重,突出“商誉减值”“股权质押”等区分性词。
- Word2Vec:通过Skip-gram或CBOW学习稠密向量,能捕捉“央行—货币政策”这类语义关系,但词向量静态,无法处理一词多义。
- GloVe:基于全局共现矩阵分解,兼顾全局统计与局部上下文,在语料充足时表现稳定。
- 金融领域预训练词向量:在研报、公告、新闻、股吧等金融语料上训练,能更好表达“多头”“空头”“回撤”等专业语义。
选型口诀:小数据、强解释优先TF-IDF;语义相似、下游深度学习优先Word2Vec/GloVe;金融术语多、歧义强优先领域预训练词向量。
二、方法流程:从原始文本到可用向量
以“某银行发布年报,净利润同比增长5%”为例,完整流程如下:
- 清洗:去除HTML标签、页眉页脚、免责声明,统一全半角与数字格式。
- 分词:金融场景建议使用领域词典,如jieba加载自定义词典,避免“北向资金”被切碎。
- 去停用词:保留“不”“未”等否定词,金融情感分析中否定词极关键。
- 向量化:按任务选择BoW、TF-IDF或预训练词向量。
- 下游建模:分类、聚类、相似度检索或作为深度模型嵌入层。
import jieba
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
jieba.load_userdict("finance_dict.txt")
corpus = [
"央行宣布全面降准0.5个百分点",
"某银行年报净利润同比增长5%",
"北向资金今日净流入超50亿元"
]
docs = [" ".join(jieba.cut(d)) for d in corpus]
vectorizer = TfidfVectorizer(
max_features=5000,
ngram_range=(1, 2),
min_df=1,
sublinear_tf=True
)
X = vectorizer.fit_transform(docs)
print(X.shape)
print(vectorizer.get_feature_names_out()[:10])
若使用Word2Vec,可用gensim在金融语料上训练:
from gensim.models import Word2Vec
sentences = [jieba.lcut(d) for d in corpus]
model = Word2Vec(
sentences,
vector_size=128,
window=5,
min_count=1,
sg=1,
epochs=20,
workers=4
)
print(model.wv.most_similar("降准", topn=5))
三、案例/场景:不同任务如何选表示
| 任务场景 | 推荐表示 | 理由 |
|---|---|---|
| 公告风险分类 | TF-IDF + 线性模型 | 样本少、可解释性强,关键词权重直观 |
| 研报相似度检索 | 金融预训练词向量平均池化 | 能匹配“估值修复”与“价值重估”等近义表达 |
| 股吧情感分析 | Word2Vec/GloVe + BiLSTM | 捕捉上下文与否定,适合短文本情感 |
| 事件抽取 | 领域预训练词向量 + BERT微调 | 术语密集,需强语义与实体边界 |
例如在“商誉减值”风险识别中,TF-IDF能快速定位“减值”“亏损”“计提”等词;但若文本写的是“资产质量承压”,TF-IDF可能漏判,而金融词向量能把“承压”与“风险”拉近。
四、误区与复盘
误区1:把停用词表直接套用通用表,删掉“不”“无”“未”,导致情感极性反转。
误区2:在极小语料上训练Word2Vec,得到的向量不稳定,近义词检索结果随机。
误区3:TF-IDF的max_features设得过大,噪声词进入特征,模型过拟合。
误区4:直接使用通用预训练词向量处理金融文本,“苹果”可能被理解为水果而非公司。
复盘建议:先建立金融领域词典与停用词表;用TF-IDF做基线并观察Top权重词是否符合业务直觉;再引入预训练词向量,通过相似词抽查验证语义质量;最后在下游任务上对比F1与召回,避免只凭感觉选型。
掌握这五类表示后,你就能根据数据规模、任务类型与解释需求做出合理选择,为后续金融NLP建模打下坚实基础。