Howto - κάνε τους δικoύς σου καταλόγους λέξεων

Είναι δωρεάν, είναι σταθερό, είναι γρήγορο.. ας το γνωρίσουμε και λίγο καλύτερα..

Συντονιστές: Super-Moderators, Software & Hardware Moderators

Απάντηση
Άβαταρ μέλους
Hermeia
Honorary Member
Δημοσιεύσεις: 987
Εγγραφή: 02 Αύγ 2004 00:14
Τοποθεσία: Αθήνα
Επικοινωνία:

Howto - κάνε τους δικoύς σου καταλόγους λέξεων

Δημοσίευση από Hermeia » 27 Δεκ 2008 23:37

σε μια κονσόλα Linux (*)

Κώδικας: Επιλογή όλων

fmt -1 filename.txt | sed "s/'//g" | tr -s '[:space:][:punct:]' "\n" | sort | uniq > filename.wlist.txt
Το αποτέλεσμα (αρχείο filename.wlist.txt) είναι ένας κατάλογος που περιέχει όλες τις "λέξεις" του αρχείου filename.txt, μία σε κάθε σειρά και σε αλβαβητική σειρά (ascii, ανάλογα με την ενεργή κωδικοσελίδα).
"λέξεις" = σειρές συνεχόμενων χαρακτήρων (γράμματα και αριθμοί).
Αν θέλουμε μόνο τις ελληνικές λέξεις..
αυτό μέχρι στιγμής είναι το καλύτερο που βρήκα. Μπορούμε εύκολα να ξεχωρίσουμε τους αριθμούς και τις λατινικές λέξεις που βρίσκονται στην αρχή του αρχείου, πριν από τις ελληνικές.
Αν δούμε "ελληνικές" λέξεις μέσα στις λατινικές.. παρατηρήστε ότι αρχίζουν από (λατινικά) γράμματα που μοιάζουν με ελληνικά (πχ. ABEZHIKMNOPTYXop).. που θέλει διόρθωση (να το γράψουμε με ελληνικό πρώτο γράμμα, και ξανά sort, ή να βάλουμε τη λέξη στη σωστή της θέση). To sort (αλφαβητική σειρά) γίνεται εύκολα και μέσα σε πολλά προγράμματα επεξεργασίας κειμένου.


Αν θέλουμε μόνο τις αγγλικές/λατινικές λέξεις

Κώδικας: Επιλογή όλων

fmt -1 *.txt | sed -e "s/[^A-z'-]//g" | sort | uniq > eg-wordlst.txt
Το αποτέλεσμα eg-wordlst.txt θα περιέχει αλφαβητικό κατάλογο όλων των "λέξεων" που αρχίζουν με λατινικά γράμματα, από όλα τα αρχεία τύπου *.txt που υπάρχουν στην ίδια τοποθεσία (από όπου το τρέχουμε) - εφόσον τα Α και z στην παραπάνω εντολή είναι Λατινικά.

* μια κονσόλα, σε οποιαδήποτε διανομή ή Live Linux, αληθινή κονσόλα ή παράθυρο στο desktop.
Βολεύει να έχει εγκατεστημένα ελληνικά, αλλά δεν είναι απαραίτητο.
Αν έχει εγκατεστημένα ελληνικά, θα μπορούμε και να δούμε το αποτέλεσμα (ή/και να το επεξεργαστούμε) - αλλιώς πάμε σε άλλο λειτουργικό για να δούμε και να επεξεργαστούμε το αποτέλεσμα.
Μπερδέματα με τις κωδικοσελίδες .. ως συνήθως. Το Linux αν έχει ελληνικά, αυτά θα είναι ISO-GREEK Ή UTF-8.
Αν το αρχικό κείμενο ήταν win-greek, τότε δεν θα φαίνονται σωστά τα κεφαλαία τονισμένα ελληνικά (στο iso-greek), εκτός κι αν το ανοίξουμε με κάποιο πρόγραμμα που μας ρωτάει την κωδικοσελίδα στο άνοιγμα. Δοκίμασε το kword. Δεν θα δούμε σωστά αν δεν είναι πολύγλωσση διανομή ή με ελληνική υποστήριξη.


'Ενα πρόσθετο χρήσιμο εργαλείο και πάλι στην κονσόλα του Linux είναι αυτό

Κώδικας: Επιλογή όλων

sort –unique –ignore-case *.txt >list-all.txt
θα πάρει όλες τις λέξεις/γραμμές (πχ. που φτιάξαμε με το προηγούμενο παράδειγμα) από όλα τα αρχεία .txt και θα τα ενώσει στον κατάλογο list-all.txt, χωρίς επαναλήψεις.
Προσοχή, εδώ πρέπει όλα τα αρχεία .txt που έχουμε διαθέσιμα να είναι κατάλογοι λέξεων (μια λέξη σε κάθε γραμμή).

Αν δείτε επαναλήψεις λέξεων μέσα στο αποτέλεσμα list-all.txt, θα σας έχει φύγει κάποιο από τα αρχικά αρχεία και θα είναι σε διαφορετική κωδικοσελίδα - φροντίστε όλα τα αρχεία-πηγές σας να είναι στην ίδια κωδικοσελίδα (πχ. iso-greek), και επαναλάβετε τη δημιουργία του σύνθετου αρχείου.

Πώς αλλάζουμε κωδικοσελίδα σε αρχεία κειμένου;
Ενας τρόπος είναι με το kword – σε ένα linux με υποστήριξη ελληνικών.
Ανοίγουμε με αυτό το αρχείο greekfile.txt ή το έγγραφο greekfile.doc, πάμε στις ρυθμίσεις και αλλάζουμε κωδικοσελίδα (πχ. Ήταν win-greek και το θέλουμε σε utf-8), και αποθηκεύουμε το αρχείο (στη νέα κωδικοσελίδα) με νέο όνομα (πχ. greekfile.utf8.txt/doc).
Σίγουρα υπάρχουν και αρκετοί άλλοι τρόποι (βλέπε και εντολή recode => man recode)

Δοκιμάστηκε στο (live) slax.6.0
(στο οποίο λείπει η recode.. γι αυτό και ανακάλυψα τη δυνατότητα του kword)


Αν κάποιος φίλος μπορεί να βοηθήσει με τις παραμέτρους του sed, ώστε να μας δώσει μόνο ελληνικά γράμματα, θα μας βοηθήσει
(προσπαθώ να κάνω ένα ελληνικό λεξικό..)


ευχαριστώ
και καλή πρωτοχρονιά
Hermeia the InfoSharer
Η Γνώση είναι Δύναμη
Εικόνα

Απάντηση

Επιστροφή στο “Linux Guide”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες