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

  1. σκριπτ για την εύρεση όλων των λημμάτων του ΒΛ που έχουν τομέα γλώσσας αγγλικά
  2. σκριπτ για την εύρεση των λέξεων που βρίσκονται στον υποτομέα μεταφράσεις και μέσα στο πρότυπο {{τ|en|aggliki lexi edw}}. Εννοείται πως αυτό το σκριπτ δεν είναι τέλειο και θα μπορούσε να βελτιωθεί κι άλλο! Ωστόσο ακόμα και σ' αυτήν την πρώτη φάση που βρίσκεται, ήταν χρήσιμο καθώς μπόρεσε να ανιχνεύσει μερικές χιλιάδες λέξεων.
  3. το αρχείο xml που περιέχει όλα τα άρθρα του ΒΛ. Πρέπει να έχει το όνομα last_full.xml

Εντολές επεξεργασία

python find-en.py | sort | uniq > en-transl
python en-titles.py | sort > en-titloi
comm -23 en-transl en-titloi > en-apotelesmata

σκριπτ #1: en-titles.py (για την εύρεση όλων των αγγλικών λημμάτων του ΒΛ) επεξεργασία

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys, re, codecs
reload(sys)
sys.setdefaultencoding('utf8')

page_tag = re.compile('<page>')
page_end = re.compile('<\/page>')
title_tag = re.compile('<title>')
title_content = re.compile('<title>([^:]+):(.+)<\/title>')
title_capture = re.compile('<title>(.*)<\/title>')
lang_template = re.compile('\{\{-en-\}\}')

language_header=0

# Εδώ διαβάζει το αρχείο xml για να βρει τις αγγλικές λέξεις
fin = codecs.open('last_full.xml', 'r', 'utf-8')
eof=0
while not eof:
    line = fin.readline()
    if line == "":
        eof = 1
    elif page_tag.search(line):
	namespace=""
	title=""
	language_header=0
    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) and namespace=='main':
	print title
fin.close()

find-en.py: σκριπτ #2 για την εύρεση των μεταφράσεων επεξεργασία

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys, re, codecs
reload(sys)
sys.setdefaultencoding('utf8')

page_tag = re.compile('<page>')
page_end = re.compile('<\/page>')
title_tag = re.compile('<title>')
title_content = re.compile('<title>([^:]+):(.+)<\/title>')
title_capture = re.compile('<title>(.*)<\/title>')
lang_template = re.compile('\{\{-el-\}\}')

en1 = re.compile(u'\{\{τ\|en\|([^\|\}]+)')
en2 = re.compile(u'\{\{τ\|en\|([^\}]+)\}\}(.+)?{\{τ\|en\|([^\}]+)\}\}')
en3 = re.compile(u'\{\{τ\|en\|([^\}]+)\}\}(.+)?{\{τ\|en\|([^\}]+)\}\}(.+)?{\{τ\|en\|([^\}]+)\}\}')

language_header=0

# Εδώ διαβάζει το αρχείο xml για να βρει τις αγγλικές μεταφράσεις
fin = codecs.open('last_full.xml', 'r', 'utf-8')
eof=0
while not eof:
    line = fin.readline()
    if line == "":
        eof = 1
    elif page_tag.search(line):
	namespace=""
	title=""
	language_header=0
    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) and namespace=='main':
	language_header=1
    elif language_header and en3.search(line):
	result=en3.search(line)
	kleida1=result.group(1)
	kleida2=result.group(3)
	kleida3=result.group(5)
	print kleida1
	print kleida2
	print kleida3
    elif language_header and en2.search(line):
	result=en2.search(line)
	kleida1=result.group(1)
	kleida2=result.group(3)
	print kleida1
	print kleida2
    elif language_header and en1.search(line):
	result=en1.search(line)
	kleida1=result.group(1)
	print kleida1
fin.close()