--- title: SkimLit NLP emoji: 📄 colorFrom: red colorTo: blue sdk: docker app_port: 7860 tags: - streamlit - nlp - medical - text-classification pinned: false short_description: Classification de phrases dans les résumés médicaux --- # 📄 SkimLit — Classification séquentielle de phrases dans les résumés médicaux

HuggingFace Space HuggingFace Model Open In Colab Python TensorFlow

Réplication de *"Neural Networks for Joint Sentence Classification in Medical Paper Abstracts"* — Dernoncourt & Lee (2017). > Étant donné un résumé médical, classifier automatiquement chaque phrase dans l'une des cinq catégories rhétoriques : > **Background** · **Objective** · **Methods** · **Results** · **Conclusions** --- ## Démonstration L'application est déployée sur **Hugging Face Spaces** — colle un résumé médical et obtiens une version structurée en quelques secondes. 🔗 [Essayer la démo](https://huggingface.co/spaces/BILALfym/Testing) --- ## Dataset [**PubMed 20k RCT**](https://github.com/Franck-Dernoncourt/pubmed-rct) — résumés d'essais cliniques randomisés (RCT) issus de PubMed, chaque phrase annotée avec son rôle rhétorique. | Split | Phrases | |-------|---------| | Train | 180 040 | | Validation | 30 212 | | Test | 30 135 | --- ## Progression des architectures Le projet explore 6 architectures en complexité croissante : | # | Modèle | Accuracy | F1 (weighted) | |---|--------|:--------:|:-------------:| | 0 | Naive Bayes + TF-IDF *(baseline)* | 72.18 % | 0.699 | | 1 | Conv1D — token embeddings | ~85 % | ~0.843 | | 2 | Transfer Learning — USE (512 dims) | ~87 % | ~0.871 | | 3 | Conv1D — character embeddings | ~73 % | ~0.720 | | 4 | Hybride Token + Char (BiLSTM) | ~88 % | ~0.876 | | **5** | **Tribride — Token + Char + Positionnel** | **85.86 %** | **0.855** | > Les résultats des modèles 1–4 sont issus de la publication originale. > Model 5 : résultat réel après 5 époques (non convergé — ~0.88–0.90 attendu à convergence). --- ## Architecture du modèle final (Model 5 — Tribride) Le modèle combine **quatre flux d'entrée** complémentaires :

Architecture Model 5 Tribride

| Flux | Entrée | Sortie | |------|--------|--------| | **Sémantique** | Embeddings `all-MiniLM-L6-v2` (384 dims) | Dense → 128 | | **Morphologique** | Texte caractère par caractère | Embedding(25) → BiLSTM(24) → Dense → 128 | | **Positionnel** | One-hot(numéro de ligne, depth=15) | Dense → 32 | | **Structurel** | One-hot(total de lignes, depth=20) | Dense → 32 | Les flux sémantique et morphologique sont fusionnés (Dense 256 + Dropout 0.5), puis concaténés avec les features positionnelles avant la couche de classification finale. ### Modèle hybride intermédiaire (Model 4)

Architecture Model 4 Hybride

--- ## Stack technique ``` Notebook (Google Colab GPU) └── SentenceTransformer (all-MiniLM-L6-v2) # encodage sémantique └── TensorFlow / Keras # construction & entraînement └── scikit-learn # baseline + encodage labels Application └── Streamlit # interface web └── Docker # containerisation (PORT 7860) └── Hugging Face Spaces # hébergement & CI └── Hugging Face Hub # stockage du modèle ``` --- ## Lancer localement ```bash # Cloner le dépôt git clone https://github.com/bilalfym/SkimLit_NLP.git cd SkimLit_NLP # Installer les dépendances pip install -r requirements.txt # Lancer l'application Streamlit streamlit run src/streamlit_app.py ``` Ou via Docker : ```bash docker build -t skimlit . docker run -p 7860:7860 skimlit ``` --- ## Structure du projet ``` SkimLit_NLP/ ├── src/ │ ├── SkimLit_NLP.ipynb # notebook complet (entraînement + évaluation) │ └── streamlit_app.py # application de démonstration ├── Images/ │ ├── model_5.png # architecture tribride │ └── téléchargement.png # architecture hybride (Model 4) ├── .github/workflows/ │ └── keep_alive.yml # ping automatique du Space HuggingFace ├── Dockerfile └── requirements.txt ``` --- ## Références - Dernoncourt, F., & Lee, J. Y. (2017). *PubMed 200k RCT: a Dataset for Sequential Sentence Classification in Medical Abstracts.* arXiv:1710.06071 - Dernoncourt, F., & Lee, J. Y. (2017). *Neural Networks for Joint Sentence Classification in Medical Paper Abstracts.* EACL 2017. - Reimers, N., & Gurevych, I. (2019). *Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks.* arXiv:1908.10084