{"id":15014154,"url":"https://github.com/aphp/edsnlp","last_synced_at":"2025-05-15T22:05:43.913Z","repository":{"id":37081338,"uuid":"467585436","full_name":"aphp/edsnlp","owner":"aphp","description":"Modular, fast NLP framework, compatible with Pytorch and spaCy, offering tailored support for French clinical notes.","archived":false,"fork":false,"pushed_at":"2025-05-14T09:48:30.000Z","size":127289,"stargazers_count":123,"open_issues_count":49,"forks_count":31,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-14T09:50:52.504Z","etag":null,"topics":["clinical-data-warehouse","deep-learning","fast","french","medical","multi-task","nlp","pytorch","rule-based","spacy","text-mining"],"latest_commit_sha":null,"homepage":"https://aphp.github.io/edsnlp/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aphp.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-08T16:13:26.000Z","updated_at":"2025-04-24T10:24:30.000Z","dependencies_parsed_at":"2023-09-22T22:56:44.245Z","dependency_job_id":"3315eefa-e11c-45fc-b5a2-40a91d5f20a9","html_url":"https://github.com/aphp/edsnlp","commit_stats":{"total_commits":1276,"total_committers":44,"mean_commits":29.0,"dds":0.6974921630094044,"last_synced_commit":"430ef227b6e8fbd8fffa83fde7549438e37576c3"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphp%2Fedsnlp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphp%2Fedsnlp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphp%2Fedsnlp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphp%2Fedsnlp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aphp","download_url":"https://codeload.github.com/aphp/edsnlp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254430326,"owners_count":22069907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clinical-data-warehouse","deep-learning","fast","french","medical","multi-task","nlp","pytorch","rule-based","spacy","text-mining"],"created_at":"2024-09-24T19:45:15.980Z","updated_at":"2025-05-15T22:05:43.901Z","avatar_url":"https://github.com/aphp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Tests](https://img.shields.io/github/actions/workflow/status/aphp/edsnlp/tests.yml?branch=master\u0026label=tests\u0026style=flat-square)\n[![Documentation](https://img.shields.io/github/actions/workflow/status/aphp/edsnlp/documentation.yml?branch=master\u0026label=docs\u0026style=flat-square)](https://aphp.github.io/edsnlp/latest/)\n[![PyPI](https://img.shields.io/pypi/v/edsnlp?color=blue\u0026style=flat-square)](https://pypi.org/project/edsnlp/)\n[![Demo](https://img.shields.io/badge/demo%20%F0%9F%9A%80-streamit-grean?style=flat-square)](https://aphp.github.io/edsnlp/demo/)\n[![Coverage](https://raw.githubusercontent.com/aphp/edsnlp/coverage/coverage.svg)](https://raw.githubusercontent.com/aphp/edsnlp/coverage/coverage.txt)\n[![DOI](https://zenodo.org/badge/467585436.svg)](https://zenodo.org/badge/latestdoi/467585436)\n\n\nEDS-NLP\n=======\n\nEDS-NLP is a collaborative NLP framework that aims primarily at extracting information from French clinical notes.\nAt its core, it is a collection of components or pipes, either rule-based functions or\ndeep learning modules. These components are organized into a novel efficient and modular pipeline system, built for hybrid and multitask models. We use [spaCy](https://spacy.io) to represent documents and their annotations, and [Pytorch](https://pytorch.org/) as a deep-learning backend for trainable components.\n\nEDS-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.\n\nCheck out our interactive [demo](https://aphp.github.io/edsnlp/demo/) !\n\n## Features\n\n- [Rule-based components](https://aphp.github.io/edsnlp/latest/pipes/) for French clinical notes\n- [Trainable components](https://aphp.github.io/edsnlp/latest/pipes/trainable): NER, Span classification\n- Support for multitask deep-learning models with [weights sharing](https://aphp.github.io/edsnlp/latest/concepts/torch-component/#sharing-subcomponents)\n- [Fast inference](https://aphp.github.io/edsnlp/latest/concepts/inference/), with multi-GPU support out of the box\n- Easy to use, with a spaCy-like API\n- Compatible with rule-based spaCy components\n- Support for various io formats like [BRAT](https://aphp.github.io/edsnlp/latest/data/standoff/), [JSON](https://aphp.github.io/edsnlp/latest/data/json/), [Parquet](https://aphp.github.io/edsnlp/latest/data/parquet/), [Pandas](https://aphp.github.io/edsnlp/latest/data/pandas/) or [Spark](https://aphp.github.io/edsnlp/latest/data/spark/)\n\n## Quick start\n\n### Installation\n\nYou can install EDS-NLP via `pip`. We recommend pinning the library version in your projects, or use a strict package manager like [Poetry](https://python-poetry.org/).\n\n```shell\npip install edsnlp==0.17.0\n```\n\nor if you want to use the trainable components (using pytorch)\n\n```shell\npip install \"edsnlp[ml]==0.17.0\"\n```\n\n### A first pipeline\n\nOnce 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.\n\n```python\nimport edsnlp, edsnlp.pipes as eds\n\nnlp = edsnlp.blank(\"eds\")\n\nterms = dict(\n    covid=[\"covid\", \"coronavirus\"],\n)\n\n# Split the documents into sentences, this isneeded for negation detection\nnlp.add_pipe(eds.sentences())\n# Matcher component\nnlp.add_pipe(eds.matcher(terms=terms))\n# Negation detection (we also support spacy-like API !)\nnlp.add_pipe(\"eds.negation\")\n\n# Process your text in one call !\ndoc = nlp(\"Le patient n'est pas atteint de covid\")\n\ndoc.ents\n# Out: (covid,)\n\ndoc.ents[0]._.negation\n# Out: True\n```\n\n## Documentation \u0026 Tutorials\n\nGo to the [documentation](https://aphp.github.io/edsnlp) for more information.\n\n## Disclaimer\n\nThe performances of an extraction pipeline may depend on the population and documents that are considered.\n\n## Contributing to EDS-NLP\n\nWe welcome contributions ! Fork the project and propose a pull request.\nTake a look at the [dedicated page](https://aphp.github.io/edsnlp/latest/contributing/) for detail.\n\n## Citation\n\nIf you use EDS-NLP, please cite us as below.\n\n```bibtex\n@misc{edsnlp,\n  author = {Wajsburt, Perceval and Petit-Jean, Thomas and Dura, Basile and Cohen, Ariel and Jean, Charline and Bey, Romain},\n  doi    = {10.5281/zenodo.6424993},\n  title  = {EDS-NLP: efficient information extraction from French clinical notes},\n  url    = {https://aphp.github.io/edsnlp}\n}\n```\n\n## Acknowledgement\n\nWe would like to thank [Assistance Publique – Hôpitaux de Paris](https://www.aphp.fr/), [AP-HP Foundation](https://fondationrechercheaphp.fr/) and [Inria](https://www.inria.fr) for funding this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faphp%2Fedsnlp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faphp%2Fedsnlp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faphp%2Fedsnlp/lists"}