Τετάρτη, 28 Νοεμβρίου 2012

Πως να δημιουργήσετε δωρεάν λεξικό για kindle

Ψάχνοντας να βρώ Αγγλοελληνικό λεξικό για το kindle διαπίστωσα ότι δεν υπάρχει κανένα δωρεάν, και μόνο ένα προς πώληση το Slovoed:
amazon Slovoed Compact English-Greek dictionary το οποίο όμως έχει μόνο 4000 λέξεις.

Συνεχίζοντας την αναζήτηση βρήκα ένα ενδιαφέρον blog που έχει οδηγίες για το πως να φτιάξετε το δικό σας δωρεάν kindle λεξικό:
http://1manfactory.com/create-your-own-kindle-dictionary-for-every-language-for-free/

Η λύση που προτείνεται στο site αυτό είναι να κατεβάσετε από το internet ένα αρχείο κειμένου με τις λέξεις ταξινομημένες και σε tab delimited μορφή και έπειτα να τρέξετε δύο προγράμματα μετατροπής του αρχείου αυτού σε mobi dictionary.

Το πρόγραμμα αυτό λειτούργησε σε γενικές γραμμές σωστά, εκτός του ότι τα ελληνικά τα μετατρέπει σε greeglish. Μιας και δεν βρήκα τρόπο να προσπεράσω το συγκεκριμένο πρόβλημα, αποφάσισα να φτιάξω ένα δικό μου πρόγραμμα ακολουθώντας την ίδια μέθοδο.

Την υλοποίηση την έκανα σε java.
Για να δημιουργήσετε το δικό σας kindle αρχείο θα πρέπει
  • Να έχετε εγκατεστημένη java (jdk ή jvm)  Αν πάτε στον πίνακα ελέγχου |Προγράμματα | java Στο tab java επιλέγοντας view | user θα δείτε στο path την τοποθεσία που είναι εγκατεστημένη στον υπολογιστή σας π.χ. C:\program files\java\bin\javaw.exe
  • Να κατεβάσετε το  myDict.zip που περιέχει το πρόγραμμα μετατροπής
  • Να κατεβάσετε το kindlegen το πρόγραμμα της amazon για την δημιουργία αρχείων mobi
  • Να κατεβάσετε ένα αρχείο text σε UTF-8 κωδικοποίηση όπου κάθε γραμμή θα έχει την μορφή Αγγλική λέξη<tab>Μετάφραση. Οι λέξεις  θα πρέπει να είναι ταξινομημένες. Ένα τέτοιο αρχείο μπορείτε να κατεβάσετε από το dict.cc
Αποσυμπιέστε το myDict.zip στον φάκελο που θα δημιουργηθεί τοποθετήστε και το αρχείο των λέξεων και ονομάστε το dictUTF.txt. Επίσης τοποθετήστε στον ίδιο φάκελο και το kindlegen.exe.
Αν θέλετε εξώφυλο δημιουργήστε ένα jpeg αρχείο 600x800 pixels, ονομάστε το
DictCover.jpg και τοποθετήστε το και αυτό στον ίδιο φάκελο..
Ανοίξτε ένα dos παράθυρο και πηγαίνετε στον φάκελο που αποσυμπιέσατε το myDict
Αν έχετε την java στο Path δώστε την εντολή
java dictCreator
αν όχι καλέστε την java με την πλήρη διαδρομή π.χ
C:\program files\java\bin\java dictCreator
Αν όλα πανε καλά θα δημιουργηθεί το αρχείο   dict0.html
Στην συνέχεια τρέξτε την εντολή
kindlegen freeENELdict.opf 
η οποία θα δημιουργήσει το λεξικό  freeENELdict.mobi
το αντιγράφετε στο kindle σας και το βλέπετε με όνομα Free English To Greek Dictionary.

  • Στο myDict.zip υπάρχει και ο source κώδικας.
  • Πιθανόν για μεγάλα αρχεία ο κώδικας να χρειάζεται τροποποίηση. Στην περίπτωση αυτή θα βελτιωθεί.
  • Ένα σημαντικό πρόβλημα είναι η έλλειψη βάσεων που να δίνουν ένα ικανοποιητικό πλήθος λέξεων. Η βάση του dict.cc για παράδειγμα έχει περίπου 3.500 λέξεις που σημαίνει ότι το λεξικό που δημιουργεί δεν είναι καθόλου χρηστικό. Το καλό με το dict.cc είναι ότι ο καθένας μπορεί να συνεισφέρει προσθέτοντας, επιβεβαιώνοντας και διορθώνοντας λέξεις. Αν πάλι κάποιος βρεί μια καλύτερη συλλογή ας μας ενημερώσει.
  • Ο λόγος που σας παιδεύω έτσι με προγράμματα μετατροπής και δεν σας δίνω κατευθείαν το λεξικό, είναι γιατί τουλάχιστον το dict.cc θεωρεί την διανομή λεξικού kindle, επαναδιανομή του αρχείου και δεν το επιτρέπει.



6 σχόλια:

  1. Φίλε τηλέμαχε ευχαριστώ για τις οδηγίες, έκανα ότι λες και δούλεψε το λεξικό μου! Το μόνο πρόβλημα είναι με τις πτώσεις/χρόνους των λέξεων. Δηλαδή η λέξη play γίνεται plays, played, playing. Μπορώ σε ένα κελί να συμπεριλάβω και τις 4 λέξεις ώστε να εμφανίζεται ο ίδιος ορισμός ή πρεπει να γίνουν 4 διαφορετικά λήμματα? Ευχαριστω!

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Αυτό το σχόλιο αφαιρέθηκε από τον συντάκτη.

      Διαγραφή
    2. Χαίρομαι που σου δούλεψε. Θα πρέπει να είναι 4 διαφορετικά λήμματα. Πάντως μου φαίνεται πιό σωστό, μιας και δεν σημαίνουν ακριβώς το ίδιο στο played π.χ. θα έγραφες "έπαιξα αόριστος του παίζω".

      Διαγραφή
  2. Θα προτιμούσα να έβαζα μια έννοια για κάθε λέξη και ξεχωριστή μόνο για τον αόριστο των ανωμαλων ρηματων. Διαφορετικά λήμματα σημαίνει περισσότερος χρόνος για κάθε έννοια/λέξη.

    Κάτι άλλο τώρα. Το αρχείο που έφτιαξα (2000 λέξεων) το ανέβασα σε έναν γνωστό tracker. Σκοπεύω σταδιακά να φτιάξω ένα μίνι λεξικό (μιας και ολοκληρωμένο λεξικό θα μου έπαιρνε χρόνια και κάποια στιγμή κάτι θα κυκλοφορήσει και επίσημα), με λέξεις επιπέδου Advanced και πάνω (υπολογίζω γύρω στις 4-5.000). Επειδή λες παραπάνω στις οδηγίες ότι έφτιαξες δικό σου πρόγραμμα επειδή υπήρχε πρόβλημα με τα greeklish, μπορώ να σε αναφέρω στα credits. Για να είμαστε και σωστοί δηλαδή. Από μέρους μου κανένα πρόβλημα.

    Και πάλι ευχαριστώ για τις οδηγίες, έψαχνα 3 εβδομάδες τώρα να βρω λεξικό. Τουλάχιστον ας φτιάξω ένα δικό μου!

    ΑπάντησηΔιαγραφή
  3. Βασικά θα σε αναφέρω όπως και αν έχει. Απλά πες μου αν θες να γράψω το ονοματεπώνυμο σου ή μόνο το όνομά σου.

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Έφτιαξες δικό σου αρχείο λέξεων δηλαδή; Αν θέλεις μπορώ να κάνω μία τροποποίηση στο πρόγραμμα ώστε να ικανοποιεί και την απαίτησή σου για πολλές λέξεις με κοινή ερμηνεία, αρκεί να καθορίσουμε το format. Αν θέλεις στείλε μου mail στο tilemahos.bitsikas@gmail.com να το συζητήσουμε.
      Όσο για τα credits μπορείς να βάλεις το ονομα.

      Διαγραφή