Επίθετα σε -ος-η-ο

επεξεργασία

Χρειαζόμαστε ένα αρχείο κειμένου με τις ρίζες των επιθέτων.

Δίνουμε: cat source.txt | ./generate_os-i-o.py > final.txt

άγον
ατίθασ
ψεύτικ

generate_os-i-o.py

επεξεργασία
#!/usr/bin/python
# -*- coding: utf-8 -*-

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

fin = sys.stdin

kl_apo = u'ς ά ό ί ή έ ώ ύ ϊ ϋ ΐ ΰ'
kl_se =  u'σ α ο ι η ε ω υ ι υ ι υ'

klapo = kl_apo.split(u' ')
klse = kl_se.split(u' ')

riza = re.compile(u'(.*)')
eof=0

def sortkey(sort):
  for i in range(len(klapo)):
        sort = sort.replace(klapo[i], klse[i])
  return sort

def makeentries(ri):
  m = ri + "ος"
  n = ri + "ο"
  f = ri + "η"

  l = ri + "ου"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσηΓεν|%s}}" % (m)
  print "# {{πτώσηΓεν|%s}}" % (n)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "ο"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσηΑεν|%s}}" % (m)
  print "# {{ουδ του-πτώσειςΟΑΚεν|%s}}" % (m)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "οι"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσειςΟΚπλ|%s}}" % (m)
  print "\n===={{ομώνυμα}}====\n* [[%s]]" % (f)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "ων"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσηΓπλ|%s}}" % (m)
  print "# {{πτώσηΓπλ|%s}}" % (f)
  print "# {{πτώσηΓπλ|%s}}" % (n)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "ους"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσηΑπλ|%s}}" % (m)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "η"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{θηλ του-πτώσειςΟΑΚεν|%s}}" % (m)
  print "\n===={{ομώνυμα}}====\n* [[%sοι]]" % (ri)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "ης"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσηΓεν|%s}}" % (f)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "ες"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσειςΟΑΚπλ|%s}}" % (f)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "α"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσειςΟΑΚπλ|%s}}" % (n)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  l = ri + "ε"
  print "xxxx"
  print "'''%s'''" % (l)
  print "=={{-el-}}==\n\n==={{μορφή επιθέτου|el}}===\n'''{{PAGENAME}}'''"
  print "# {{πτώσηΚεν|%s}}" % (m)
  print "\n{{κλείδα ταξινόμησης|%s}}\n" % (sortkey(l))
  print "[[en:%s]]\nyyyy" % (l)

  return 1

while not eof:
    line = fin.readline()
    if line == "":
	eof = 1
    else:
	r0 = riza.search(line)
	r1 = r0.group(1)
	if r1 != "":
	    makeentries(r1)
fin.close()