SkillAgentSearch skills...

Clinlp

A Python library for performing NLP on clinical text written in Dutch

Install / Use

/learn @umcu/Clinlp
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

clinlp

test docs pypi version pypi python versions license made with spaCy ruff

clinlp

<!-- start_intro_line_1 -->
  • :hospital: clinical + :netherlands: nl + :clipboard: NLP = :sparkles: clinlp
<!-- start_intro_line_2 -->
  • :star: NLP tools and algorithms for clinical text written in Dutch
<!-- start_intro_line_3 -->
  • :triangular_ruler: Organized in a standardized but flexible framework using spaCy
<!-- start_intro_line_4 -->
  • :rocket: Production-ready, performant, well-tested and easy to use
<!-- start_intro_line_5 -->
  • :bulb: Free, open source, created and maintained by the Dutch Clinical NLP community
<!-- end_intro_lines -->

Contact

If you have questions, need help getting started, found a bug, or have a feature request, please don't hesitate to contact us!

Getting started

Installation

pip install clinlp

Example

import spacy
from clinlp.ie import Term

nlp = spacy.blank("clinlp")

# Normalization
nlp.add_pipe("clinlp_normalizer")

# Sentences
nlp.add_pipe("clinlp_sentencizer")

# Entities
terms = {
    "prematuriteit": [
        "preterm", "<p3", "prematuriteit", "partus praematurus"
    ],
    "hypotensie": [
        "hypotensie", Term("bd verlaagd", proximity=1)
    ],
    "veneus_infarct": [
        "veneus infarct", Term("VI", attr="TEXT")
    ]
}

entity_matcher = nlp.add_pipe("clinlp_rule_based_entity_matcher", config={"attr": "NORM", "fuzzy": 1})
entity_matcher.add_terms_from_dict(terms)

# Qualifiers
nlp.add_pipe("clinlp_context_algorithm", config={"phrase_matcher_attr": "NORM"})

text = (
    "Preterme neonaat (<p3) opgenomen, bd enigszins verlaagd, familieanamnese vermeldt eveneens hypotensie "
    "bij moeder. Thans geen aanwijzingen voor veneus infarkt wat ook geen "
    "verklaring voor de partus prematurus is. Risico op VI blijft aanwezig."
)

doc = nlp(text)

Find information in the Doc object:

from spacy import displacy

displacy.render(doc, style="span", options={'spans_key': 'ents'})

example_doc_render.png

With relevant qualifiers (defaults omitted for readability):

for ent in doc.spans["ents"]:
  print(ent, ent._.qualifiers_str)
  • Preterme set()
  • <p3 set()
  • bd enigszins verlaagd set()
  • hypotensie {'Experiencer.Family'}
  • veneus infarkt {'Presence.Absent'}
  • partus prematurus set()
  • VI {'Temporality.Future'}

Documentation

The full documentation can be found at https://clinlp.readthedocs.io.

Links

View on GitHub
GitHub Stars34
CategoryDevelopment
Updated1mo ago
Forks0

Languages

Python

Security Score

90/100

Audited on Feb 25, 2026

No findings