Διαδρομές
/
SQLite
SQLite
/
Ασκήσεις
/
Μέτρηση λέξεων
Μέτρηση λέξεων

Μέτρηση λέξεων

Δύσκολο

Εισαγωγή

Διδάσκεις αγγλικά ως ξένη γλώσσα σε μαθητές λυκείου.

Έχεις αποφασίσει να βασίσεις όλο το πρόγραμμα σπουδών σου σε τηλεοπτικές εκπομπές. Πρέπει να αναλύσεις ποιες λέξεις χρησιμοποιούνται και πόσο συχνά επαναλαμβάνονται.

Αυτό θα σου επιτρέψει να επιλέξεις τις πιο απλές εκπομπές για να ξεκινήσεις και να αυξήσεις σταδιακά τη δυσκολία όσο περνάει ο καιρός.

Οδηγίες

Η αποστολή σου είναι να μετρήσεις πόσες φορές εμφανίζεται κάθε λέξη σε έναν υπότιτλο μιας δραματικής σειράς.

Οι υπότιτλοι αυτών των σειρών χρησιμοποιούν μόνο χαρακτήρες ASCII.

Οι ήρωες συχνά μιλούν σε ανεπίσημα αγγλικά, χρησιμοποιώντας συνηρημένους τύπους όπως they're ή it's. Αν και αυτοί οι συνηρημένοι τύποι προέρχονται από δύο λέξεις (π.χ. we are), ο συνηρημένος τύπος (we're) θεωρείται μία μόνο λέξη.

Οι λέξεις μπορούν να χωρίζονται με οποιαδήποτε μορφή στίξης (π.χ. ":", "!" ή "?") ή κενού διαστήματος (π.χ. "\t", "\n" ή " "). Η μόνη στίξη που δεν χωρίζει λέξεις είναι η απόστροφος στους συνηρημένους τύπους.

Οι αριθμοί θεωρούνται λέξεις. Αν ο υπότιτλος λέει It costs 100 dollars. τότε το 100 θα είναι ξεχωριστή λέξη.

Στις λέξεις δεν έχει σημασία αν είναι πεζά ή κεφαλαία. Για παράδειγμα, η λέξη you εμφανίζεται τρεις φορές στην παρακάτω πρόταση:

You come back, you hear me? DO YOU HEAR ME?

Η σειρά με την οποία εμφανίζονται οι λέξεις στα αποτελέσματα δεν έχει σημασία.

Ακολουθεί ένα παράδειγμα που συνδυάζει αρκετά από τα στοιχεία που συζητήσαμε παραπάνω:

  • απλές λέξεις
  • συνηρημένους τύπους
  • αριθμούς
  • λέξεις που δεν επηρεάζονται από πεζά ή κεφαλαία γράμματα
  • στίξη (συμπεριλαμβανομένων των αποστρόφων) για τον χωρισμό των λέξεων
  • διαφορετικές μορφές κενού διαστήματος για τον χωρισμό των λέξεων

"That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled.

Η αντιστοίχιση για αυτόν τον υπότιτλο θα ήταν:

123: 1
agent: 1
cried: 1
fled: 1
i: 1
password: 2
so: 1
special: 1
that's: 1
the: 2

Η στήλη result πρέπει να περιέχει ένα αντικείμενο με αντικείμενα, κωδικοποιημένο σε JSON, όπου κάθε λέξη είναι κλειδί και το πλήθος της ακέραιος αριθμός.

Για παράδειγμα, πάρε την παραπάνω πρόταση: "That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled. Το result για αυτή την είσοδο πρέπει να είναι:

{"123":1,"agent":1,"cried":1,"fled":1,"i":1,"password":2,"so":1,"special":1,"that's":1,"the":2}

Σχήμα πίνακα

CREATE TABLE "word-count" (
    sentence TEXT NOT NULL,
    result   TEXT               -- json object
);

Τεκμηρίωση JSON

Συναρτήσεις και τελεστές JSON


Πηγή

Αυτό είναι ένα κλασικό προβληματάκι, αλλά μας το θύμισε το Go Tour.
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
SQLite Exercism

Έτοιμος να ξεκινήσεις την άσκηση Μέτρηση λέξεων;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις SQLite με 81 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.