Financial English BERT Embeddings (Number masking)


Financial Pretrained BERT Embeddings model, uploaded to Hugging Face, adapted and imported into Spark NLP. sec-bert-num is a English model orginally trained by nlpaueb. This model is the same as Bert Base but we replace every number token with a [NUM] pseudo-token handling all numeric expressions in a uniform manner, disallowing their fragmentation).

If you are interested in Financial Embeddings, take a look also at these two models:

sec-base: Same as Bert Base but trained with financial documents. sec-shape: Same as Bert sec-base but we replace numbers with pseudo-tokens that represent the number’s shape, so numeric expressions (of known shapes) are no longer fragmented, e.g., ‘53.2’ becomes ‘[XX.X]’ and ‘40,200.5’ becomes ‘[XX,XXX.X]’.


How to use

documentAssembler = DocumentAssembler() \
    .setInputCol("text") \

tokenizer = Tokenizer() \
    .setInputCols("document") \
embeddings = BertEmbeddings.pretrained("bert_embeddings_sec_bert_num","en") \
    .setInputCols(["document", "token"]) \
pipeline = Pipeline(stages=[documentAssembler, tokenizer, embeddings])

data = spark.createDataFrame([["I love Spark NLP"]]).toDF("text")

result =
val documentAssembler = new DocumentAssembler() 
val tokenizer = new Tokenizer() 

val embeddings = BertEmbeddings.pretrained("bert_embeddings_sec_bert_num","en") 
    .setInputCols(Array("document", "token")) 

val pipeline = new Pipeline().setStages(Array(documentAssembler, tokenizer, embeddings))

val data = Seq("I love Spark NLP").toDF("text")

val result =
import nlu
nlu.load("en.embed.sec_bert_num").predict("""I love Spark NLP""")

Model Information

Model Name: bert_embeddings_sec_bert_num
Compatibility: Spark NLP 3.4.2+
License: Open Source
Edition: Official
Input Labels: [sentence, token]
Output Labels: [bert]
Language: en
Size: 409.5 MB
Case sensitive: true