Χρήστης: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()