[I18NGR] φίλτρο για greeklish?
Konstantinos Margaritis
markos at debian.gr
Fri Nov 25 19:57:00 EET 2005
(Καταρχάς, ξαναβάζω το CC στην open-source, δε μπορώ να καταλάβω τί
μανία είναι αυτή να μου χαλάν τα CC...)
On Παρασκευή 25 Νοέμβριος 2005 17:50, Thanos Kyritsis wrote:
> Ον Φριδαυ 25 Νοωεμβερ 2005 17:37, Κονσταντιοσ Μαργαριτισ ςροτε:
> [σνιπ ....]
>
> Εγώ θα σε ρωτήσω ένα απλό πράγμα .....
>
> Πώς θα καταλαβαίνεις σε ένα μήνυμα ποιούς αγγλικούς χαρακτήρες να
> μετατρέπεις και ποιούς όχι ?? ε ???
Η διαδικασία είναι απλή, αν και φοβάμαι πως είναι λίγο χρονοβόρα,
κάθησα και το σκέφτηκα λιγάκι και βρήκα μια αρκετά καλή μέθοδολογία:
Διάλεξα και ένα μικρό τμήμα από email του zvr -κλασσικός γράφων σε
greeklish γαρ ;-) - από το συνέδριο του O'Reilly, ήταν εντελώς τυχαία
επιλογή.
"Prwth entypwsh: polla lefta, re paidaki moy!
Se kyrile ksenodoxeio sto Amsterdam, megalh conference (milane
gia 500+ atoma), organwmenh kata O'Reilly me ta Amerikanika protypa.
Symperasma: tha mpoyne mesa agria, apokleietai na bgaloyn ta lefa
toys.
Oxi oti den to kserane, bebaia."
Για να δείξω ότι η μέθοδος μπορεί να δουλέψει και με διαφορετικό στυλ
γραφής, γράφω το ίδιο κείμενο σύμφωνα με τον τρόπο που γράφω συνήθως
greeklish (την αναφέρω απλώς ως παράδειγμα):
"Prwtn evtupwsn: polla lefta, re paidaki mou!
Se kurile 3evodoxeio sto Amsterdam, megaln conference (milave gia 500+
atoma), orgavwmevn kata O'Reilly me ta Amerikavika protupa.
Sumperasma: 8a mpouve mesa agria, apokleietai va bgalouv ta lefta
tous. Oxi oti de to 3erave, bebaia."
Με μια απλή ματιά, οι κανόνες μετατροπείς για τις δύο μεθόδους είναι
οι εξής:
zvr: η-> h, θ->th, ν->n, ξ->ks, υ->y, ω->w
mine: η->n, θ->8, ν->v, ξ->3, υ->u, ω->w
και είμαι σίγουρος ότι με λίγο ψάξιμο μπορούμε να βρούμε αρκετούς
κανόνες ακόμη.
Βήμα 1ο: Διαχωρισμός παραγράφων. οκ έστω ότι έχει γίνει αυτό, δεν
είναι το θέμα.
Βήμα 2ο: Έλεγχος αγγλικής ορθογραφίας στην παράγραφο, μάλιστα
δημιουργία ενός associative array (map στην STL, HashMap στη Java,
whatever) με τα αποτελέσματα για κάθε λέξη μας ενδιαφέρει ένα boolean
αποτέλεσμα, FOUND/NOTFOUND. Αυτό για να αποκλείσουμε τις πραγματικά
αγγλικές λέξεις από τις greeklish. Αν τα FOUND είναι συντριπτικά
περισσότερα από τα NOTFOUND τότε μάλλον το κείμενο είναι αγγλικό ίσως
με ορθογραφικά λάθη και δεν χρειάζεται να προβούμε στη μετατροπή από
greeklish. Αν τα FOUND είναι αρκετά -κάποιο κατώφλι/ποσοστό ίσως;-
τότε μπορούμε να προχωρήσουμε στο βήμα 3.
Βήμα 3ο: Για τις λέξεις που ΔΕΝ βρεθήκαν από τον αγγλικό ορθογράφο
-δηλαδή αυτές με NOTFOUND στο map- κάνουμε μετατροπή από greeklish σε
ελληνικά με κάθε μέθοδο, και κάνουμε έλεγχο με ελληνικό ορθογράφο
στις λέξεις αυτές. Για κάθε λέξη που ανιχνεύεται από τον ορθογράφο, η
κάθε μέθοδος παίρνει έναν πόντο.
Βήμα 4ο: Αν κάποια μέθοδος φτάσει ένα συγκεκριμένο κατώφλι -π.χ. 30%
των λέξεων ή ένα προκαθορισμένο αριθμό- τότε μπορούμε να είμαστε
αρκετά βέβαιοι ότι ο χρήστης θα έχει ακολουθήσει τη συγκεκριμένη
μέθοδο για να γράψει σε greeklish και μπορούμε να προχωρήσουμε στη
μετατροπή των υπολοίπων λέξεων με τη συγκεκριμένη μέθοδο μόνο χωρίς
να χρησιμοποιήσουμε επιπλέον το σύστημα με τους πόντους.
Για το συγκεκριμένο παράδειγμα, το αρχικό κείμενο του zvr, όπως το
έχει γράψει:
"Prwth entypwsh: polla lefta, re paidaki moy!
Se kyrile ksenodoxeio sto Amsterdam, megalh conference (milane
gia 500+ atoma), organwmenh kata O'Reilly me ta Amerikanika protypa.
Symperasma: tha mpoyne mesa agria, apokleietai na bgaloyn ta lefa
toys.
Oxi oti den to kserane, bebaia."
Βήμα 2ο: ο αγγλικός ορθογράφος προφανώς θα χτυπήσει κόκκινο, αφού θα
βρεί ελάχιστες λέξεις: Amsterdam, conference, O'Reilly, me, to. Για
τις υπόλοιπες θα προχωρήσει στο βήμα 3.
Βήμα 3: μετατρέπουμε κάθε λέξη με κάθε μέθοδο για μετατροπή από
greeklish και δίνουμε +1 πόντο στη μέθοδο αν η τελική λέξη
αναγνωρίζεται από τον ορθογράφο, ΜΕΧΡΙ κάποια μέθοδος να φτάσει π.χ.
σε πόντους που να αντιστοιχούν στο 30% των λέξεων της παραγράφου,
δηλ. ~13).
Λέξη zvr mine zvr pts mine pts
Prwth Πρωτη Πρωτh 1 0
entypwsh εντυπωση εντyπωσh 2 0
polla πολλα πολλα 3 1
lefta λεφτα λεφτα 4 2
re ρε ρε 5 3
paidaki παιδακι παιδακι 6 4
moy μου μοy 7 5
Se Σε Σε 8 6
kyrile κυριλε κyριλε 9 7
ksenodoxeio ξενοδοχειο ksεηοδοχειο 10 7
sto στο στο 11 8
megalh μεγαλη μεγαλh 12 8
milane μιλανε μιλαηε 13 8
gia για για 14 9
Περάσαμε το κατώφλι 13 (βρήκα κι εγώ νούμερο...), προχωράμε στο βήμα
4:
atoma ατομα
organwmenh οργανωμενη
kata κατα
ta τα
Amerikanika Αμερικανικα
protypa προτυπα
Symperasma Συμπερασμα
tha θα
mpoyne μπουνε
mesa μεσα
agria αγρια
apokleietai αποκλειεται
na να
bgaloyn βγαλουν
ta τα
lefa λεφα
toys τους
Oxi Οχι
oti οτι
den δεν
kserane ξερανε
bebaia βεβαια
Το τελικό κείμενο θα έχει την εξής μορφή:
"Πρωτη εντυπωση: πολλα λεφτα, ρε παιδακι μου!
Σε κυριλε ξενοδοχειο στο Amsterdam, μεγαλη conference (μιλανε
για 500+ ατομα), οργανωμενη κατα O'Reilly me τα Αμερικανικα προτυπα.
Συμπερασμα: θα μπουνε μεσα αγρια, αποκλειεται να βγαλουν τα λεφα τους.
Οχι οτι δεν to ξερανε, βεβαια."
Όπως θα προσεξατε η μεθοδος δεν είναι τελεια. Π.χ. δεν μετετρεψε τις
λεξεις "με" και "το" και δεν παρέχει τονισμό. Πιστεύω ότι το 1ο
μπορεί να γίνει με έλεγχο των διπλανών λέξεων ενώ το 2ο με χρήση του
ορθογράφου.
Πάντως για μια μέθοδο που μου κατέβηκε μέσα σε 1 ώρα, καλά τα πήγε
πρέπει να το παραδεχτείς :-)
Κώστας
More information about the I18ngr
mailing list