Πρέπει να ξαναγραφτούν για να εναρμονιστεί ο κώδικας με το ΝΣ
επεξεργασία
#!/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()