Διαδρομές
/
AWK
AWK
/
Ασκήσεις
/
Αυτοματοποιημένος δείκτης αναγνωσιμότητας
Αυτοματοποιημένος δείκτης αναγνωσιμότητας

Αυτοματοποιημένος δείκτης αναγνωσιμότητας

Μέτριο

Οδηγίες

Καθώς μεγαλώνουμε, μπορούμε να κατανοούμε όλο και πιο σύνθετα κείμενα. Πώς όμως αξιολογείται το επίπεδο πολυπλοκότητας ενός δεδομένου κειμένου και πώς μπορούμε να φτιάξουμε προγράμματα που να το κάνουν αυτό; Σε αυτή την άσκηση, θα γράψεις ένα πρόγραμμα που θα προσδιορίζει πόσο δύσκολο είναι να διαβαστεί ένα κείμενο και σε ποια ηλικία ταιριάζει καλύτερα.

Θα χρησιμοποιήσουμε τον τύπο του Αυτοματοποιημένου δείκτη αναγνωσιμότητας (ARI) για τον υπολογισμό της πολυπλοκότητας ενός κειμένου. Ο ARI αναπτύχθηκε το 1967 για να αξιολογεί το επίπεδο τάξης στις ΗΠΑ που απαιτείται για να διαβαστεί ένα κείμενο. Αυτό το πετυχαίνει μετρώντας την πολυπλοκότητα των λέξεων και των προτάσεων. Η πολυπλοκότητα μετριέται ως χαρακτήρες ανά λέξη και λέξεις ανά πρόταση. Μεγαλύτερη τιμή σημαίνει μεγαλύτερη πολυπλοκότητα.

Προεπισκόπηση κειμένου

Το πρόγραμμά σου θα πρέπει να εμφανίζει τις τρεις πρώτες προτάσεις του κειμένου, αλλά όχι περισσότερους από 50 χαρακτήρες για κάθε πρόταση. Αν κάποια πρόταση ξεπερνά τους 50 χαρακτήρες, τύπωσε μόνο τους πρώτους 50 χαρακτήρες ακολουθούμενους από αποσιωπητικά (...). Αν το κείμενο περιέχει περισσότερες από τρεις προτάσεις, τύπωσε μόνο αποσιωπητικά ως τέταρτη γραμμή.

Ας υποθέσουμε ότι υπάρχει ένα αρχείο με όνομα "ari.txt" με τα παρακάτω περιεχόμενα (αυτό το κείμενο θα χρησιμοποιηθεί σε όλα τα παραδείγματα παρακάτω):

ARI was designed for military use in 1967. It was for real-time monitoring of readability on typewriters. It offered an automated counting method. It has similar results to other frameworks. This validates its accuracy.

Τότε το πρόγραμμα θα πρέπει να τυπώσει:

The text is:
ARI was designed for military use in 1967.
It was for real-time monitoring of readability on ...
It offered an automated counting method.
...

Στατιστικά κειμένου

Το πρόγραμμα θα πρέπει να υπολογίζει και να τυπώνει τον αριθμό των χαρακτήρων, των λέξεων και των προτάσεων του κειμένου. Οι προτάσεις μπορούν να τελειώνουν με τελεία, θαυμαστικό ή ερωτηματικό. Τα κενά χωρίζουν τις λέξεις σε μια πρόταση. Όταν μετράς τον αριθμό των χαρακτήρων ανά λέξη, μέτρησε όλους τους μη κενούς χαρακτήρες, συμπεριλαμβανομένων των σημείων στίξης. Τύπωσε τα στατιστικά μετά την προεπισκόπηση του κειμένου, χωρισμένα με μια κενή γραμμή.

Ακολουθεί ένα παράδειγμα εξόδου μόνο για το κομμάτι των στατιστικών του κειμένου:

Words: 34
Sentences: 5
Characters: 186

Αυτοματοποιημένος δείκτης αναγνωσιμότητας

Με αυτές τις λεπτομέρειες για το κείμενο, μπορούμε να υπολογίσουμε το επίπεδο πολυπλοκότητάς του με τον παρακάτω τύπο:

score = 4.71 * chars / words + 0.5 * words / sentences - 21.43

Το πρόγραμμα θα πρέπει να υπολογίζει και να τυπώνει τη βαθμολογία και την κατά προσέγγιση ηλικία που χρειάζεται για να κατανοηθεί το κείμενο.

Βαθμολογία Ηλικία Τάξη
1 5-6 Νηπιαγωγείο
2 6-7 Πρώτη δημοτικού
3 7-8 Δευτέρα δημοτικού
4 8-9 Τρίτη δημοτικού
5 9-10 Τετάρτη δημοτικού
6 10-11 Πέμπτη δημοτικού
7 11-12 Έκτη δημοτικού
8 12-13 Πρώτη γυμνασίου
9 13-14 Δευτέρα γυμνασίου
10 14-15 Τρίτη γυμνασίου
11 15-16 Πρώτη λυκείου
12 16-17 Δευτέρα λυκείου
13 17-18 Τρίτη λυκείου
14 18-22 Φοιτητής

Η βαθμολογία θα πρέπει να τυπώνεται με δύο σημαντικά ψηφία μετά την υποδιαστολή. Όταν χρησιμοποιείται για την εύρεση της ηλικίας ή της τάξης, η βαθμολογία θα πρέπει να στρογγυλοποιείται στον πλησιέστερο ακέραιο αριθμό και να περιορίζεται στο 14. Παρακάτω δίνεται ένα δείγμα εξόδου του προγράμματος:

The text is:
ARI was designed for military use in 1967.
It was for real-time monitoring of readability on ...
It offered an automated counting method.
...

Words: 34
Sentences: 5
Characters: 186
Score: 7.74
This text should be understood by 12-13 year-olds.
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
AWK Exercism

Έτοιμος να ξεκινήσεις την άσκηση Αυτοματοποιημένος δείκτης αναγνωσιμότητας;

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