Modular, fast NLP framework, compatible with Pytorch and spaCy, offering tailored support for French clinical notes.
Project description
EDS-NLP
EDS-NLP is a collaborative NLP framework that aims primarily at extracting information from French clinical notes. At its core, it is a collection of components or pipes, either rule-based functions or deep learning modules. These components are organized into a novel efficient and modular pipeline system, built for hybrid and multitask models. We use spaCy to represent documents and their annotations, and Pytorch as a deep-learning backend for trainable components.
EDS-NLP is versatile and can be used on any textual document. The rule-based components are fully compatible with spaCy's components, and vice versa. This library is a product of collaborative effort, and we encourage further contributions to enhance its capabilities.
Check out our interactive demo !
Features
- Rule-based components for French clinical notes
- Trainable components: NER, Span classification
- Support for multitask deep-learning models with weights sharing
- Fast inference, with multi-GPU support out of the box
- Easy to use, with a spaCy-like API
- Compatible with rule-based spaCy components
- Support for various io formats like BRAT, JSON, Parquet, Pandas or Spark
Quick start
Installation
You can install EDS-NLP via pip
. We recommend pinning the library version in your projects, or use a strict package manager like Poetry.
pip install edsnlp
or if you want to use the trainable components (using pytorch)
pip install "edsnlp[ml]"
A first pipeline
Once you've installed the library, let's begin with a very simple example that extracts mentions of COVID19 in a text, and detects whether they are negated.
import edsnlp
nlp = edsnlp.blank("eds")
terms = dict(
covid=["covid", "coronavirus"],
)
# Split the documents into sentences, this isneeded for negation detection
nlp.add_pipe("eds.sentences")
# Matcher component
nlp.add_pipe("eds.matcher", config=dict(terms=terms))
# Negation detection
nlp.add_pipe("eds.negation")
# Process your text in one call !
doc = nlp("Le patient n'est pas atteint de covid")
doc.ents
# Out: (covid,)
doc.ents[0]._.negation
# Out: True
Documentation & Tutorials
Go to the documentation for more information.
Disclaimer
The performances of an extraction pipeline may depend on the population and documents that are considered.
Contributing to EDS-NLP
We welcome contributions ! Fork the project and propose a pull request. Take a look at the dedicated page for detail.
Citation
If you use EDS-NLP, please cite us as below.
@misc{edsnlp,
author = {Wajsburt, Perceval and Petit-Jean, Thomas and Dura, Basile and Cohen, Ariel and Jean, Charline and Bey, Romain},
doi = {10.5281/zenodo.6424993},
title = {EDS-NLP: efficient information extraction from French clinical notes},
url = {https://aphp.github.io/edsnlp}
}
Acknowledgement
We would like to thank Assistance Publique – Hôpitaux de Paris, AP-HP Foundation and Inria for funding this project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for edsnlp-0.10.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af02162c4d5e376a5e738fa5d6bf824962ad0e26c9b904ad6a07b390e7f9d433 |
|
MD5 | 5087648f286a9dbacfa8c10a5e7d609d |
|
BLAKE2b-256 | ea99d389b207679d6b71770fc0e7e1ef1f108f581c3fefc9eba54a8f47d7e3f3 |
Hashes for edsnlp-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1f4d3a6bf7af5483e4853bd0c742e3a6f1b585c496e498cff360f39de5ed11d |
|
MD5 | 5c972b0a95a18837f1d8bafd1720000b |
|
BLAKE2b-256 | 2d46d8e596b6347af3e99b47a4c82cd2d94cc10e7fe795061682f21e4a06cc96 |
Hashes for edsnlp-0.10.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1f915a24200ae93a84ba5a7f1508244ba4067a2dfa25bc93e2ba179f97b36ab |
|
MD5 | 245482fda36c1b0002626b4c1d69e70b |
|
BLAKE2b-256 | 77d6c158d82fdf8a2078e6d88c03f2226d841d40ae7c2b07e5aac1286b859e4f |
Hashes for edsnlp-0.10.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00758542963b4d4d526938e6c46f643f73f1cd925481a758cee55b27e4034aee |
|
MD5 | d6c0844e3cec8ea2a5db646071ba3931 |
|
BLAKE2b-256 | 792ac3e472bc8931dfe688e84e54d677a09b5ca130aea179fa188ce3aa409fb2 |
Hashes for edsnlp-0.10.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5328c4682871fc61972f42c5c01f1ba634eeff0664a9d1453619a3abf8d9b3ca |
|
MD5 | 91313953e90035367a7f695e2ed4e32c |
|
BLAKE2b-256 | 85f128d2e115d21ff3e8535c07f9792b68ff30a69c96b537780f0100fac7129c |
Hashes for edsnlp-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2bb7e692fae53f7696260c4dae11231e7864e0d9baa8c6400cb1d876eafdc8d |
|
MD5 | 74caaa46c42515137c324a52f4a07c57 |
|
BLAKE2b-256 | 5d08269de5467a3bad6b6fe7d3aac43fc74e4fccedc9dab62eaaca69b3fe67ad |
Hashes for edsnlp-0.10.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb2aee7d071fc3e80df5d4e85aebf09a5b439b8101f3e4ccbfca01ecd056b82c |
|
MD5 | 217795e393560ded79357e5f042925e9 |
|
BLAKE2b-256 | 02648cc9d0bb002b3de2aa4dd279e116b206676e3e88873db58a9fdb1cea07a3 |
Hashes for edsnlp-0.10.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebc66240f612a8ecf795358f35bd27e53845a892ae3bfba9afb6a04156526ce0 |
|
MD5 | f429bc7cea927de28607bb169f132e17 |
|
BLAKE2b-256 | 2abe91b8c900cc2ed454190b18dc4fd5c6653b0d1d0c3ab7a46c2d3e0d075696 |
Hashes for edsnlp-0.10.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf0e5aa92a0e4cfff499f5453096868a377c50366f2d04df2798ae80b27d9a04 |
|
MD5 | 58ab10f1698f636d6cb1bcaa2e210c05 |
|
BLAKE2b-256 | 28c2e729ad758ca271fe87e6ecd6245c8ea97229e3ebc2b4127627e385978e2b |
Hashes for edsnlp-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d2c09941c44c2bc08070aa0129625064811a97af0fa420b7b4abeb1c3c4ddb1 |
|
MD5 | da317f1607992708ffc42d010977840c |
|
BLAKE2b-256 | 297683ddf786e6e6e90b65e5e9cbef51360b11fafb800284fcbc497bd3b5343e |
Hashes for edsnlp-0.10.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ad79a0c5795ddba85517e4dcc56cac205a8d78d4a2a0681e892453480d89b28 |
|
MD5 | 5a163cc4e82cbfbbc7be74bc475754e0 |
|
BLAKE2b-256 | fbf8db36d03b71f0ec5de1abb44ffa4f2d7371478aaa4247d59e39281871314e |
Hashes for edsnlp-0.10.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b16fb05b8ab352918c0f8016e1ac5c27db950f3c4412e2fd9a8d7978b5505501 |
|
MD5 | 2b1cc3deded201a5980899dc0b67635b |
|
BLAKE2b-256 | 7f1f5f96aad73af7b24011208b5aa3f6ba07e3ba50fc426e36ef7d492e61eccf |
Hashes for edsnlp-0.10.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37d7632b203a7583aad8b0b53b48201fc95658723244f3f405ea2b81aebbe962 |
|
MD5 | 50d6414687a5920b7aec5da67e7d18e6 |
|
BLAKE2b-256 | 8c10c266084c903c59e953d1a646fd5b67e68e4b8a3304337d5ffd3d4f43aa95 |
Hashes for edsnlp-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06aaa5b60f8503da99754771a7b241dc59fa43cb22420c7e4bdb73f765125b92 |
|
MD5 | 08dc2921805d00c665759f73c3ed9a5e |
|
BLAKE2b-256 | 8f41b1b63558b910c5f62595749643f3016442868a6766f5ab5c58715a09443e |
Hashes for edsnlp-0.10.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47b3431ed464265c5fbf9202f3446e13e179fb956dc86578546fef94adfa1c2e |
|
MD5 | 6c790fc72c553e0f80b05ec74c785c14 |
|
BLAKE2b-256 | e7dfcb1dfbc3956c2de51f9cade4bcaa3cf29b54353266849427f0012027a058 |
Hashes for edsnlp-0.10.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12288210c4ce2c494252017cb7aee9c21cddec1972e43acb25b517877df000ae |
|
MD5 | 6e3ef15f44b6671b9293c92ae64d9153 |
|
BLAKE2b-256 | 4ff50615c38a69de4a3baeceedb114bcb48fc2a983baab5f7037f1a0c778a2ac |
Hashes for edsnlp-0.10.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b9633970ceab02a3800e31dad10f4d0949dbad9de3568ac2810da6f7a43a54c |
|
MD5 | eee9cb514620c495324944b33d1a03ac |
|
BLAKE2b-256 | f7aa03125ef34b80f17e89ba0354873377105e40002a2984cb562122c85c0fb5 |
Hashes for edsnlp-0.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d95dc5035bf303c2578b98e2c14bb359fd7b8a5a4db927874da8dd1a38adf069 |
|
MD5 | 61350504425ebbe358194f51f95670dd |
|
BLAKE2b-256 | c84e4f88c6db661c920480c510a95c11291dab09ec20ceff435c6bfb4ae51315 |
Hashes for edsnlp-0.10.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61ad91f31468ecfe37b8a5be7eb398ca4336301f6a53d8baeeb71f11e56cb1f1 |
|
MD5 | 1d3c68165b317d9b6bea1f094930d2c4 |
|
BLAKE2b-256 | 28fadb67c8778b8725c214a83e3ed0b906e4981c2258325b87ab1949e512611b |