Καλημέρα,
Σύμφωνα με το Unicode5.1.0 - clarification of lowercase and
uppercase<http://www.unicode.org/versions/Unicode5.1.0/#Other_Changes>,
το τρίτο πεδίο κάθε κειμένου είναι Lu για κεφαλαία, Ll για πεζά, και
διαφορετικό για άλλους χαρακτήρες.
Νομίζω όμως ότι το πιο αξιόπιστο κριτήριο είναι ότι για τους πεζούς
χαρακτήρες το 13ο και το 15ο πεδίο κάθε εγγραφής περιέχει το κεφαλαίο που
αντιστοιχεί στον χαρακτήρα. Αντίστοιχα, για τα κεφαλαία, το 14ο πεδίο
περιέχει το πεζό γράμμα που τους αντιστοιχεί. Μια τέτοια κατάταξη καλύπτει
π.χ. το τελικό σίγμα:
03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
ενώ δεν καλύπτει π.χ. αυτά:
1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;

Τζένη

2009/6/13 Konstantinos Togias <ktog...@gmail.com>

> 2009/6/12 Simos Xenitellis <simos.li...@googlemail.com>:
> > Καλησπέρα,
> > Υπάρχει η ανάγκη για να μετατρέψουμε ένα αρχείο κειμένου σε ένα πίνακα,
> > http://bugs.freedesktop.org/show_bug.cgi?id=22145#c16
> >
> > Η δουλειά είναι:
> > 1. Ανάγνωση του ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt
> > Θέλει κατανόηση των πεδίων για να εντοπίσουμε ποιοι χαρακτήρες είναι
> > αλφαβητικοί.
> > Αλφαβητικοί εδώ είναι τα γράμματα που είναι είτε πεζά ή κεφαλαία.
> > 2. Κάθε χαρακτήρας Unicode έχει ένα αύξων αριθμό, από 1-χχχχ. Εδώ μάς
> > αρκεί μέχρι 65535.
> > 3. Το αποτέλεσμα θέλουμε να είναι κάτι σαν
> >
> > 1    όχι
> > 2    όχι
> > 3    όχι
> > ...
> > 65  ναι
> > 66  ναι
> > ...
> > κτλ
> >
> > 4. Όταν το φτιάξουμε αυτό, μετά μπορούμε να το βελτιστοποιήσουμε διότι
> > οι περισσότεροι χαρακτήρες
> > δεν είναι αλφαβητική. Ωστόσο ας φτάσουμε στο σημείο αυτό.
> >
> > Η όλη δουλειά γίνεται για το ς (σίγμα τελικό).
> >
> > Σίμος
> > --
> > Ubuntu-gr mailing list
> > Ubuntu-gr@lists.ubuntu.com
> >
> > If you do not want to receive any more messages from the ubuntu-gr
> mailing list, please follow this link and choose unsubscribe:
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr
> >
>
> Κοιτώντας στο ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt
> βλέπω γραμμές σαν τις παρακάτω (παραθέτω ενδεικτικά ένα τμήμα που
> αφορά ελληνικούς χαρακτήρες):
> [...]
> 03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399
> 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;
> 03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5
> 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;
> 03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK
> SMALL LETTER ALPHA TONOS;;0386;;0386
> 03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK
> SMALL LETTER EPSILON TONOS;;0388;;0388
> 03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK
> SMALL LETTER ETA TONOS;;0389;;0389
> 03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK
> SMALL LETTER IOTA TONOS;;038A;;038A
> 03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB
> 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;
> 03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391
> 03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392
> 03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393
> 03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394
> [...]
> 03CF;GREEK CAPITAL KAI SYMBOL;Lu;0;L;;;;;N;;;;03D7;
> 03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER
> CURLED BETA;;0392;;0392
> 03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER
> SCRIPT THETA;;0398;;0398
> 03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK
> CAPITAL LETTER UPSILON HOOK;;;;
> 03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2
> 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;
> 03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2
> 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;
> 03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER
> SCRIPT PHI;;03A6;;03A6
> 03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER
> OMEGA PI;;03A0;;03A0
> 03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;03CF;;03CF
> 03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9;
> [...]
>
> αν έχω καταλάβει καλά και αυτό που χρειάζεσαι είναι να ξεχωρίσεις
> ποιες γραμμές αφορούν αλφαβητικούς χαρακτήρες, τότε παρατηρώ ότι για
> τους αλφαβητικούς χαρακτήρες αναφέρεται η λέξη "LETTER", οπότε είναι
> εύκολο να ξεχωριστούν. Παρατηρώντας πιο προσεκτικά βλέπω όμως και
> γραμμές όπως η
>
> 03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2
>
> το οποίο απ' ότι καταλαβαίνω μιλάει για το ύψηλον με διαλυτικά και
> "hook" (τι είναι αυτό άραγε;) ... Το ερώτημα είναι θέλουμε και αυτό;
> το θεωρούμε και αυτό αλφαβητικό; Γενικά πες μας ποιους χαρακτήρες
> θεωρούμε αλφαβητικούς. Αν είναι μόνο τα γράμματα Α-Ω, α-ω , τότε
> μαζεύουμε ότι περιέχει τη λέξη "LETTER" και τελειώσαμε. Αν θέλουμε όλα
> τα γράμματα A-Ω, α-ω μαζί με όλους τους συνδυασμούς τους με τα σημεία
> στίξης (καθένα με τόνο, με διαλυτικά, ... με δεν ξέρω τι άλλο) τότε
> είναι λίγο πιο περίπλοκα τα πράγματα. Μια πρώτη σκέψη είναι το parsing
> να γίνει ως εξής:
>
> 1. Μαζεύουμε όλες τις γραμμές που περιέχουν τη συμβολοσειρά "LETTER".
> 2. Για καθεμία από αυτές βρίσκουμε το όνομα του γράμματος μέσα της
> (π.χ. η λέξη που βρίσκεται ακριβώς μετά το "GREEK CAPITAL LETTER", και
> ξανασαρώνουμε τις γραμμές που έχουν απομείνει ψάχνοντας για το όνομα.
>
> Δεν ξέρω αν το έχω καταλάβει καλά, και ότι προτείνω είναι με μια
> γρήγορη επισκόπηση του αρχείου. Πάντως πρέπει να ξέρουμε ακριβώς τι
> ψάχνουμε και μετά να βρούμε κάποια patterns μέσα στο κείμενο και
> κάποιο αλγόριθμο για να το βρούμε. Απο κεί και πέρα το να γραφτεί ο
> parser σε μια perl ή python είναι το ευκολότερο κομμάτι.
>
> Αν έχω χρόνο ίσως ασχοληθώ κάποια από τις επόμενες ημέρες πιο
> μεθοδικά... Αν έχω κάτι θα σας ενημερώσω. Μέχρι τότε ας προσπαθήσουν ή
> ας ρίξουν ιδέες και άλλοι.
>
> --
> Konstantinos Togias
> Dipl.-Math., M.Sc.
> Hellenic Open University
> and Research Academic Computer Technology Institute
>
> Ubuntu-gr LoCo team member
> --
> Ubuntu-gr mailing list
> Ubuntu-gr@lists.ubuntu.com
>
> If you do not want to receive any more messages from the ubuntu-gr mailing
> list, please follow this link and choose unsubscribe:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr
>
-- 
Ubuntu-gr mailing list
Ubuntu-gr@lists.ubuntu.com

If you do not want to receive any more messages from the ubuntu-gr mailing 
list, please follow this link and choose unsubscribe:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr

Απαντηση