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.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5f057aa2783b67c69b79fbe06ee04a4dde983e07d6ffb9dde3c6179feba4e96 |
|
MD5 | 9d8d43fd63d3087e4fdfb31582b49233 |
|
BLAKE2b-256 | 3936e1f6773d1aab162506d81109fb8ad8585f50dd44b5757773cf31c531e243 |
Hashes for edsnlp-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad6119fbfdc02a8845b2cd574955541299c638d43c355fec6ae0fc6a6ba597ab |
|
MD5 | eba5b4ad59f5038fe6b70451e9d49490 |
|
BLAKE2b-256 | a21861f5591756fa6400f52513599e4203c74e8458dfcce1d54b03768c99b2b3 |
Hashes for edsnlp-0.10.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4538c7f3d9eaf0865efe0ac57c6e2896bd5ce58a86ef07f29f65622883b5aa39 |
|
MD5 | 9d27eea0a98181d5b75e54200f8375ed |
|
BLAKE2b-256 | 8da3948ccbe72e6d4cdbce9ee6bbc09bc3255d6c3d963d9e1f7e49e974bc23ab |
Hashes for edsnlp-0.10.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c1030b96968dcbe1c05ad94413177decf0063a904c21e19615f83ca3baaea04 |
|
MD5 | 6143dbdb27b359ef7e9970bb2685add0 |
|
BLAKE2b-256 | 3386ff4c357bcb963a445d4057b6edd0972475ee0adbe27c17ef61251e714428 |
Hashes for edsnlp-0.10.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a286fba6d184a800423fb25e2da918e7efd9dca6198da7c242abaa9c8d0f692 |
|
MD5 | 86204bbc5bc79d0ad5b62dbc7d203077 |
|
BLAKE2b-256 | 5392d93020da47b2c2e107f061e9e4c4fe7d35bae06d5c73f7616d8f6f33cf25 |
Hashes for edsnlp-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4998952aebe962fdbae77ae0c862fb88e924837110eae3452e5c9efefb73bbc1 |
|
MD5 | c9cfef4ec3582686c0a5598b28615e02 |
|
BLAKE2b-256 | 8c8ff0d6286af5e4e98cdf9ee95cded9402779566742c12f7d5b245904b94741 |
Hashes for edsnlp-0.10.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bf6d68452be66fe3005f3c64bafbaa4600aa25719f566673a41b0a0c741e548 |
|
MD5 | e9260857591c4c46dc930e85988da5c8 |
|
BLAKE2b-256 | 449453c628404b0206cc7ef94c1c9dbaa1ee80c01bb3c15be1b7bbc39c3528d8 |
Hashes for edsnlp-0.10.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffb3dc28e61c24b3e0ab43229fee9475cfa1f72d0a8ebed1a358b20636c5256f |
|
MD5 | 65a0f463821f8d26df71036a030fabe0 |
|
BLAKE2b-256 | 89e8a8076c88260167178eca99b36404643a8677942365e1a7648f619febd4d1 |
Hashes for edsnlp-0.10.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2849c0ffcc2757e7971b7a4b6eeb71a092caaf32165dd66f56cfb47b8185fc7 |
|
MD5 | aab4667bb01f3ccf174ee43ba625a13b |
|
BLAKE2b-256 | 51551844a7b83f28332525d649c9d42c5bc877401ab130b7f3159ce1eee43845 |
Hashes for edsnlp-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2da4575c019807d18543563a231f5fd4d0bb25ac9b351f7bde50c10f818b2814 |
|
MD5 | 7e5af70501e1329a3f17cba0e410728d |
|
BLAKE2b-256 | 3abedb4f468ee9730880b4d6e1e72c1d391858046d6f25549c9f95dd258dd4c1 |
Hashes for edsnlp-0.10.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee977e3bf0eb93a31f6164d3c8be59fa78b490aab6567726d95c5cf0d1e0af1a |
|
MD5 | 70c96a1752fbfea6fe6752363e6ef9a3 |
|
BLAKE2b-256 | da96f249c544aa984bbe6f7f49092249aa7e140b064d22f269de5431dcdccf27 |
Hashes for edsnlp-0.10.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69115170620e17fe11bdb2cf21877700ab5edbba598ac0cef3b7427cbde5aa91 |
|
MD5 | 17eede0cddc9e62339308fedaf81fd20 |
|
BLAKE2b-256 | b81d517673adb1d59baf2fe676832c0e61260a6ce3f63cb919ea3f6f10fe89ef |
Hashes for edsnlp-0.10.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a962e5a9d7e7b628552f7740869e9284417ec79b1ed0a2cbb6a3e9649700717 |
|
MD5 | cbcbd9b2673a567574770d225860fac5 |
|
BLAKE2b-256 | 4c0630f96c399371135d9e8cfe11227e4946ebfe6eff7d2f5b24732ffc8dedb4 |
Hashes for edsnlp-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 922bfc72556947d91f3599d68b008aab8d12758ca7e875ea6ac12b1be4cd207c |
|
MD5 | e727de7ff094b5f105f2d25c800b70db |
|
BLAKE2b-256 | 70e96d7d5a694af8b0ff7cf2bb92a72b5136c1d45086514f246b6e4ba7a72f1f |
Hashes for edsnlp-0.10.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea4685003a8503c4084bba3614921f92be3002592e3182d8ff3f79cf1d1d5e0e |
|
MD5 | 1f2df29e58d7c18ab1e2f1763ab6fa94 |
|
BLAKE2b-256 | e8e0e177bd2a069f03868097a2d4185c062e39b011c8dad35ae5e2f6ab064574 |
Hashes for edsnlp-0.10.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab9368c21aeccd5f7c34b86c265ab50c0481cdf013565b656fc53fe04dd2d826 |
|
MD5 | 72911cf876a8615091cb17fc564da4ea |
|
BLAKE2b-256 | 3b9f6f70c752eca6c911eeb1f1bd10d29fcd4228b99564d570c4a8315bda03dd |
Hashes for edsnlp-0.10.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6601729f4b65a4984340acc32918ac31f9e8ca451e57d177167ccb054023818b |
|
MD5 | 27c98b351312b417992d28d39c6e2b1d |
|
BLAKE2b-256 | c989915021bba6f42235b114ab85b0d72e6f7755e166cf21f1c358a224e6fcff |
Hashes for edsnlp-0.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 727e517250eaac30aa2ad628ba6928f6612f5198c5841e9f62799f851fbe187a |
|
MD5 | bbdeb37ddb918ece4aafba5da447c0a1 |
|
BLAKE2b-256 | b026e97f8573518c967073b44d9ba1fa25fbaa8ae94f5b81684523e925a133c1 |
Hashes for edsnlp-0.10.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f342e41a6799eb381f068a5e334ab765ebb9ea811922884e5dd84422a143660 |
|
MD5 | 9c7095f18d425d1e1e9bad7d903671e5 |
|
BLAKE2b-256 | 1409cad3f2e11bd2bd751ef5f6a9fb317e8453b9ff3cdb13447687c8d2086ec8 |