Trouver des séquences de mots fréquentes
Précédemment, nous avons vu comment créer une requête qui trouve des séquences de mots de longueur trois (« 3-tuples »). Nous avons utilisé cette requête comme sous-requête dans une requête SQL classique pour trouver les 3-tuples les plus fréquents dans le document texte. Vous allez maintenant réaliser une tâche similaire pour trouver les 5-tuples 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 possède un identifiant plus grand qu’un mot qui le précède. La colonne part sépare les données par chapitres. Le DataFrame text_df est également enregistré comme table temporaire appelée text. Notre objectif est de créer un jeu de données où chaque ligne correspond à un 5-tuple, avec un count indiquant combien de fois ce tuple apparaît dans le jeu de données.
Cet exercice fait partie du cours
Introduction à Spark SQL en Python
Instructions
- Créez une requête
queryqui trouve les 10 5-tuples les plus fréquents du jeu de données.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
LIMIT ____
"""
df = spark.sql(query)
df.show()