Financial English BERT Embeddings (Number shape masking)


Pretrained Financial BERT Embeddings model, uploaded to Hugging Face, adapted and imported into Spark NLP. sec-bert-shape is a English model orginally trained by nlpaueb.This model is the same as Bert 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]’.

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-num: Same as Bert sec-base but we replace every number token with a [NUM] pseudo-token handling all numeric expressions in a uniform manner, disallowing their fragmentation).


How to use

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

tokenizer = Tokenizer() \
    .setInputCols("document") \
embeddings = BertEmbeddings.pretrained("bert_embeddings_sec_bert_sh","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_sh","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 =

Model Information

Model Name: bert_embeddings_sec_bert_sh
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