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.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49ed9bcac52a4c6e608511e9c19f48781a80e847cd4f85c7565ed385e8c24100 |
|
MD5 | 25d35acc47c18da50d07d1d127a178ad |
|
BLAKE2b-256 | b3092359f2f933caa0fbd7e04289a1c0e8b46eb390a96e0f1e8b38d1703edd9c |
Hashes for edsnlp-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e3ff5cc0d41d392a6fb326db5b317c3a8bec06f8b02abe45bdd55958058b02e |
|
MD5 | e24a3ece448494045453ce69eb164b07 |
|
BLAKE2b-256 | fa72ab6d40aad2e4ad042262640b6ff8f6b062a75e017a8f244a66ec715f95ef |
Hashes for edsnlp-0.10.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de0553c6a9be80400be085105dc6f47a990958a793f8d89b614b4ce8431be7b7 |
|
MD5 | 9e15748ab627d36225cd69242016a229 |
|
BLAKE2b-256 | af6434bfe7e7953d7637041d8ca86929c5dd96364a91698458c7b57b07046f40 |
Hashes for edsnlp-0.10.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3bf83b33f89146ee88bd48ac14175faee3c0643e489ccbf96f48ae78e434d7a |
|
MD5 | 17c6fc6d32c35270f01e3c78a9066378 |
|
BLAKE2b-256 | 4f8a92dff65ccd2ee618f8b56b0f7d47b0fc781b45e739a9070224af8f9dde2d |
Hashes for edsnlp-0.10.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c28352af9aebbf656bcee508d56385952a020b437cf1ea101963f361be04e44 |
|
MD5 | 88aaf76f4c38050f917f5247a1f18430 |
|
BLAKE2b-256 | 21a9edf70b0bbb2e3b20ec4479c6589c64f32f2516a51fa64a86a06d908a785a |
Hashes for edsnlp-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 160645dc2cb8fdf485fb337634f46f4485b8aaaba791a39d7a73ea7d43857584 |
|
MD5 | 1d5a8397c5d2d11249e4b8dcb453267e |
|
BLAKE2b-256 | 5878743b0977a002ddfaf67d9f10cd40a3f34f4326a6f9f7e4d06d7f8e05ec55 |
Hashes for edsnlp-0.10.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68bb9710021956fbc00d7dd5712df93dc953117f83259c6b178daf86b917dd34 |
|
MD5 | 9c7c252f55b0de000bd3ad387a543c2b |
|
BLAKE2b-256 | 4b221f4e5d50ab1b6f4a0273c54c267d8225c62b21b2b8644e9a5ba553741338 |
Hashes for edsnlp-0.10.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9b6cfaa19ba88c9b4e20a6f2ad740c3ec610641289cc4de2be3801c28a043ba |
|
MD5 | 38de5007f4eedab00bf9be4c0235c508 |
|
BLAKE2b-256 | 89373ff7e047ac350bfb32855b482c7fe42e7dee918a8026a4b38b0a9fd89f9a |
Hashes for edsnlp-0.10.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8497eb833ea16c9ef7f0979eb7ad97c72464a29d4ca657dbc6c3c99b5568f6f6 |
|
MD5 | fd2c233ae245e96bc23a97d3c487e3ba |
|
BLAKE2b-256 | 27bff8aac416abdeebe7ae857e94bd9ad683ae829fa02d7a4bbf605b27094e45 |
Hashes for edsnlp-0.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1edb2b1ff0f53256a0d2eebf3a7276502883c346f78ba214b6d15def4a9f0ca3 |
|
MD5 | c5921833ece4dba869d6578e8262a8f0 |
|
BLAKE2b-256 | 005c2bc482c4d8b35518da52b053a1548413428d8190521b50fdf9a6dab26701 |
Hashes for edsnlp-0.10.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e11f67fde6e3d0acb45207bbf9b01a1249dae8dc2404e6868a23c5d1b51eb404 |
|
MD5 | 5e4208bf28412a8c22dcf1dda7a74ff8 |
|
BLAKE2b-256 | fbff63eb4d42de841df068cbfc81dd4b78e98f39efbfcfbba0000797bdcedd17 |
Hashes for edsnlp-0.10.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c86a47a8a87627dadcf5954b362e68166f663f0797e389ea1433e13bac2e008a |
|
MD5 | 3e43ff217848e19ed209d32574ae24f0 |
|
BLAKE2b-256 | 08649d5318bc7d709cc0a58853b86025d9f4cb20fbb19efc64186e0a15413162 |
Hashes for edsnlp-0.10.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | daf4f74ebf900bd03e8aa97e9af1748c3da4640663f853de1392211b146f8e76 |
|
MD5 | 7b52ab8e1ab3421eb519ec08c882d0ac |
|
BLAKE2b-256 | ab7aab3fe54845e092849c914ed5be0af49fca82c7a603d81edb525320eb86c4 |
Hashes for edsnlp-0.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 455b60321203efb23e4cf9d027e871c4ed14a39e27ee3595f8b9be97c6296b25 |
|
MD5 | 09e6fbb55e7a882e2ff8b122e14b7a35 |
|
BLAKE2b-256 | 7717621c603ffdce3d66b84039dfb3f5fdb193364f8bf81720b8423cd30240a2 |
Hashes for edsnlp-0.10.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f46cc74306f24f48bdab1b88525f5ce72a41070590cdce826fb0af5399f2a689 |
|
MD5 | d93b2e982162bd1204fce962088281e3 |
|
BLAKE2b-256 | 6986793abfa6b3bfd95292a069926ba497289989a005786b06f51aeaeffe0b6d |
Hashes for edsnlp-0.10.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0d4a67971da1f172d8b9099925d32f168a516b64e54d95e826d9f3149147369 |
|
MD5 | 8c37dcf89bdcdd81ba339032135de8d2 |
|
BLAKE2b-256 | d844b5d1c2b849357e67eb35f9b3ef6061e8392754f68ab4e5a98a45d735c6bd |
Hashes for edsnlp-0.10.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 178aa03f17aef2d8f9be92fe3c9a7d647a1aea0dd61c23aae45cba54bc34c96c |
|
MD5 | 1e297fbd877cf4950012c45f10d82579 |
|
BLAKE2b-256 | 7dbf9b76972caef0bea353ef79476f2a43df36899ade1d9bdf9a3d4b37bc7693 |
Hashes for edsnlp-0.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97bb2c15f6ab4cf98fc1f6884a6773bcc8acec94485eef1b20e5ff6614cd95b9 |
|
MD5 | b9fa6a05a26cf578d523dfdaeac33d26 |
|
BLAKE2b-256 | ea15e621a40da436542956eb7358ebb6d30ce5267196c5724f3a60bcec305bf9 |
Hashes for edsnlp-0.10.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e08f0f807725587847b925d84ca40ef0b3c2c2c61534ef0eda0f912ceccc2a0 |
|
MD5 | eff9156a5b8f1f4c54a40aa9a54689ed |
|
BLAKE2b-256 | 345ff8291f6333eadfd118cc9e8946a6e2386d0a2fc6a303a2cc9fc0c6887386 |