Mots & Maux
Outil d'analyse linguistique et de prévention santé basé sur les principes de la psychoneuroimmunologie.
Présentation :
Mots & Maux identifie les structures linguistiques associées au stress chronique (langage de contrainte, de fatalité, d'impuissance) et propose des reformulations pour renforcer le sentiment de contrôle et la résilience.
L'outil s'appuie sur les travaux de :
James Pennebaker (Psychoneuroimmunologie) : lien entre expression linguistique et fonction immunitaire.
Basil Bernstein (Sociolinguistique) : codes restreints et élaborés. Principe technique : Traitement local via NLP (spaCy). Aucune donnée n'est transmise vers l'extérieur.
Fonctionnalités :
-
Analyse de stress linguistique : Détection des marqueurs de contrainte ("devoir", "falloir"), de fatalité ("jamais", "rien") et d'impersonnalité ("on", "ça").
-
Indice d'agence : Mesure de la capacité d'action et de projection dans le futur.
-
Carte thermique : Visualisation colorée des mots clés dans le texte.
-
Atelier de reformulation : Suggestions automatiques pour transformer les phrases de type "subir" en phrases de type "choisir".
-
Export de rapport : Génération d'un fichier HTML/PDF récapitulatif.
Installation :
Prérequis :
- Python 3.10, 3.11 ou 3.12
- Git (optionnel, pour cloner le dépôt)
Procédure :
Créer et activer l'environnement virtuel : python -m venv venv
venv\Scripts\activate
source venv/bin/activate
Installer les dépendances :
pip install -r requirements.txt
Télécharger le modèle de langue française :
python -m spacy download fr_core_news_md
Lancer l'application :
streamlit run app/main.py --server.port 8509 L'application est accessible à l'adresse : http://localhost:8509
Structure du projet :
MotsEtMaux/ ├── .streamlit/ │ └── config.toml # Configuration du thème et du port ├── app/ │ ├── main.py # Page d'accueil et bilan global │ ├── pages/ │ │ ├── 1_Analyse.py # Analyse détaillée et visualisation │ │ └── 2_Reformulation.py # Atelier de reformulation assistée │ └── utils/ │ ├── nlp_processor.py # Moteur d'analyse linguistique │ └── pdf_generator.py # Générateur de rapports ├── tests/ │ └── test_nlp.py # Tests unitaires du moteur NLP ├── docs/ │ └── protocol_scientifique.md # Fondements scientifiques ├── requirements.txt # Dépendances Python └── README.md # Ce fichier
Utilisation :
- Analyse globale Saisissez un texte libre dans la page d'accueil. L'outil calcule :
La Charge de Stress (basée sur la contrainte et la fatalité). L'Indice d'Agence (basé sur les verbes de choix et le futur). 2. Analyse détaillée Accédez à l'onglet "Analyse" pour visualiser :
Un diagramme radar comparant stress et résilience. Une carte thermique du texte mettant en évidence les mots clés. 3. Reformulation Dans l'onglet "Reformulation", l'outil propose des alternatives pour :
Remplacer la contrainte ("Je dois") par le choix ("Je décide de"). Nuancer la fatalité ("Jamais") par la temporisation ("Pour l'instant"). Réapproprier le sujet ("On m'a dit" → "J'ai entendu").
Tests Pour vérifier l'intégrité du moteur d'analyse :
pytest tests/test_nlp.py -v
Limites et éthique :
-
Jurons et émotion : Les jurons ne sont pas comptabilisés comme des marqueurs de stress. Les études indiquent qu'ils peuvent avoir un effet cathartique et réduire la tension.
-
Non-stigmatisation : L'outil ne juge pas la qualité de la langue (argot vs soutenu) mais la structure de contrôle (actif vs passif).
-
Usage : Cet outil est un support de prévention et ne remplace pas un avis médical ou psychologique.
Projet développé dans un cadre de recherche et de prévention santé. Usage libre sous réserve du respect de la confidentialité des données utilisateurs.
Philippe Kirstetter-Fender, Data Engineer, en recherche de poste en France et à l'étranger.