Bien sûr ! Voici un exemple de script Python qui automatise la collecte de données sur le sujet du « quantum supremacy » (suprématie quantique) et génère un texte de 500 mots avec un ton narrateur. Pour cet exemple, nous allons utiliser des bibliothèques comme `requests` pour récupérer des données de l’internet et `nltk` pour le traitement du langage naturel.
« `python
import requests
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.cluster.util import cosine_distance
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
# Télécharger les ressources nécessaires pour nltk
nltk.download(‘punkt’)
nltk.download(‘stopwords’)
def fetch_data(url):
response = requests.get(url)
data = response.text
return data
def preprocess_text(text):
tokens = word_tokenize(text)
tokens = [token.lower() for token in tokens if token.isalpha()]
stop_words = set(stopwords.words(‘english’))
filtered_tokens = [token for token in tokens if token not in stop_words]
return ‘ ‘.join(filtered_tokens)
def generate_summary(text, summary_length=500):
vectorizer = TfidfVectorizer().fit_transform(text.split())
tfidf_matrix = vectorizer.toarray()
# Calculer la distance de cosinus entre les phrases
cosine_similarities = cosine_distance(tfidf_matrix, tfidf_matrix)
# Trouver les phrases les plus similaires
sentence_indices = []
for i in range(len(cosine_similarities)):
similarity_scores = list(enumerate(cosine_similarities[i]))
similarity_scores = sorted(similarity_scores, key=lambda x: x[1], reverse=True)
sentence_indices.extend(similarity_scores)
# Sélectionner les phrases les plus similaires
sentence_indices = sorted(sentence_indices, key=lambda x: x[1])[:summary_length]
# Extraire les phrases
summary_sentences = [text.split()[sentence_indices[i][0]] for i in range(summary_length)]
summary = ‘ ‘.join(summary_sentences)
return summary
def main():
# URL de la page web contenant des informations sur le quantum supremacy
url = ‘https://en.wikipedia.org/wiki/Quantum_supremacy’
# Fetcher les données
data = fetch_data(url)
# Pré-traiter le texte
preprocessed_text = preprocess_text(data)
# Générer le résumé
summary = generate_summary(preprocessed_text, summary_length=500)
# Afficher le résumé
print(summary)
if __name__ == ‘__main__’:
main()
« `
Explications :
1. **fetch_data(url)**: Cette fonction récupère le contenu HTML de la page web spécifiée par l’URL.
2. **preprocess_text(text)**: Cette fonction pré-traite le texte en le tokenisant, en convertissant les mots en minuscules et en supprimant les mots vides.
3. **generate_summary(text, summary_length=500)**: Cette fonction génère un résumé en utilisant la technique de l’analyse TF-IDF et la distance de cosinus pour sélectionner les phrases les plus similaires.
4. **main()**: Cette fonction principale appelle les fonctions précédentes pour récupérer les données, pré-traiter le texte et générer un résumé.
Remarques :
– Assurez-vous d’avoir les bibliothèques nécessaires installées (`requests`, `nltk`, `scikit-learn`).
– Le script peut nécessiter des ajustements pour fonctionner correctement avec différentes sources de données.
– Le résumé généré peut ne pas être parfaitement fluide en raison de la nature de l’extraction de phrases. Un post-traitement peut être nécessaire pour améliorer la fluidité du texte.