#!/usr/bin/env python
# coding: utf-8

# In[15]:


import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer
from gensim import corpora
from gensim.models import LdaModel


# In[16]:


nltk.download('punkt')
# Télécharger les stopwords anglais de NLTK
nltk.download('stopwords')


# In[17]:


# Exemple de phrases sur le cyclisme et le cinéma
documents = [
    "Le Tour de France est une compétition cycliste prestigieuse.",
    "Les coureurs pédalent pendant des heures à travers de magnifiques paysages.",
    "Les sprinteurs se battent pour la victoire d'étape sur la ligne d'arrivée.",
    "Le cinéma français est réputé pour ses films artistiques et captivants.",
    "Ce film en noir et blanc a remporté de nombreux prix internationaux.",
    "Le cyclisme est un sport très populaire.",
    "J'aime la magie du cinéma, des films et des salles obscures.",
    "Le sport cycliste est presque aussi populaire que le football.",
    "La fête du cinéma permet de voir des films à moindre prix.",
    "Vive le vélo, vive les cyclistes !",
    "Aller au cinéma permet de voir un film dans des conditions différentes qu'à la maison.",
    "Le cyclisme sur piste est une discipline passionnante.",
    "Les réalisateurs français ont la réputation de créer des films originaux et créatifs.",
    "Ce cinéaste a remporté de nombreux prix pour sa vision unique."
    "Les cyclistes sont les sportifs et sportives pratiquant le cyclisme."
]


# In[20]:


# Filtrer les stopwords anglais
english_stopwords = set(stopwords.words('english'))

# Lemmatisation et filtration des stopwords pour chaque phrase
lemmatizer = WordNetLemmatizer()
filtered_documents = []
for doc in documents:
    words = word_tokenize(doc)
    lemmatized_words = [lemmatizer.lemmatize(word.lower()) for word in words if word.lower() not in english_stopwords]
    filtered_documents.append(lemmatized_words)


# In[22]:


# Créer un dictionnaire à partir des documents filtrés et lemmatisés
dictionary = corpora.Dictionary(filtered_documents)
print(dictionary)


# In[23]:


# Créer un corpus de termes (sac de mots) à partir du dictionnaire
corpus = [dictionary.doc2bow(doc) for doc in filtered_documents]
print(corpus)


# In[25]:


# Entraîner un modèle LDA avec 2 sujets
lda_model = LdaModel(corpus, num_topics=2, id2word=dictionary)

# Afficher les sujets détectés avec leurs mots clés
for topic_id, topic_keywords in lda_model.print_topics():
    print(f"Topic {topic_id}: {topic_keywords}")


# In[ ]:




