Χρήστης:Flubot/pagefromfile/ρηματικοί τύποι
Για την οριστική του αορίστου βλέπε Χρήστης:Flubot/pagefromfile/ρηματικοί τύποι/αόριστος
Υποτακτική και προστακτική αορίστου
επεξεργασίαΠρώτο βήμα
επεξεργασίαΞεκινάμε με ένα αρχείο κειμένου που περιέχει τον ενεστώτα του ρήματος και το απαρέμφατο αορίστου. Κάτι σαν κι αυτό (το ονομάζω πχ list1):
ζεσταίνομαι;ζεσταθεί ζεσταίνω;ζεστάνει ζυμώνω;ζυμώσει ζω;ζήσει
Δεύτερο βήμα
επεξεργασίαΣτη συνέχεια το δίνουμε στο παρακάτω πρόγραμμα με τίτλο makelist.py και με την εντολή ...
> cat list1 | ./makelist.py > list2
... και παίρνουμε ένα νέο αρχείο list2 με το εξής περιεχόμενο:
ζεσταίνομαι;ζεσταθώ;ζεσταθείς;-;ζεσταθεί;ζεσταθούμε;ζεσταθείτε;+;ζεσταθούν;- ζεσταίνω;ζεστάνω;ζεστάνεις;-;ζεστάνει;ζεστάνουμε;ζεστάνετε;-;ζεστάνουν;ζεστάντε ζυμώνω;ζυμώσω;ζυμώσεις;-;ζυμώσει;ζυμώσουμε;ζυμώσετε;-;ζυμώσουν;ζυμώστε ζω;ζήσω;ζήσεις;-;ζήσει;ζήσουμε;ζήσετε;-;ζήσουν;ζήστε
Στην τρίτη γραμμή πρέπει να αλλάξω το ζυμώσεις;- σε ζυμώσεις;+ διότι το ζυμώσεις είναι και ουσιαστικό και άρα προς το παρόν ο τύπος πρέπει να παραλειφθεί. Το + μετά το β' πληθ. σημαίνει ότι εδώ έχουμε και τύπο προστακτικής ταυτόχρονα, ενώ το - ότι έχουμε μόνο υποτακτική.
Τρίτο βήμα
επεξεργασίαΤο τελευταίο βήμα είναι να παραχθεί το αρχείο για το pagefromfile με το πρόγραμμα rt-ypot.py:
> cat list2 | ./rt-ypot.py > wikitext.txt > ../pywikipedia/pagefromfile.py -start:xxxx -end:yyyy -notitle -file:wikitext
makelist.py
επεξεργασία#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, re
reload(sys)
sys.setdefaultencoding('utf8')
riza = re.compile(u'(.*)')
eof=0
fin = sys.stdin
def makeList(ri, l):
l1 = l[:(len(l)-2)]
l2 = l[(len(l)-2):]
if l2 == u"ει":
s1 = l1 + u"ω"
s2 = l1 + u"εις"
p1 = l1 + u"ουμε"
p2 = l1 + u"ετε"
p3 = l1 + u"ουν"
pp2 = l1 + u"τε"
print u"%s;%s;%s;-;%s;%s;%s;-;%s;%s" % (ri,s1,s2,l,p1,p2,p3,pp2)
else:
s1 = l1 + u"ώ"
s2 = l1 + u"είς"
p1 = l1 + u"ούμε"
p2 = l1 + u"είτε"
p3 = l1 + u"ούν"
print u"%s;%s;%s;-;%s;%s;%s;+;%s;-" % (ri,s1,s2,l,p1,p2,p3)
return 1
while not eof:
grammi = fin.readline()
if grammi == "":
eof = 1
else:
line0 = riza.search(grammi)
line = line0.group(1)
rima = line.split(';')
enestotas = rima[0] + u""
apar = rima[1] + u""
if line != "":
makeList(enestotas, apar)
fin.close()
rt-ypot.py
επεξεργασία#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, re
reload(sys)
sys.setdefaultencoding('utf8')
riza = re.compile(u'(.*)')
eof=0
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 arxi(k):
print "xxxx"
print "'''%s'''" % (k)
print "=={{-el-}}==\n\n==={{μορφή ρήματος|el}}===\n'''{{PAGENAME}}'''"
return 1
def telos(k):
print "\n{{κλείδα ταξινόμησης|%s}}" % (sortkey(k))
print "yyyy"
return 1
def makeEntries(ri,s1,s2,yes2,s3,p1,p2,yesp2,p3,pp2):
arxi(s1)
print "# (''να, ας, αν, ίσως κλπ'') {{ρημ τύπος|α' ενικό [[Παράρτημα:Ρηματικοί τύποι (ελληνικά)#Υποτακτική|υποτακτικής]] αορίστου|%s}}" % (ri)
print "# '''θα {{subst:PAGENAME}}''': {{ρημ τύπος|α' ενικό οριστικής στιγμιαίου μέλλοντα|%s}}" % (ri)
telos(s1)
if yes2 == u"-":
arxi(s2)
print "# (''να, ας, αν, ίσως κλπ'') {{ρημ τύπος|β' ενικό [[Παράρτημα:Ρηματικοί τύποι (ελληνικά)#Υποτακτική|υποτακτικής]] αορίστου|%s}}" % (ri)
print "# '''θα {{subst:PAGENAME}}''': {{ρημ τύπος|β' ενικό οριστικής στιγμιαίου μέλλοντα|%s}}" % (ri)
telos(s2)
arxi(s3)
print "# {{ρημ τύπος|[[Παράρτημα:Ρηματικοί τύποι (ελληνικά)#Απαρέμφατο αορίστου|απαρέμφατο αορίστου]]|%s}}" % (ri)
print "# (''να, ας, αν, ίσως κλπ'') {{ρημ τύπος|γ' ενικό [[Παράρτημα:Ρηματικοί τύποι (ελληνικά)#Υποτακτική|υποτακτικής]] αορίστου|%s}}" % (ri)
print "# '''θα {{subst:PAGENAME}}''': {{ρημ τύπος|γ' ενικό οριστικής στιγμιαίου μέλλοντα|%s}}" % (ri)
telos(s3)
arxi(p1)
print "# (''να, ας, αν, ίσως κλπ'') {{ρημ τύπος|α' πληθυντικό [[Παράρτημα:Ρηματικοί τύποι (ελληνικά)#Υποτακτική|υποτακτικής]] αορίστου|%s}}" % (ri)
print "# '''θα {{subst:PAGENAME}}''': {{ρημ τύπος|α' πληθυντικό οριστικής στιγμιαίου μέλλοντα|%s}}" % (ri)
telos(p1)
arxi(p3)
print "# (''να, ας, αν, ίσως κλπ'') {{ρημ τύπος|γ' πληθυντικό [[Παράρτημα:Ρηματικοί τύποι (ελληνικά)#Υποτακτική|υποτακτικής]] αορίστου|%s}}" % (ri)
print "# '''θα {{subst:PAGENAME}}''': {{ρημ τύπος|γ' πληθυντικό οριστικής στιγμιαίου μέλλοντα|%s}}" % (ri)
telos(p3)
arxi(p2)
print "# (''να, ας, αν, ίσως κλπ'') {{ρημ τύπος|β' πληθυντικό [[Παράρτημα:Ρηματικοί τύποι (ελληνικά)#Υποτακτική|υποτακτικής]] αορίστου|%s}}" % (ri)
print "# '''θα {{subst:PAGENAME}}''': {{ρημ τύπος|β' πληθυντικό οριστικής στιγμιαίου μέλλοντα|%s}}" % (ri)
if yesp2 == u"+":
print "# {{ρημ τύπος|β' πληθυντικό [[προστακτική]]ς αορίστου|%s}}" % (ri)
telos(p2)
if pp2 != u"-":
arxi(pp2)
print "# {{ρημ τύπος|β' πληθυντικό [[προστακτική]]ς αορίστου|%s}}" % (ri)
telos(pp2)
return 1
while not eof:
grammi = fin.readline()
if grammi == "":
eof = 1
else:
line0 = riza.search(grammi)
line = line0.group(1)
rima = line.split(';')
enestotas = rima[0] + u""
e1 = rima[1] + u""
e2 = rima[2] + u""
b2 = rima[3] + u""
e3 = rima[4] + u""
pl1 = rima[5] + u""
pl2 = rima[6] + u""
b3 = rima[7] + u""
pl3 = rima[8] + u""
pr2 = rima[9] + u""
apar = rima[1] + u""
if line != "":
makeEntries(enestotas,e1,e2,b2,e3,pl1,pl2,b3,pl3,pr2)
fin.close()