μεταφράσεις 1

επεξεργασία

Αυτή η εντολή πρέπει να εκτελεστεί μόνο για τον κύριο τομέα (main namespace)!

Για να μετατρέψουμε τις σελίδες σαν περιέργεια με κενές μεταφράσεις (που δεν περιέχουν το πρότυπο {{ξεν}})...

 

   'metafraseis': {
        'regex' : True,
        'msg': {
             'el':u'Bot: πρόσθεση προτύπου {{ξεν}} στις κενές μεταφράσεις',
        },
        'replacements': [
            (u'\n\*( *)\{\{([a-z\-]+)\}\}( *):( *)\r', u'\n<!-- * {{\\2}} : {{ξεν|\\2|XX}} -->\r'),
        ],
    },
}

Τα \r και \n είναι απαραίτητα!

Εξέτασα το αρχείο elwiktionary-20070819-pages-articles.xml για σελίδες που περιέχουν γραμμές

* {{...}} : 

έξω από τον πίνακα μεταφράσεων. Βρήκα δύο, αυτές είχαν ={{-μτφ-}}= αντί για το σκέτο {{-μτφ-}} (υδραυλικός, χημικός), και τις διόρθωσα. Αλλιώς, όλες οι γραμμές που ταιριάζουν την έκφραση στο fixes.py είναι γραμμές μετάφρασης.

μεταφράσεις 2

επεξεργασία

Οι χαρακτήρες [ και * είναι ειδικοί και έχουν μια ιδιαίτερη σημασία στη γλώσσα python στις κανονικές εκφράσεις. Ο αστερίσκος χρησιμοποιείται για να δείχνει ότι ο προηγούμενος χαρακτήρας (η σειρά χαρακτήρων σε παρενθέσεις) μπορεί να ταιριάζει στο κείμενο καμία ή περισσότερες φορές. Π.χ. η έκφραση /abcd*/ ταιριάζει στα abcd, abcdddd, abcf. Η αριστερή αγκύλη [ χρησιμοποιείται μαζί με την ] για να ορίσει μια κλάση χαρακτήρων από την οποία ένας πρέπει να ταιριάζει στο κείμενο. Π.χ. η έκφραση /[a-z]/ ταιριάζει στα a, b, c. Αν θέλετε να χρησιμοποιείτε τον * ή την [ με την κανονική τους έννοια σε μία έκφραση, πρέπει να προηγηθεί η \ όπως βλέπετε στον κώδικα παρακάτω.

Αυτή η εντολή πρέπει να εκτελεστεί μόνο για τον κύριο τομέα (main namespace)!

Για να μετατρέψουμε τις σελίδες σαν οχιά με μεταφράσεις σαν

<!-- *Αγγλικά : [[]] -->

(που δεν χρησιμοποιούν το πρότυπο {{xx}})...


    'metafraseis_1': {
        'regex' : True,
        'msg': {
            'el':u'Bot: "*Όνομα :" --> {{xx}} στις μεταφράσεις',                                                                             
        },
        'replacements': [
            (u'\n<!--( *)\*( *)Βουλγαρικά( *):( *)\[\[\]\]( *)-->\r', u'\n<!-- * {{bg}} : {{ξεν|bg|XX}} -->\r'),
        ],
    },
}

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

Ο κώδικας για το replace.py πρέπει να μετατραπεί ελαφρά:

        for old, new in self.replacements:
#            new_text = wikipedia.replaceExcept(new_text, old, new, ['nowiki', 'comment', 'math', 'pre'], allowoverlap = self.allowoverlap)
            new_text = wikipedia.replaceExcept(new_text, old, new, ['nowiki', 'math', 'pre'], allowoverlap = self.allowoverlap)
        return new_text

Η αφαίρεση του "comment" επιτρέπει τις αλλαγές ακόμα και στα σχόλια (κείμενα δηλαδή που βρίσκονται ανάμεσα στα «βελάκια» <!-- και -->. Πρόκειται για κάτι εξαιρετικά συνηθισμένο στο ελληνικό βικιλεξικό: για παράδειγμα, όλα τα πρότυπα των μεταφράσεων (που περιμένουν υπομονητικά μια... μετάφραση!) βρίσκονται (κρυμμένα) ανάμεσα σε τέτοια «βελάκια» !

μεταφράσεις 3

επεξεργασία

Αφαιρούμε τα περιττά κενά πριν και μετά από το * και το : στις μεταφράσεις με τον παρακάτω κώδικα:

    'metafraseis_2': {
        'regex' : True,
        'msg': {
            'el':u'Bot: αφαίρεση περριτών κενών από μεταφράσεις',                                                                            
        },
        'replacements': [
            (u'\n\<!--( *)\*( *)\{\{([a-z\-]+)\}\}( *):( *)\{',  u'\n<!-- * {{\\3}} : {'),
        ],
    },

άρθρα χωρίς πρότυπο γλώσσας

επεξεργασία

Έχουμε περίπου 1500 άρθρα που δεν περιέχουν πρότυπο γλώσσας. Πριν ξεκινήσουμε την απαραίτητη διαδικασία για την αυτόματη κατηγοριοποίηση, καλό θα ήτανε να έχει το κάθε άρθρο και πρότυπο γλώσσας και πρότυπο για το μέρος λόγου. Ο ακόλουθος κώδικας προσθέτει το πρότυπο {{=el=}} στα άρθρα σ' αυτόν τον κατάλογο:

Η πρόταση είναι του Χρήστης:Lou.

    'protypa_1': {
        'regex' : True,
        'msg': {
            'el':u'Bot: πρόσθεση πρότυπο =el= (α')',                                                                                     
        },
        'replacements': [
            (u'\{\{-ετυμ-\}\}', u'{{=el=}}\r\n{{-ετυμ-}}'),
        ],
    },
}

Τρέξε το μποτ με

python replace.py -fix:protypa_1 -file:articles.txt -except:=el=

στην περίπτωση ότι κάποιος διόρθωσε ένα άρθρο και δεν το ξέρουμε.

επικεφαλίδες 1

επεξεργασία

Αλλαγή από ==Ελληνικά==, ==Ισπανικά, ... σε {{=el=}} , {{=es=}},... Πρόκειται για περίπου 650 σελίδες.

Πλήρης κατάλογος...

    'epikefalides_1': {
        'regex' : True,
        'msg': {
            'el':u'Bot: αλλαγή επικεφαλίδων παλιάς μορφής (α')',               
        },
        'replacements': [
            (u'==Αγγλικά==\r', u'{{=en=}}\r'),
            (u'==Βουλγαρικά==\r', u'{{=bg=}}\r'),
            (u'==Δανικά==\r', u'{{=da=}}\r'),
            (u'==Ελληνικά==\r', u'{{=el=}}\r'),
            (u'==Εσθονικά==\r', u'{{=et=}}\r'),
            (u'==Εσπεράντο==\r', u'{{=eo=}}\r'),
            (u'==Ισλανδικά==\r', u'{{=is=}}\r'),
            (u'==Ισπανικά==\r', u'{{=es=}}\r'),
            (u'==Ιταλικά==\r', u'{{=it=}}\r'),
            (u'==Καταλανικά==\r', u'{{=ca=}}\r'),
            (u'==Λατινικά==\r', u'{{=la=}}\r'),
            (u'==Λιθουανική==\r', u'{{=lt=}}\r'),
            (u'==Μαλαισιακά==\r', u'{{=ms=}}\r'),
            (u'==Νορβηγικά==\r', u'{{=no=}}\r'),
            (u'==Ουκρανικά==\r', u'{{=uk=}}\r'),
            (u'==Πολωνικά==\r', u'{{=pl=}}\r'),
            (u'==Πορτογαλικά==\r', u'{{=pt=}}\r'),
            (u'==Ρουμανικά==\r', u'{{=ro=}}\r'),
            (u'==Σλοβακικά==\r', u'{{=sk=}}\r'),
            (u'==Σουηδικά==\r', u'{{=sv=}}\r'),
            (u'==Τουρκικά==\r', u'{{=tr=}}\r'),
            (u'==Τσεχικά==\r', u'{{=cs=}}\r'),
            (u'==Φινλανδικά==\r', u'{{=fi=}}\r'),
        ],
    },
}

Τρέξε το μποτ με

python replace.py -fix:epikefalides_1 -file:articles.txt 

λήμματα στα ελληνικά χωρίς την σχετική κατηγορία

επεξεργασία


  • ταγγός -- -- -- Μεταγενέστερη ελληνική
  • ταγγίζω -- -- -- Μεταγενέστερη ελληνική


ΣΗΜΕΙΩΣΗ: Αντέγραψα το περιεχόμενο των σελίδων στις αντίστοιχες κατηγορίες. Δοκιμαστικά, μετονόμασα το Οικογένεια στα κορεατικά σε Παράρτημα:Οικογένεια στα κορεατικά, αν όμως η νέα σελίδα εξακολουθεί και είναι στο Κύριο τμήμα, μάλλον αυτή η μετονομασία δεν είχε νόημα. {Flyax)