A complete NLP pipeline for analyzing Discord conversations, designed for educational purposes and NLP coursework.
- Text processing: Cleaning, tokenization, lemmatization with spaCy
- Sentiment analysis: Positive/negative/neutral classification using VADER
- Conversation analysis: Automatic detection and metrics per conversation
- FastText embeddings: Optimized vector representations with L2 normalization
- PyTorch DataLoaders: Efficient batch processing for large datasets
- Multilingual support: French and English
pip install -r requirements.txt
python -m spacy download fr_core_news_sm# Basic processing (uses PyTorch DataLoaders by default)
python main.py
# With options
python main.py --verbose
# Skip embeddings
python main.py --no-embeddings --no-conversations
# Compare embeddings (optional)
python test_embeddings.py--no-embeddings: Skip FastText generation--no-conversations: Skip conversation analysis--verbose, -v: Verbose mode--gap-minutes: Conversation detection threshold in minutes (default: 10)
processed_messages.csv: Processed messages with NLP resultsconversations_analysis.csv: Detailed conversation analysisconversation_summary.csv: Global summarylemma_frequency.csv: Lemma frequency analysis (top 100)fasttext_model.bin: Trained FastText modelembeddings.pkl: Document vectorstext_clusters.csv: Message clustering
The pipeline uses PyTorch DataLoaders for efficient batch processing:
- Automatic GPU detection and usage when available
- Memory-efficient processing for large datasets
- Optimized batch sizes for improved performance
- Export Discord data using DiscordChatExporter in CSV format
- Place CSV files in
data/directory - FastText is used by default for embeddings (recommended from
EMBEDDINGS_RAPPORT.md) - Detailed configuration available in
src/config.py