Description
This model maps entities extracted from text to their corresponding MeSH (Medical Subject Headings) codes.
It performs a direct lookup against the full training text, providing fast, exact-match code mapping without requiring embeddings at inference time.
Trained on the current NLM MeSH descriptor, entry-term, and supplemental-concept dataset (release 2026).
Live Demo Open in Colab Copy S3 URI
How to use
document_assembler = DocumentAssembler()\
.setInputCol("text")\
.setOutputCol("document")
doc2chunk = Doc2Chunk()\
.setInputCols(["document"])\
.setOutputCol("ner_chunk")
mesh_mapper = ChunkMapperModel.pretrained("mesh_mapper_2026", "en", "clinical/models")\
.setInputCols(["ner_chunk"])\
.setOutputCol("mappings")\
.setRels(["mesh_code"])
pipeline = Pipeline(stages=[
document_assembler, doc2chunk, mesh_mapper
])
data = spark.createDataFrame([["diabetes mellitus"],["aspirin"],["rabies"],["diet"]]).toDF("text")
result = pipeline.fit(data).transform(data)
document_assembler = nlp.DocumentAssembler()\
.setInputCol("text")\
.setOutputCol("document")
doc2chunk = nlp.Doc2Chunk()\
.setInputCols(["document"])\
.setOutputCol("ner_chunk")
mesh_mapper = medical.ChunkMapperModel.pretrained("mesh_mapper_2026", "en", "clinical/models")\
.setInputCols(["ner_chunk"])\
.setOutputCol("mappings")\
.setRels(["mesh_code"])
pipeline = nlp.Pipeline(stages=[
document_assembler, doc2chunk, mesh_mapper
])
data = spark.createDataFrame([["diabetes mellitus"],["aspirin"],["rabies"],["diet"]]).toDF("text")
result = pipeline.fit(data).transform(data)
val documentAssembler = new DocumentAssembler()
.setInputCol("text")
.setOutputCol("document")
val doc2Chunk = new Doc2Chunk()
.setInputCols(Array("document"))
.setOutputCol("ner_chunk")
val meshMapper = ChunkMapperModel.pretrained("mesh_mapper_2026", "en", "clinical/models")
.setInputCols(Array("ner_chunk"))
.setOutputCol("mappings")
.setRels(Array("mesh_code"))
val pipeline = new Pipeline().setStages(Array(
documentAssembler, doc2Chunk, meshMapper
))
val data = Seq("diabetes mellitus","aspirin","rabies","diet").toDF("text")
val result = pipeline.fit(data).transform(data)
Results
| ner_chunk | mesh_code |
|:------------------|:------------|
| diabetes mellitus | D003920 |
| aspirin | D001241 |
| rabies | D011818 |
| diet | D004032 |
Model Information
| Model Name: | mesh_mapper_2026 |
| Compatibility: | Healthcare NLP 6.4.1+ |
| License: | Licensed |
| Edition: | Official |
| Input Labels: | [ner_chunk] |
| Output Labels: | [mappings] |
| Language: | en |
| Size: | 24.8 MB |