A named entity recognition model for extracting structured compliance fields from Safety Data Sheets (SDS) and GHS chemical documents. Fine-tuned on allenai/scibert_scivocab_uncased with domain-specific annotation covering the mandatory label elements defined in the UN GHS Purple Book and EU CLP Regulation (EC) No 1272/2008.
Designed to serve as the document understanding layer in automated GHS label generation pipelines.
Model Description
Safety Data Sheets are the authoritative source of hazard information for chemical products, but they arrive in inconsistent formats across suppliers, languages, and revision dates. This model extracts the structured fields needed to generate a compliant GHS label without manual data entry.
The model was fine-tuned on Section 2 (Hazard Identification) and Section 3 (Composition/Information on Ingredients) of real-world SDS documents, with labels covering signal words, hazard statements (H-codes), precautionary statements (P-codes), CAS numbers, and product identifiers.
Property
Value
Model type
Token classification (NER)
Base model
allenai/scibert_scivocab_uncased
Languages
English, Dutch, German, French
License
Apache 2.0
GHS revision coverage
Rev 9 (UN), CLP amendment 2023/707 (EU)
Intended Use
Primary use cases:
Extracting hazard fields from SDS PDFs for automated GHS label generation
Populating label templates in barcode and labeling software pipelines
Pre-processing step before jurisdiction-specific label validation
Building structured chemical compliance datasets from unstructured SDS libraries
Out-of-scope use cases:
Full SDS compliance validation (the model extracts fields; a rule-based validator should confirm correctness)
Classification of new substances (the model reads existing classifications, it does not perform hazard classification)
High-stakes regulatory decisions without human review
Labels
The model predicts the following entity types using BIO tagging:
Label
Description
GHS / CLP reference
SIGNAL_WORD
"Danger" or "Warning"
GHS Purple Book 1.4.10
HAZARD_STATEMENT
H-code and statement text (e.g. H225, H302)
Annex 3
PRECAUTIONARY_STATEMENT
P-code and statement text (e.g. P210, P264)
Annex 4
CAS_NUMBER
CAS Registry Number of substance or ingredient
Section 3
PRODUCT_NAME
Product identifier as declared by supplier
Section 1
SUPPLIER_NAME
Manufacturer or responsible party name
Section 1
PICTOGRAM_CODE
GHS pictogram reference (e.g. GHS02, GHS07)
Section 2
Usage
Basic inference
python
1from transformers import pipeline
23ner = pipeline(4"token-classification",5 model="daanhoekstra/sds-ner-compliance",6 aggregation_strategy="simple"7)89sds_text ="""
10Section 2: Hazard Identification
11Signal Word: Danger
12Hazard Statements: H225 Highly flammable liquid and vapour.
13H302 Harmful if swallowed. H319 Causes serious eye irritation.
14Precautionary Statements: P210 Keep away from heat and open flames.
15P264 Wash hands thoroughly after handling.
16"""1718entities = ner(sds_text)19for entity in entities:20print(f"{entity['entity_group']:30s}{entity['word']}")
Expected output:
SIGNAL_WORD Danger
HAZARD_STATEMENT H225 Highly flammable liquid and vapour
HAZARD_STATEMENT H302 Harmful if swallowed
HAZARD_STATEMENT H319 Causes serious eye irritation
PRECAUTIONARY_STATEMENT P210 Keep away from heat and open flames
PRECAUTIONARY_STATEMENT P264 Wash hands thoroughly after handling
For image-based SDS documents where text is not selectable, use the layout-aware variant of this pipeline built on microsoft/layoutlmv3-base, which processes both the visual layout and OCR text jointly. See the GHS label compliance blog post for a full walkthrough.
Training
Data
The model was fine-tuned on a curated dataset of SDS documents annotated at the token level. Documents were sourced from publicly available SDS libraries and supplier portals, covering a range of chemical product categories including solvents, adhesives, cleaning agents, and industrial gases.
Annotation was performed using Label Studio with a custom NER schema aligned to GHS Rev 9 mandatory label elements. Inter-annotator agreement (Cohen's kappa) was measured at 0.91 on the held-out validation split.
Performance is lower on SUPPLIER_NAME and PRODUCT_NAME due to high variability in how suppliers format these fields. A rule-based post-processing step (checking Section 1 headers) improves practical accuracy on these fields.
Limitations and Bias
Format sensitivity. Performance degrades on SDS documents that deviate significantly from standard GHS section structure. Documents that combine sections or use non-standard headers may produce incomplete extractions.
Language coverage. While the model handles EN, NL, DE, and FR, accuracy is highest on English documents, which dominate the training set. Fine-tuning on a target-language SDS set is recommended for non-English production deployments.
Novel hazard classes. The 2023 EU CLP amendment (Delegated Regulation 2023/707) introduced new hazard classes for endocrine disruption and PBT/vPvB substances. Documents using these classes may not extract correctly until the model is updated with annotated examples.
Not a classifier. This model extracts what the SDS says. It does not verify whether the classification is scientifically correct or regulatory-compliant. A downstream validation step against an authoritative H-statement list is required before generating a label.
Environmental Impact
Fine-tuning was performed on a single A100 GPU for approximately 3 hours.