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
Instructions de l’exercice
- Créez une requête
queryqui 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()