Skip to main content

Performant and production-ready NLP pipelines for clinical text written in Dutch

Project description

clinlp

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

clinlp

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clinlp-0.9.0.tar.gz (45.0 kB view details)

Uploaded Source

Built Distribution

clinlp-0.9.0-py3-none-any.whl (48.9 kB view details)

Uploaded Python 3

File details

Details for the file clinlp-0.9.0.tar.gz.

File metadata

  • Download URL: clinlp-0.9.0.tar.gz
  • Upload date:
  • Size: 45.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.5.0-1023-azure

File hashes

Hashes for clinlp-0.9.0.tar.gz
Algorithm Hash digest
SHA256 f518170133fd163cb39e4a577a094ab816486f8c313e22d388288ab464e37313
MD5 3b3e9324bccb35561bb4eed49ac59025
BLAKE2b-256 c4b44147215f3559b4f530415be3ce83980b2a1f760a80d4871b6baae0f33368

See more details on using hashes here.

File details

Details for the file clinlp-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: clinlp-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 48.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.5.0-1023-azure

File hashes

Hashes for clinlp-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3391cc4be8768e7326b9a8f25926508660fc539f8bc915c355eed64c1faeee1e
MD5 b7568571112359ef84bfc78127c3f9ce
BLAKE2b-256 a453114650fb15c13a5e8bf43e869f552398d06c48753ee2c215f3c4a472e783

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page