Textmining

Textmining

In zorginstellingen worden veel gegevens in het patiëntendossier vastgelegd in vrije tekst, zoals in verslagen van consulten, verpleegkundige rapportages, of correspondentie. Voor toepassingen in de zorg, in het onderzoek of bij bedrijfsvoering is deze informatie erg bruikbaar. 

Het is echter niet eenvoudig om vrije tekst weer te verwerken tot gestructureerde en bruikbare data. Dat komt bijvoorbeeld door: variatie in taalgebruik en terminologie, gebruik van synoniemen, domein-specifieke afkortingen en termen, gebruik van steno, typ- en spelfouten, impliciete informatie, de context waarin begrippen voorkomen, en vele andere aspecten. Zorgapplicaties, onderzoeksdatasets en dashboards maken daardoor maar zelden gebruik van deze schat aan informatie, of alleen op kleine schaal na veel handmatig werk.

In het UMC Utrecht werken wij onder de noemer 'Textmining' aan methoden, technieken en technologieën om vrije tekst wél op schaal te structureren en doorzoeken. Waar mogelijk gebruiken en ontwikkelen we daarvoor open source-oplossingen. Op deze pagina bieden we een kort overzicht van onze inspanningen op dit gebied. Onder use cases omschrijven we verderop enkele toepassingen die we hiermee al mogelijk hebben gemaakt.

Klinische Natural Language Processing (NLP) uitklapper, klik om te openen

Het vakgebied van de klinische NLP heeft als taak de relevante informatie die in vrije tekst verborgen zit aan het oppervlak te brengen. Dat proces kan uit verschillende stappen bestaan, zoals de-identificatie, herkenning van medische concepten, oplossen van ambiguïteit, en detecteren van context van begrippen. In een consultverslag zou bijvoorbeeld de volgende zin kunnen voorkomen:

Bij dhr. Jansen werd een vergroting van het RA vastgesteld, maar werd longembolie uitgesloten.

In deze zin komt de naam van de patiënt voor, die automatisch verwijderd wordt om de privacy van patiënten te waarborgen:

Bij [PERSOON] werd een vergroting van het RA vastgesteld, maar werd longembolie uitgesloten.

Er staan twee medische begrippen in het fragment, die automatisch herkend en gelinkt worden aan de juiste concepten uit het Unified Medical Language System (UMLS), een metathesaurus van de biomedische wetenschappen:

Bij [PERSOON] werd een vergroting van het [RA C0225844 - Rechter atrium] [RA C0003873 - Reumatoïde artritis] vastgesteld, maar werd [longembolie C0034065 - Longembolie] uitgesloten.

Het begrip RA wordt tweemaal herkend, eenmaal als Rechter Atrium (UMLS C0225844), en eenmaal als Reumatoïde Artritis (UMLS C0003873). Uit de context van de zin (vergroting, longembolie) wordt door een machine learning-techniek afgeleid dat het waarschijnlijk om het eerste gaat. Daarnaast is het concept Longembolie (UMLS C0034065) opgeschreven in ontkennende vorm. Ook dit wordt automatisch herkend en verwerkt in de gestructureerde output:

Bij [PERSOON] werd een vergroting van het [RA C0225844 - Rechter atrium | bevestigd] vastgesteld, maar werd [longembolie C0034065 - Longembolie | ontkend] uitgesloten.

Hiermee is de belangrijkste informatie die opgesloten zat in de vrije tekst gestructureerd, en daarmee beschikbaar voor allerlei verdere toepassingen. Dit zijn slechts enkele voorbeelden van bewerkingsstappen die mogelijk zijn op klinische tekst. Het vakgebied van klinische NLP kan voortbouwen op recente ontwikkelingen uit de niet-klinische taalverwerking, en klinische taalverwerking van met name Engelstalige tekst, maar is nog volop in ontwikkeling.

Clinlp

Om deze ontwikkelingen samen te brengen, werkt het UMC Utrecht aan de open source toolkit clinlp.

Clinlp maakt het mogelijk om NLP pipelines te ontwikkelen voor Nederlandse medische teksten. Nuttig als startpunt als je íets met Nederlandse NLP wilt doen. De principes en doelstellingen waarop het gebouwd is, zijn:

Functioneel:

  • Biedt NLP pipelines geoptimaliseerd voor Nederlandse klinische tekst
  • Effectief en productieklaar
  • Inzetbaar out-of-the-box, maar zeer configureerbaar
  • (Her)gebruikt bestaande componenten waar mogelijk, implementeert nieuwe componenten waar nodig
  • Niet bedoeld voor annotatie, training en analyse - reeds gedekt door bestaande packages

Ontwikkeling:

  • Gratis en open source
  • Gericht op de technische gebruiker
  • Samengesteld en onderhouden door de Nederlandse klinische NLP gemeenschap
  • Gebouwd met behulp van het spaCy raamwerk (>3.0.0)
  • Daarom niet-destructief
  • Werkt toe naar een bepaald niveau van standaardisatie van componenten (abstractie, protocollen)
  • Volgt best practices uit de industrie (systeemontwerp, code, documentatie, testen, CI/CD)

Met clinlp willen we de kwaliteit van Nederlandse klinische NLP pipelines verbeteren, o.a. door de inspanningen van de Nederlandse NLP community te concentreren. Wij geloven dat we grotere stappen kunnen maken als we samenwerken, en het helpt als we dat vanuit een gezamenlijke toolkit kunnen doen. Hiermee creëeren we ook een interessante werkomgeving voor (nieuwe) NLP-ontwikkelaars die met concrete tools aan de slag kunnen gaan en zich kunnen ontwikkelen door in een community van elkaar te leren. Door kennis en ervaringen uit te wisselen, wordt de valorisatie van klinische NLP methoden ook versneld.

Clinlp is nog volop in ontwikkeling, dus als je enthousiast bent over het gebruik of als je wilt bijdragen, aarzel dan niet om contact op te nemen. We bespreken graag de ideeën en behoeften vanuit het perspectief van een (eind)gebruiker, engineer of clinicus, en formuleren samen een roadmap met volgende stappen.

Naast clinlp, werken wij ook nog (mee) aan andere open source projecten:

Samenwerking uitklapper, klik om te openen

Dat er veel vraag is naar het hergebruik van vrije tekst, blijkt ook uit het samenwerkingsverband tussen vijf umc's op dit gebied via SURF. We maken gebruik van elkaars kennis, ontwikkelen (mee) aan open source oplossingen, en valideren onze methoden en technieken met elkaar. Op die manier zorgen we dat onze collectieve inzet ook collectief bruikbare oplossingen oplevert.

Deze samenwerking is ook gepubliceerd als project in de Research Software Directory, zie link.

Deze website maakt gebruik van cookies

Deze website maakt gebruik van cookies Deze website toont video’s van o.a. YouTube. Dergelijke partijen plaatsen cookies (third party cookies). Als u deze cookies niet wilt kunt u dat hier aangeven. Wij plaatsen zelf ook cookies om onze site te verbeteren.

Lees meer over het cookiebeleid

Akkoord Nee, liever niet