Sec Bert Shape
面向金融领域的BERT变体,通过数值形态伪标记处理保持财务数据完整性
下载量 30
发布时间 : 3/2/2022
模型简介
专为金融文本设计的BERT模型,通过将数字转换为形态伪标记(如'53.2'→'[XX.X]')优化财务数值处理,适用于10-K年报等金融文档分析
模型特点
数值形态标准化
将数字统一转换为214种预定义形态标记(如'[XX.X]'),避免数字碎片化问题
金融领域预训练
基于26万份SEC 10-K年报训练,深度适配财务文本特征
多版本适配
提供基础版/数字版/形态版三种变体,满足不同场景需求
模型能力
财务文本掩码预测
金融数值形态识别
财务动词预测
数值单位推断
使用案例
财务报告分析
财务指标变化预测
预测年报中销售额/利润等指标的增减趋势
在动词预测任务中准确率较基础BERT提升3倍
数值单位补全
自动补全财务数值的单位(百万/十亿等)
单位预测准确率>97%
监管文件处理
XBRL标记辅助
识别财务数值实体以辅助XBRL标记生成
相关技术已发表于ACL 2022论文
🚀 SEC-BERT
SEC-BERT是一系列适用于金融领域的BERT模型,旨在助力金融自然语言处理(NLP)研究和金融科技(FinTech)应用。
🚀 快速开始
SEC-BERT由以下模型组成:
- SEC-BERT-BASE:与BERT-BASE架构相同,在金融文档上进行训练。
- SEC-BERT-NUM:与SEC-BERT-BASE相同,但将每个数字标记替换为[NUM]伪标记,以统一方式处理所有数字表达式,避免其碎片化。
- SEC-BERT-SHAPE(本模型):与SEC-BERT-BASE相同,但将数字替换为表示数字形状的伪标记,因此(已知形状的)数字表达式不再碎片化,例如,'53.2'变为'[XX.X]','40,200.5'变为'[XX,XXX.X]'。
✨ 主要特性
预训练语料库
该模型在1993 - 2019年的260,773份10 - K文件上进行了预训练,这些文件可在美国证券交易委员会(SEC)公开获取。
预训练详情
- 我们通过在预训练语料库上从头开始训练BertWordPieceTokenizer,创建了一个包含30,000个子词的新词汇表。
- 我们使用Google BERT的GitHub仓库中提供的官方代码来训练BERT。
- 然后,我们使用Hugging Face的Transformers转换脚本,将TF检查点转换为所需格式,以便PyTorch和TF2用户能够用两行代码加载模型。
- 我们发布了一个与英文BERT - BASE模型类似的模型(12层、768隐藏层、12头、1.1亿参数)。
- 我们选择遵循相同的训练设置:进行100万步训练,批次大小为256个长度为512的序列,初始学习率为1e - 4。
- 我们能够使用由TensorFlow研究云(TRC)免费提供的单个Google Cloud TPU v3 - 8,同时还利用了GCP研究信用额度。非常感谢这两个Google项目对我们的支持!
📦 安装指南
加载预训练模型
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("nlpaueb/sec-bert-shape")
model = AutoModel.from_pretrained("nlpaueb/sec-bert-shape")
💻 使用示例
基础用法
预处理文本
import re
import spacy
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("nlpaueb/sec-bert-shape")
spacy_tokenizer = spacy.load("en_core_web_sm")
sentence = "Total net sales decreased 2% or $5.4 billion during 2019 compared to 2018."
def sec_bert_shape_preprocess(text):
tokens = [t.text for t in spacy_tokenizer(sentence)]
processed_text = []
for token in tokens:
if re.fullmatch(r"(\d+[\d,.]*)|([,.]\d+)", token):
shape = '[' + re.sub(r'\d', 'X', token) + ']'
if shape in tokenizer.additional_special_tokens:
processed_text.append(shape)
else:
processed_text.append('[NUM]')
else:
processed_text.append(token)
return ' '.join(processed_text)
tokenized_sentence = tokenizer.tokenize(sec_bert_shape_preprocess(sentence))
print(tokenized_sentence)
"""
['total', 'net', 'sales', 'decreased', '[X]', '%', 'or', '$', '[X.X]', 'billion', 'during', '[XXXX]', 'compared', 'to', '[XXXX]', '.']
"""
使用SEC - BERT变体作为语言模型
示例 | 掩码标记 |
---|---|
Total net sales [MASK] 2% or $5.4 billion during 2019 compared to 2018. | decreased |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | increased (0.221), were (0.131), are (0.103), rose (0.075), of (0.058) |
SEC - BERT - BASE | increased (0.678), decreased (0.282), declined (0.017), grew (0.016), rose (0.004) |
SEC - BERT - NUM | increased (0.753), decreased (0.211), grew (0.019), declined (0.010), rose (0.006) |
SEC - BERT - SHAPE | increased (0.747), decreased (0.214), grew (0.021), declined (0.013), rose (0.002) |
示例 | 掩码标记 |
---|---|
Total net sales decreased 2% or $5.4 [MASK] during 2019 compared to 2018. | billion |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | billion (0.841), million (0.097), trillion (0.028), ##m (0.015), ##bn (0.006) |
SEC - BERT - BASE | million (0.972), billion (0.028), millions (0.000), ##million (0.000), m (0.000) |
SEC - BERT - NUM | million (0.974), billion (0.012), , (0.010), thousand (0.003), m (0.000) |
SEC - BERT - SHAPE | million (0.978), billion (0.021), % (0.000), , (0.000), millions (0.000) |
示例 | 掩码标记 |
---|---|
Total net sales decreased [MASK]% or $5.4 billion during 2019 compared to 2018. | 2 |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | 20 (0.031), 10 (0.030), 6 (0.029), 4 (0.027), 30 (0.027) |
SEC - BERT - BASE | 13 (0.045), 12 (0.040), 11 (0.040), 14 (0.035), 10 (0.035) |
SEC - BERT - NUM | [NUM] (1.000), one (0.000), five (0.000), three (0.000), seven (0.000) |
SEC - BERT - SHAPE | [XX] (0.316), [XX.X] (0.253), [X.X] (0.237), [X] (0.188), [X.XX] (0.002) |
示例 | 掩码标记 |
---|---|
Total net sales decreased 2[MASK] or $5.4 billion during 2019 compared to 2018. | % |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | % (0.795), percent (0.174), ##fold (0.009), billion (0.004), times (0.004) |
SEC - BERT - BASE | % (0.924), percent (0.076), points (0.000), , (0.000), times (0.000) |
SEC - BERT - NUM | % (0.882), percent (0.118), million (0.000), units (0.000), bps (0.000) |
SEC - BERT - SHAPE | % (0.961), percent (0.039), bps (0.000), , (0.000), bcf (0.000) |
示例 | 掩码标记 |
---|---|
Total net sales decreased 2% or $[MASK] billion during 2019 compared to 2018. | 5.4 |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | 1 (0.074), 4 (0.045), 3 (0.044), 2 (0.037), 5 (0.034) |
SEC - BERT - BASE | 1 (0.218), 2 (0.136), 3 (0.078), 4 (0.066), 5 (0.048) |
SEC - BERT - NUM | [NUM] (1.000), l (0.000), 1 (0.000), - (0.000), 30 (0.000) |
SEC - BERT - SHAPE | [X.X] (0.787), [X.XX] (0.095), [XX.X] (0.049), [X.XXX] (0.046), [X] (0.013) |
示例 | 掩码标记 |
---|---|
Total net sales decreased 2% or $5.4 billion during [MASK] compared to 2018. | 2019 |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | 2017 (0.485), 2018 (0.169), 2016 (0.164), 2015 (0.070), 2014 (0.022) |
SEC - BERT - BASE | 2019 (0.990), 2017 (0.007), 2018 (0.003), 2020 (0.000), 2015 (0.000) |
SEC - BERT - NUM | [NUM] (1.000), as (0.000), fiscal (0.000), year (0.000), when (0.000) |
SEC - BERT - SHAPE | [XXXX] (1.000), as (0.000), year (0.000), periods (0.000), , (0.000) |
示例 | 掩码标记 |
---|---|
Total net sales decreased 2% or $5.4 billion during 2019 compared to [MASK]. | 2018 |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | 2017 (0.100), 2016 (0.097), above (0.054), inflation (0.050), previously (0.037) |
SEC - BERT - BASE | 2018 (0.999), 2019 (0.000), 2017 (0.000), 2016 (0.000), 2014 (0.000) |
SEC - BERT - NUM | [NUM] (1.000), year (0.000), last (0.000), sales (0.000), fiscal (0.000) |
SEC - BERT - SHAPE | [XXXX] (1.000), year (0.000), sales (0.000), prior (0.000), years (0.000) |
示例 | 掩码标记 |
---|---|
During 2019, the Company [MASK] $67.1 billion of its common stock and paid dividend equivalents of $14.1 billion. | repurchased |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | held (0.229), sold (0.192), acquired (0.172), owned (0.052), traded (0.033) |
SEC - BERT - BASE | repurchased (0.913), issued (0.036), purchased (0.029), redeemed (0.010), sold (0.003) |
SEC - BERT - NUM | repurchased (0.917), purchased (0.054), reacquired (0.013), issued (0.005), acquired (0.003) |
SEC - BERT - SHAPE | repurchased (0.902), purchased (0.068), issued (0.010), reacquired (0.008), redeemed (0.006) |
示例 | 掩码标记 |
---|---|
During 2019, the Company repurchased $67.1 billion of its common [MASK] and paid dividend equivalents of $14.1 billion. | stock |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | stock (0.835), assets (0.039), equity (0.025), debt (0.021), bonds (0.017) |
SEC - BERT - BASE | stock (0.857), shares (0.135), equity (0.004), units (0.002), securities (0.000) |
SEC - BERT - NUM | stock (0.842), shares (0.157), equity (0.000), securities (0.000), units (0.000) |
SEC - BERT - SHAPE | stock (0.888), shares (0.109), equity (0.001), securities (0.001), stocks (0.000) |
示例 | 掩码标记 |
---|---|
During 2019, the Company repurchased $67.1 billion of its common stock and paid [MASK] equivalents of $14.1 billion. | dividend |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | cash (0.276), net (0.128), annual (0.083), the (0.040), debt (0.027) |
SEC - BERT - BASE | dividend (0.890), cash (0.018), dividends (0.016), share (0.013), tax (0.010) |
SEC - BERT - NUM | dividend (0.735), cash (0.115), share (0.087), tax (0.025), stock (0.013) |
SEC - BERT - SHAPE | dividend (0.655), cash (0.248), dividends (0.042), share (0.019), out (0.003) |
示例 | 掩码标记 |
---|---|
During 2019, the Company repurchased $67.1 billion of its common stock and paid dividend [MASK] of $14.1 billion. | equivalents |
模型 | 预测结果(概率) |
---|---|
BERT - BASE - UNCASED | revenue (0.085), earnings (0.078), rates (0.065), amounts (0.064), proceeds (0.062) |
SEC - BERT - BASE | payments (0.790), distributions (0.087), equivalents (0.068), cash (0.013), amounts (0.004) |
SEC - BERT - NUM | payments (0.845), equivalents (0.097), distributions (0.024), increases (0.005), dividends (0.004) |
SEC - BERT - SHAPE | payments (0.784), equivalents (0.093), distributions (0.043), dividends (0.015), requirements (0.009) |
📚 详细文档
引用说明
如果您使用此模型,请引用以下文章: FiNER: Financial Numeric Entity Recognition for XBRL Tagging Lefteris Loukas, Manos Fergadiotis, Ilias Chalkidis, Eirini Spyropoulou, Prodromos Malakasiotis, Ion Androutsopoulos and George Paliouras 收录于第60届计算语言学协会年会(ACL 2022)论文集(长论文),爱尔兰共和国都柏林,2022年5月22 - 27日
@inproceedings{loukas-etal-2022-finer,
title = {FiNER: Financial Numeric Entity Recognition for XBRL Tagging},
author = {Loukas, Lefteris and
Fergadiotis, Manos and
Chalkidis, Ilias and
Spyropoulou, Eirini and
Malakasiotis, Prodromos and
Androutsopoulos, Ion and
Paliouras George},
booktitle = {Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (ACL 2022)},
publisher = {Association for Computational Linguistics},
location = {Dublin, Republic of Ireland},
year = {2022},
url = {https://arxiv.org/abs/2203.06482}
}
关于我们
雅典经济与商业大学自然语言处理小组致力于开发让计算机处理和生成自然语言文本的算法、模型和系统。
该小组目前的研究兴趣包括:
- 面向数据库、本体、文档集合和网络的问答系统,特别是生物医学问答系统;
- 从数据库和本体(特别是语义网络本体)进行自然语言生成;
- 文本分类,包括过滤垃圾邮件和滥用内容;
- 信息提取和观点挖掘,包括法律文本分析和情感分析;
- 希腊语自然语言处理工具,例如解析器和命名实体识别器;
- 自然语言处理中的机器学习,特别是深度学习。
该小组隶属于雅典经济与商业大学信息学系信息处理实验室。
Manos Fergadiotis 代表 雅典经济与商业大学自然语言处理小组
📄 许可证
本项目采用CC - BY - SA 4.0许可证。
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98