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

# In[2]:


import spacy

# Charger le modèle linguistique pour le français
nlp = spacy.load("fr_core_news_sm")


# In[3]:


# Tokenisation
# Gustave Flaubert
# https://fr.wikisource.org/wiki/Pens%C3%A9es_de_Gustave_Flaubert
text = "Qui sait si le coup de vent qui abat un toit ne dilate pas toute une forêt ? Pourquoi le volcan qui bouleverse une ville ne féconderait-il pas une province ? Voilà encore de notre orgueil : nous nous faisons le centre de la nature, le but de la création et sa raison suprême. Tout ce que nous voyons ne pas s’y conformer nous étonne, tout ce qui nous est opposé nous exaspère."
doc = nlp(text)
for token in doc:
    print(token.text)


# In[5]:


stopwords = nlp.Defaults.stop_words

print(len(stopwords))
print(stopwords)


# In[9]:


lst=[]
doc = nlp(text)
for token in doc:
    if token.text.lower() not in stopwords:  
        lst.append(token.text)              
        
print("Texte original : ", text)
print("Texte après usage des stopwords : ", lst)


# In[15]:


nlp.Defaults.stop_words.add("-il")
nlp.Defaults.stop_words.add("?")
nlp.Defaults.stop_words.add(".")
nlp.Defaults.stop_words.add(",")
nlp.Defaults.stop_words.add(":")

lst2 = []
for token in doc:
    if token.text.lower() not in stopwords:  
        lst2.append(token.text)           

print("Nouveau filtrage après changement des stopwords : ",' '.join(lst2))


# In[20]:


sentence = 'André-Marie Ampère naquit à Lyon, sur la paroisse de Saint-Nizier, le 22 janvier 1775, de Jean-Jacques Ampère, négociant, et de Jeanne-Antoinette Sarcey de Sutières.'
print(sentence)
print(" ")

doc = nlp(sentence)
for ent in doc.ents:
    print(ent.text, ent.label_)


# In[27]:


sentence = 'Les Éditions ENI, à Saint-Herblain en France, soutiennent régulièrement les conférences Devcon du magazine Programmez!.'
print(sentence)
print(" ")

doc = nlp(sentence)
for ent in doc.ents:
    print(ent.text, ent.label_)


# In[29]:


sentence = 'Les Éditions ENI, à Saint-Herblain en France, soutiennent régulièrement les conférences Devcon du magazine Programmez!.'
print(sentence)
print(" ")

doc = nlp(sentence) 
for token in doc:    
   print(token.text, token.pos_)


# In[31]:


import matplotlib.pyplot as plt

# Comptage des étiquettes grammaticales
pos_tags = [token.pos_ for token in doc]
pos_tag_counts = {tag: pos_tags.count(tag) for tag in set(pos_tags)}

# Préparer les données pour le graphique
labels = list(pos_tag_counts.keys())
counts = list(pos_tag_counts.values())

# Créer le graphique
plt.bar(labels, counts)
plt.xlabel('Étiquettes grammaticales')
plt.ylabel('Nombre de mots')
plt.title('Étiquetage grammatical des mots')
plt.xticks(rotation=45)
plt.show()


# In[ ]:




