CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Créez une requête query qui 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()
Modifier et exécuter le code