Χρήστης:Flubot/Κλείδα ταξινόμησης1/παρωχημένο
Μετάβαση στην πλοήγηση
Πήδηση στην αναζήτηση
Γαλλική γλώσσα[επεξεργασία]
Πρέπει να ξαναγραφτούν για να εναρμονιστεί ο κώδικας με το ΝΣ[επεξεργασία]
#!/usr/bin/python # -*- coding: utf-8 -*- #import wikipedia import sys, re, codecs reload(sys) sys.setdefaultencoding('utf8') page_tag = re.compile('<page>') title_tag = re.compile('<title>') title_content = re.compile('<title>([^:]+):(.+)<\/title>') title_capture = re.compile('<title>(.*)<\/title>') lang_template = re.compile('\{\{=([a-z\-]+)=\}\}') spaces_tag = re.compile(u'([ \*\.\'\’\-\(\)]*)') line_txt = re.compile('(.*)') meros_tag = re.compile('\{\{\-([^\|]*)\|fr\}\}') meros1_tag = re.compile('\{\{\-([^\|]*)\|fr\|([^\}]*)\}\}') etym_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|FR\}\}') etym1_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|FR\|([^\}]*)\}\}') categ_tag = re.compile(u'\[\[Κατηγορία:(.*)γαλλικά(\)*)\]\]') categ1_tag = re.compile(u'\[\[Κατηγορία:(.*)γαλλικά(\)*)\|([^\]]*)\]\]') language_header=0 nokleida=0 kleida="" # πίνακες αντιστοίχισης mtg_apo = u'À Â Ç É È Ê Ë Î Ï Ô Œ Ù Û Ü à â ç é è ê ë î ï ô œ ù û ü æ' mtg_se = u'a a c e e e e i i o oe u u u a a c e e e e i i o oe u u u ae' trkeys = mtg_apo.split(u' ') for i in range(len(trkeys)): trkeys[i] = ord(trkeys[i]) trvals = mtg_se.split(u' ') trtable = dict(zip(trkeys,trvals)) # Εδώ διαβάζει το αρχείο xml για να βρει τις λέξεις που χρειάζονται αλλαγή στην κλείδα fin = codecs.open('/home/flyax/wikilexi/getrc/last_full.xml', 'r', 'utf-8') eof=0 while not eof: line = fin.readline() #line = unicode(line, 'utf-8') if line == "": eof = 1 elif page_tag.search(line): namespace="" title="" language_header=0 nokleida=0 kleida="" elif title_tag.search(line): result = title_content.search(line) if result: namespace=result.group(1) title=result.group(2) else: result = title_capture.search(line) if result: namespace="main" title=result.group(1) elif lang_template.search(line): result = lang_template.search(line) if result.group(1)=='fr' and namespace=='main': language_header=1 kleida = title.translate(trtable) # να βρούμε αν η λέξη αρχίζει από se ή από s' ti=kleida.split(' ', 1)[0] if ti=="se" or ti=="s'": kleida = kleida.split(' ', 1)[1] ti=kleida.split('\'', 1)[0] if ti=="s": kleida = kleida.split('\'', 1)[1] kleida = spaces_tag.sub('',kleida) kleida = kleida.lower() if kleida == title: nokleida = 1 else: nokleida = 0 else: language_header=0 nokleida=0 elif language_header and not nokleida and meros_tag.search(line): print u"%s: χρειάζεται κλείδα στο POS, %s" % (title, kleida) elif language_header and not nokleida and etym_tag.search(line): print u"%s: χρειάζεται κλείδα στην ετυμολογία, %s" % (title, kleida) elif language_header and not nokleida and categ_tag.search(line): print u"%s: θέλει κλείδα στην κατηγορία, %s" % (title, kleida) elif language_header and nokleida and meros1_tag.search(line): print u"%s: δεν θέλει κλείδα στο POS, %s" % (title, kleida) elif language_header and nokleida and etym1_tag.search(line): print u"%s: δεν θέλει κλείδα στην ετυμολογία, %s" % (title, kleida) elif language_header and nokleida and categ1_tag.search(line): print u"%s: δεν θέλει κλείδα στην κατηγορία, %s" % (title, kleida) elif language_header and not nokleida and meros1_tag.search(line): result=meros1_tag.search(line) kleida1=result.group(2) if kleida != kleida1: print u"%s: λανθασμένη κλείδα POS %s, σωστή κλείδα %s" % (title,kleida1,kleida) elif language_header and not nokleida and etym1_tag.search(line): result=etym1_tag.search(line) kleida1=result.group(2) if kleida != kleida1: print u"%s: λανθασμένη κλείδα στην ετυμολογία %s, σωστή κλείδα %s" % (title,kleida1,kleida) elif language_header and not nokleida and categ1_tag.search(line): result=categ1_tag.search(line) kleida1=result.group(3) if kleida != kleida1: print u"%s: λανθασμένη κλείδα στην κατηγορία %s, σωστή κλείδα %s" % (title,kleida1,kleida) fin.close()
Γερμανική γλώσσα[επεξεργασία]
Πρέπει να ξαναγραφτούν για να εναρμονιστεί ο κώδικας με το ΝΣ[επεξεργασία]
#!/usr/bin/python # -*- coding: utf-8 -*- #import wikipedia import sys, re, codecs reload(sys) sys.setdefaultencoding('utf8') page_tag = re.compile('<page>') title_tag = re.compile('<title>') title_content = re.compile('<title>([^:]+):(.+)<\/title>') title_capture = re.compile('<title>(.*)<\/title>') lang_template = re.compile('\{\{=([a-z\-]+)=\}\}') spaces_tag = re.compile('([ \*\'\-\(\)]*)') line_txt = re.compile('(.*)') meros_tag = re.compile('\{\{\-([^\|]*)\|de\}\}') meros1_tag = re.compile('\{\{\-([^\|]*)\|de\|([^\}]*)\}\}') etym_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|DE\}\}') etym1_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|DE\|([^\}]*)\}\}') categ_tag = re.compile(u'\[\[Κατηγορία:(.*)γερμανικά(\)*)\]\]') categ1_tag = re.compile(u'\[\[Κατηγορία:(.*)γερμανικά(\)*)\|([^\]]*)\]\]') language_header=0 nokleida=0 kleida="" # πίνακες αντιστοίχισης mtg_apo = u'É Ä Â Ö à â ä ç é è ê ë î ï ô ö ù û ü ß ſ œ' mtg_se = u'e a a o a a a c e e e e i i o o u u u ss s oe' trkeys = mtg_apo.split(u' ') for i in range(len(trkeys)): trkeys[i] = ord(trkeys[i]) trvals = mtg_se.split(u' ') trtable = dict(zip(trkeys,trvals)) # Εδώ διαβάζει το αρχείο xml για να βρει τις λέξεις που χρειάζονται αλλαγή στην κλείδα fin = codecs.open('/home/flyax/wikilexi/getrc/last_full.xml', 'r', 'utf-8') eof=0 while not eof: line = fin.readline() #line = unicode(line, 'utf-8') if line == "": eof = 1 elif page_tag.search(line): namespace="" title="" language_header=0 nokleida=0 kleida="" elif title_tag.search(line): result = title_content.search(line) if result: namespace=result.group(1) title=result.group(2) else: result = title_capture.search(line) if result: namespace="main" title=result.group(1) elif lang_template.search(line): result = lang_template.search(line) if result.group(1)=='de' and namespace=='main': language_header=1 kleida = title.translate(trtable) kleida = spaces_tag.sub('',kleida) kleida = kleida.lower() if kleida == title: nokleida = 1 else: nokleida = 0 else: language_header=0 nokleida=0 elif language_header and not nokleida and meros_tag.search(line): print u"%s: χρειάζεται κλείδα στο POS, %s" % (title, kleida) elif language_header and not nokleida and etym_tag.search(line): print u"%s: χρειάζεται κλείδα στην ετυμολογία, %s" % (title, kleida) elif language_header and not nokleida and categ_tag.search(line): print u"%s: θέλει κλείδα στην κατηγορία, %s" % (title, kleida) elif language_header and nokleida and meros1_tag.search(line): print u"%s: δεν θέλει κλείδα στο POS, %s" % (title, kleida) elif language_header and nokleida and etym1_tag.search(line): print u"%s: δεν θέλει κλείδα στην ετυμολογία, %s" % (title, kleida) elif language_header and nokleida and categ1_tag.search(line): print u"%s: δεν θέλει κλείδα στην κατηγορία, %s" % (title, kleida) elif language_header and not nokleida and meros1_tag.search(line): result=meros1_tag.search(line) kleida1=result.group(2) if kleida != kleida1: print u"%s: λανθασμένη κλείδα POS %s, σωστή κλείδα %s" % (title,kleida1,kleida) elif language_header and not nokleida and etym1_tag.search(line): result=etym1_tag.search(line) kleida1=result.group(2) if kleida != kleida1: print u"%s: λανθασμένη κλείδα στην ετυμολογία %s, σωστή κλείδα %s" % (title,kleida1,kleida) elif language_header and not nokleida and categ1_tag.search(line): result=categ1_tag.search(line) kleida1=result.group(3) if kleida != kleida1: print u"%s: λανθασμένη κλείδα στην κατηγορία %s, σωστή κλείδα %s" % (title,kleida1,kleida) fin.close()
Εσπεράντο[επεξεργασία]
Πρέπει να ξαναγραφτεί[επεξεργασία]
#!/usr/bin/python # -*- coding: utf-8 -*- #import wikipedia import sys, re, codecs reload(sys) sys.setdefaultencoding('utf8') page_tag = re.compile('<page>') title_tag = re.compile('<title>') title_content = re.compile('<title>([^:]+):(.+)<\/title>') title_capture = re.compile('<title>(.*)<\/title>') lang_template = re.compile('\{\{=([a-z\-]+)=\}\}') spaces_tag = re.compile('([ \*\'\-\(\)]*)') line_txt = re.compile('(.*)') meros_tag = re.compile('\{\{\-([^\|]*)\|eo\}\}') meros1_tag = re.compile('\{\{\-([^\|]*)\|eo\|([^\}]*)\}\}') etym_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|EO\}\}') etym1_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|EO\|([^\}]*)\}\}') categ_tag = re.compile(u'\[\[Κατηγορία:(.*)εσπεράντο(\)*)\]\]') categ1_tag = re.compile(u'\[\[Κατηγορία:(.*)εσπεράντο(\)*)\|([^\]]*)\]\]') language_header=0 nokleida=0 kleida="" # πίνακες αντιστοίχισης mtg_apo = u'ĉ ĝ ĥ ĵ ŝ ŭ' mtg_se = u'cα gα hα jα sα uα' trkeys = mtg_apo.split(u' ') for i in range(len(trkeys)): trkeys[i] = ord(trkeys[i]) trvals = mtg_se.split(u' ') trtable = dict(zip(trkeys,trvals)) # Εδώ διαβάζει το αρχείο xml για να βρει τις λέξεις που χρειάζονται αλλαγή στην κλείδα fin = codecs.open('last_full.xml', 'r', 'utf-8') eof=0 while not eof: line = fin.readline() #line = unicode(line, 'utf-8') if line == "": eof = 1 elif page_tag.search(line): namespace="" title="" language_header=0 nokleida=0 kleida="" elif title_tag.search(line): result = title_content.search(line) if result: namespace=result.group(1) title=result.group(2) else: result = title_capture.search(line) if result: namespace="main" title=result.group(1) elif lang_template.search(line): result = lang_template.search(line) if result.group(1)=='eo' and namespace=='main': language_header=1 #Tο πρώτο γράμμα της λέξης μένει εκτός κλείδας T0=title[0:1] t9=title[1:len(title)+1] kleida = t9.translate(trtable) kleida = spaces_tag.sub('',kleida) kleida = T0 + kleida kleida = kleida.lower() if kleida == title: nokleida = 1 else: nokleida = 0 else: language_header=0 nokleida=0 elif language_header and not nokleida and meros_tag.search(line): print u"%s: χρειάζεται κλείδα στο POS, %s" % (title, kleida) elif language_header and not nokleida and etym_tag.search(line): print u"%s: χρειάζεται κλείδα στην ετυμολογία, %s" % (title, kleida) elif language_header and not nokleida and categ_tag.search(line): print u"%s: θέλει κλείδα στην κατηγορία, %s" % (title, kleida) elif language_header and nokleida and meros1_tag.search(line): print u"%s: δεν θέλει κλείδα στο POS, %s" % (title, kleida) # ΚΑΤΙ ΣΥΜΒΑΙΝΕΙ ΜΕ ΤΙΣ ΑΚΟΛΟΥΘΕΣ ΓΡΑΜΜΕΣ ΚΑΙ ΔΕΝ ΔΟΥΛΕΥΟΥΝ ΣΩΣΤΑ elif language_header and nokleida and etym1_tag.search(line): print u"%s: δεν θέλει κλείδα στην ετυμολογία, %s" % (title, kleida) elif language_header and nokleida and categ1_tag.search(line): print u"%s: δεν θέλει κλείδα στην κατηγορία, %s" % (title, kleida) elif language_header and not nokleida and meros1_tag.search(line): result=meros1_tag.search(line) kleida1=result.group(2) if kleida != kleida1: print u"%s: λανθασμένη κλείδα POS %s, σωστή κλείδα %s" % (title,kleida1,kleida) elif language_header and not nokleida and etym1_tag.search(line): result=etym1_tag.search(line) kleida1=result.group(2) if kleida != kleida1: print u"%s: λανθασμένη κλείδα στην ετυμολογία %s, σωστή κλείδα %s" % (title,kleida1,kleida) elif language_header and not nokleida and categ1_tag.search(line): result=categ1_tag.search(line) kleida1=result.group(3) if kleida != kleida1: print u"%s: λανθασμένη κλείδα στην κατηγορία %s, σωστή κλείδα %s" % (title,kleida1,kleida) fin.close()