Metadata-Version: 2.4
Name: lcm-nlp
Version: 1.3.0
Summary: Libère tes chaînes de mots — Bibliothèque pédagogique NLP pour la formation LCM
Author-email: François Pelletier <francois@jevalide.ca>
License-Expression: MIT
Project-URL: Homepage, https://github.com/fpelletier-jevalide/lcm-nlp
Project-URL: Repository, https://git.jevalide.ca/partage/lcm_nlp
Project-URL: Source, https://git.jevalide.ca/partage/lcm_nlp
Project-URL: Tracker, https://github.com/fpelletier-jevalide/lcm-nlp/issues
Keywords: nlp,natural-language-processing,teaching,french,education
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: French
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Text Processing :: Linguistic
Classifier: Topic :: Education
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas<3,>=2.2
Requires-Dist: scikit-learn<2,>=1.5
Requires-Dist: spacy<4,>=3.7
Requires-Dist: nltk<4,>=3.9
Requires-Dist: pyLDAvis<4,>=3.4
Requires-Dist: plotly<6,>=5.0
Requires-Dist: matplotlib<4,>=3.9
Requires-Dist: seaborn<1,>=0.13
Requires-Dist: wordcloud<2,>=1.9
Requires-Dist: emoji<3,>=2.12
Requires-Dist: typesense<1,>=0.21
Requires-Dist: requests<3,>=2.32
Provides-Extra: dev
Requires-Dist: pytest<9,>=8.0; extra == "dev"
Requires-Dist: jupyterlab<5,>=4.2; extra == "dev"
Provides-Extra: gensim
Requires-Dist: gensim<5,>=4.3; extra == "gensim"
Dynamic: license-file

# lcm-nlp — Libère tes chaînes de mots

Bibliothèque Python pédagogique pour le traitement automatique du langage naturel (NLP), conçue pour accompagner la formation *Libère tes chaînes de mots*.

## Installation

```bash
pip install lcm-nlp
```

## Modules

| Module | Description |
|--------|-------------|
| `regex_utils` | Expressions régulières et automates (DFA) |
| `preprocessing` | Tokenisation, normalisation, stemming, distance d'édition |
| `ngrams` | Modèles de langue N-grammes (lissage Laplace, interpolation) |
| `classification` | Classification Naive Bayes, sac de mots, TF-IDF |
| `evaluation` | Métriques d'évaluation (précision, rappel, F1, validation croisée) |
| `ner` | Reconnaissance d'entités nommées (règles, IOB) |
| `embeddings` | Plongements de mots (cooccurrence, SVD, similarité cosinus) |
| `search` | Moteur de recherche textuelle avec TypeSense |
| `corpus_loader` | Chargement du corpus Pleine Confiance (cybersécurité) |
| `emoji_analysis` | Analyse d'emojis dans les textes |
| `sentence_analysis` | Analyse de phrases (POS, lisibilité, complexité) |
| `text_reuse` | Réutilisation de contenu, LDA, phrases clés |
| `linkedin` | Chargement et analyse de données LinkedIn |

## Utilisation rapide

```python
from lcm_nlp.preprocessing import tokenize, remove_stopwords
from lcm_nlp.classification import NaiveBayesClassifier

# Tokenisation
tokens = tokenize("Le traitement du langage naturel est fascinant.", method="words_only")
tokens = remove_stopwords(tokens)
print(tokens)
# → ['traitement', 'langage', 'naturel', 'fascinant']

# Classification
clf = NaiveBayesClassifier()
clf.train([
    (["excellent", "film"], "positif"),
    (["mauvais", "nul"], "négatif"),
])
print(clf.predict(["superbe", "film"]))  # → "positif"
```

## Licence

MIT
