CommencezCommencez gratuitement

Repérer les séquences de mots courantes

Plus tôt, vous avez vu comment créer une requête qui repère des séquences de mots de longueur trois (des « 3-uplets »). Nous avons utilisé cette requête comme sous-requête dans une requête SQL traditionnelle pour trouver les 3-uplets les plus fréquents dans le document texte. Vous allez maintenant faire une tâche similaire pour trouver les 5-uplets les plus fréquents.

Le DataFrame text_df est disponible. Il contient les cinq premiers chapitres du texte de Sherlock Holmes. Il comporte les colonnes : word, id, part, title. La colonne id est un entier tel qu'un mot apparaissant plus tard dans le document a un identifiant plus grand qu'un mot apparaissant avant. La colonne part sépare les données par chapitre. Le DataFrame text_df est aussi enregistré comme table temporaire appelée text. Notre objectif est de créer un jeu de données où chaque ligne correspond à un 5-uplet, avec un count indiquant combien de fois l'uplet apparaît dans le jeu de données.

Cette activité fait partie du cours

Introduction à Spark SQL en Python

Voir le cours

Instructions de l’exercice

  • Créez une requête query qui trouve les 10 5-uplets les plus fréquents dans le jeu de données.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Find the top 10 sequences of five words
query = """
SELECT w1, w2, w3, w4, w5, COUNT(*) AS count FROM (
   SELECT word AS w1,
   LEAD(____) OVER(____ ) AS w2,
   ____ AS w3,
   ____ AS w4,
   ____ AS w5
   FROM text
)
GROUP BY w1, w2, w3, w4, w5
ORDER BY count DESC, w1, w2, w3, w4, w5
LIMIT ____
"""
df = spark.sql(query)
df.show()
Modifier et exécuter le code