Skip to content

Commit 0a3c623

Browse files
committed
Lenčiny bloky přizpůsobeny integraci do Udapi podobně jako už dříve slavic.Conditional.
1 parent f18143a commit 0a3c623

File tree

8 files changed

+136
-218
lines changed

8 files changed

+136
-218
lines changed

udapi/block/mwe/slavic/conditional.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
#!/usr/bin/env python3
2-
3-
# Conditional mood of Slavic languages
1+
"""
2+
Morphosyntactic features (UniDive, Lenka Krippnerová):
3+
This block detects conditional verb forms in Slavic languages and saves their
4+
features as Phrase* attributes in MISC of their head word.
5+
"""
46

57
import udapi.block.mwe.msfphrase
68

udapi/block/mwe/slavic/converb.py

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,12 @@
1-
#!/usr/bin/env python3
1+
"""
2+
Morphosyntactic features (UniDive, Lenka Krippnerová):
3+
This block detects converb (transgressive) forms in Slavic languages and saves their
4+
features as Phrase* attributes in MISC of their head word.
5+
"""
26

3-
# Transgressives of Slavic languages
7+
import udapi.block.mwe.msfphrase
48

5-
from udapi.core.block import Block
6-
import importlib
7-
import sys
8-
9-
class Slavic_transgressive(Block):
10-
def __init__(self, writer_prefix='',**kwargs):
11-
super().__init__(**kwargs)
12-
if writer_prefix != '':
13-
writer_module = ".".join([writer_prefix,'writer'])
14-
else:
15-
writer_module = 'writer'
16-
try:
17-
module = importlib.import_module(writer_module)
18-
except ModuleNotFoundError as e:
19-
print(e, file=sys.stderr)
20-
print("Try to set writer_prefix parameter.", file=sys.stderr)
21-
exit(1)
22-
23-
self.wr = module.Writer()
9+
class Converb(udapi.block.mwe.msfphrase.MsfPhrase):
2410

2511
def process_node(self, node):
2612
# condition node.upos == 'VERB' to prevent copulas from entering this branch
@@ -31,18 +17,18 @@ def process_node(self, node):
3117
phrase_ords = [node.ord] + [x.ord for x in refl] + [x.ord for x in neg]
3218
phrase_ords.sort()
3319

34-
self.wr.write_node_info(node,
20+
self.write_node_info(node,
3521
person=node.feats['Person'],
3622
number=node.feats['Number'],
3723
form='Conv',
3824
tense=node.feats['Tense'],
3925
aspect=node.feats['Aspect'],
40-
polarity=self.wr.get_polarity(node,neg),
41-
reflex=self.wr.get_is_reflex(node,refl),
26+
polarity=self.get_polarity(node,neg),
27+
reflex=self.get_is_reflex(node,refl),
4228
ords=phrase_ords,
4329
gender=node.feats['Gender'],
4430
animacy=node.feats['Animacy'],
45-
voice=self.wr.get_voice(node, refl)
31+
voice=self.get_voice(node, refl)
4632
)
4733

4834
# passive voice
@@ -55,13 +41,13 @@ def process_node(self, node):
5541
phrase_ords = [node.ord] + [x.ord for x in aux] + [x.ord for x in neg]
5642
phrase_ords.sort()
5743

58-
self.wr.write_node_info(node,
44+
self.write_node_info(node,
5945
person=auxVerb.feats['Person'],
6046
number=auxVerb.feats['Number'],
6147
form='Conv',
6248
tense=auxVerb.feats['Tense'],
6349
aspect=node.feats['Aspect'],
64-
polarity=self.wr.get_polarity(auxVerb,neg),
50+
polarity=self.get_polarity(auxVerb,neg),
6551
ords=phrase_ords,
6652
gender=auxVerb.feats['Gender'],
6753
animacy=auxVerb.feats['Animacy'],
@@ -82,15 +68,15 @@ def process_node(self, node):
8268
phrase_ords.sort()
8369

8470

85-
self.wr.write_node_info(node,
71+
self.write_node_info(node,
8672
person=copVerb.feats['Person'],
8773
number=copVerb.feats['Number'],
8874
tense=copVerb.feats['Tense'],
8975
gender=copVerb.feats['Gender'],
9076
animacy=copVerb.feats['Animacy'],
9177
form='Conv',
92-
polarity=self.wr.get_polarity(node,neg),
78+
polarity=self.get_polarity(node,neg),
9379
ords=phrase_ords,
94-
voice=self.wr.get_voice(copVerb, refl)
80+
voice=self.get_voice(copVerb, refl)
9581
)
9682

udapi/block/mwe/slavic/future.py

Lines changed: 31 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,12 @@
1-
#!/usr/bin/env python3
1+
"""
2+
Morphosyntactic features (UniDive, Lenka Krippnerová):
3+
This block detects future tense forms in Slavic languages and saves their
4+
features as Phrase* attributes in MISC of their head word.
5+
"""
26

3-
# Future tense of Slavic languages
7+
import udapi.block.mwe.msfphrase
48

5-
from udapi.core.block import Block
6-
import importlib
7-
import sys
8-
9-
class Slavic_future(Block):
10-
def __init__(self, writer_prefix='',**kwargs):
11-
super().__init__(**kwargs)
12-
if writer_prefix != '':
13-
writer_module = ".".join([writer_prefix,'writer'])
14-
else:
15-
writer_module = 'writer'
16-
try:
17-
module = importlib.import_module(writer_module)
18-
except ModuleNotFoundError as e:
19-
print(e, file=sys.stderr)
20-
print("Try to set writer_prefix parameter.", file=sys.stderr)
21-
exit(1)
22-
23-
self.wr = module.Writer()
9+
class Future(udapi.block.mwe.msfphrase.MsfPhrase):
2410

2511
def process_node(self, node):
2612
# future tense for Serbian and Croatian
@@ -39,16 +25,16 @@ def process_node(self, node):
3925
#if voice == '':
4026
# voice = 'Act'
4127
if len(cop) == 0:
42-
self.wr.write_node_info(node,
28+
self.write_node_info(node,
4329
tense='Fut',
4430
person=aux[0].feats['Person'],
4531
number=aux[0].feats['Number'],
4632
mood='Ind',
4733
voice=voice,
4834
aspect=node.feats['Aspect'], # srbstina ani chorvatstina vidy nema
4935
form='Fin',
50-
polarity=self.wr.get_polarity(node,neg),
51-
reflex=self.wr.get_is_reflex(node,refl),
36+
polarity=self.get_polarity(node,neg),
37+
reflex=self.get_is_reflex(node,refl),
5238
gender=node.feats['Gender'],
5339
animacy=node.feats['Animacy'],
5440
ords=phrase_ords
@@ -58,16 +44,16 @@ def process_node(self, node):
5844
phrase_ords += [x.ord for x in prep]
5945
phrase_ords.sort()
6046

61-
self.wr.write_node_info(node,
47+
self.write_node_info(node,
6248
tense='Fut',
6349
person=aux[0].feats['Person'],
6450
number=aux[0].feats['Number'],
6551
mood='Ind',
6652
voice=voice,
6753
aspect=node.feats['Aspect'],
6854
form='Fin',
69-
polarity=self.wr.get_polarity(node,neg),
70-
reflex=self.wr.get_is_reflex(node,refl),
55+
polarity=self.get_polarity(node,neg),
56+
reflex=self.get_is_reflex(node,refl),
7157
gender=node.feats['Gender'],
7258
animacy=node.feats['Animacy'],
7359
ords=phrase_ords
@@ -85,16 +71,16 @@ def process_node(self, node):
8571
phrase_ords = [node.ord] + [x.ord for x in refl] + [x.ord for x in neg] + [x.ord for x in aux]
8672
phrase_ords.sort()
8773

88-
self.wr.write_node_info(node,
74+
self.write_node_info(node,
8975
tense='Fut',
9076
person=node.feats['Person'],
9177
number=node.feats['Number'],
9278
mood='Ind',
9379
voice=node.feats['Voice'],
9480
aspect=node.feats['Aspect'],
9581
form='Fin',
96-
polarity=self.wr.get_polarity(node,neg),
97-
reflex=self.wr.get_is_reflex(node,refl),
82+
polarity=self.get_polarity(node,neg),
83+
reflex=self.get_is_reflex(node,refl),
9884
ords=phrase_ords
9985
)
10086
return
@@ -110,16 +96,16 @@ def process_node(self, node):
11096
phrase_ords = [node.ord] + [x.ord for x in refl] + [x.ord for x in neg]
11197
phrase_ords.sort()
11298
113-
self.wr.write_node_info(node,
99+
self.write_node_info(node,
114100
tense='Fut',
115101
person=node.feats['Person'],
116102
number=node.feats['Number'],
117103
mood='Ind',
118-
voice=self.wr.get_voice(node,refl),
104+
voice=self.get_voice(node,refl),
119105
form='Fin',
120106
aspect='Perf',
121-
polarity=self.wr.get_polarity(node,neg),
122-
reflex=self.wr.get_is_reflex(node,refl),
107+
polarity=self.get_polarity(node,neg),
108+
reflex=self.get_is_reflex(node,refl),
123109
ords=phrase_ords
124110
)
125111
return"""
@@ -138,16 +124,16 @@ def process_node(self, node):
138124
auxVerb = aux[0]
139125
phrase_ords = [node.ord] + [x.ord for x in aux] + [x.ord for x in refl] + [x.ord for x in neg]
140126
phrase_ords.sort()
141-
self.wr.write_node_info(node,
127+
self.write_node_info(node,
142128
tense='Fut',
143129
person=auxVerb.feats['Person'],
144130
number=auxVerb.feats['Number'],
145131
mood='Ind',
146-
voice=self.wr.get_voice(node,refl),
132+
voice=self.get_voice(node,refl),
147133
aspect=node.feats['Aspect'],
148134
form='Fin',
149-
polarity=self.wr.get_polarity(auxVerb,neg),
150-
reflex=self.wr.get_is_reflex(node,refl),
135+
polarity=self.get_polarity(auxVerb,neg),
136+
reflex=self.get_is_reflex(node,refl),
151137
ords=phrase_ords,
152138
gender=node.feats['Gender'],
153139
animacy=node.feats['Animacy']
@@ -162,16 +148,16 @@ def process_node(self, node):
162148
phrase_ords = [node.ord] + [x.ord for x in refl] + [x.ord for x in neg]
163149
phrase_ords.sort()
164150

165-
self.wr.write_node_info(node,
151+
self.write_node_info(node,
166152
tense='Fut',
167153
person=node.feats['Person'],
168154
number=node.feats['Number'],
169155
mood='Ind',
170-
voice=self.wr.get_voice(node,refl), # passivum se muze objevit (napr. pojede se), ale jmenny rod neni vyjadren
156+
voice=self.get_voice(node,refl), # passivum se muze objevit (napr. pojede se), ale jmenny rod neni vyjadren
171157
aspect=node.feats['Aspect'],
172158
form='Fin',
173-
polarity=self.wr.get_polarity(node,neg),
174-
reflex=self.wr.get_is_reflex(node,refl),
159+
polarity=self.get_polarity(node,neg),
160+
reflex=self.get_is_reflex(node,refl),
175161
ords=phrase_ords
176162
)
177163
return
@@ -188,14 +174,14 @@ def process_node(self, node):
188174
phrase_ords = [node.ord] + [x.ord for x in cop] + [x.ord for x in aux] + [x.ord for x in prep] + [x.ord for x in neg] + [x.ord for x in refl]
189175
phrase_ords.sort()
190176

191-
self.wr.write_node_info(node,
177+
self.write_node_info(node,
192178
tense='Fut',
193179
person=copVerb.feats['Person'],
194180
number=copVerb.feats['Number'],
195181
mood='Ind',
196182
form='Fin',
197-
voice=self.wr.get_voice(copVerb, refl),
198-
polarity=self.wr.get_polarity(copVerb,neg),
183+
voice=self.get_voice(copVerb, refl),
184+
polarity=self.get_polarity(copVerb,neg),
199185
ords=phrase_ords
200186
)
201187

udapi/block/mwe/slavic/imperative.py

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,12 @@
1-
#!/usr/bin/env python3
1+
"""
2+
Morphosyntactic features (UniDive, Lenka Krippnerová):
3+
This block detects imperative verb forms in Slavic languages and saves their
4+
features as Phrase* attributes in MISC of their head word.
5+
"""
26

3-
# Imperative of Slavic languages
7+
import udapi.block.mwe.msfphrase
48

5-
from udapi.core.block import Block
6-
import importlib
7-
import sys
8-
9-
class Slavic_imperative(Block):
10-
def __init__(self, writer_prefix='',**kwargs):
11-
super().__init__(**kwargs)
12-
if writer_prefix != '':
13-
writer_module = ".".join([writer_prefix,'writer'])
14-
else:
15-
writer_module = 'writer'
16-
try:
17-
module = importlib.import_module(writer_module)
18-
except ModuleNotFoundError as e:
19-
print(e, file=sys.stderr)
20-
print("Try to set writer_prefix parameter.", file=sys.stderr)
21-
exit(1)
22-
23-
self.wr = module.Writer()
9+
class Imperative(udapi.block.mwe.msfphrase.MsfPhrase):
2410

2511
def process_node(self, node):
2612
# the condition node.upos == 'VERB' ensures that copulas do not enter this branch
@@ -31,15 +17,15 @@ def process_node(self, node):
3117
phrase_ords = [node.ord] + [x.ord for x in refl] + [x.ord for x in neg]
3218
phrase_ords.sort()
3319

34-
self.wr.write_node_info(node,
20+
self.write_node_info(node,
3521
person=node.feats['Person'],
3622
number=node.feats['Number'],
3723
aspect=node.feats['Aspect'],
3824
mood='Imp',
3925
form='Fin',
4026
voice='Act',
41-
polarity=self.wr.get_polarity(node,neg),
42-
reflex=self.wr.get_is_reflex(node,refl),
27+
polarity=self.get_polarity(node,neg),
28+
reflex=self.get_is_reflex(node,refl),
4329
ords=phrase_ords
4430
)
4531
return
@@ -53,14 +39,14 @@ def process_node(self, node):
5339
phrase_ords = [node.ord] + [x.ord for x in aux] + [x.ord for x in neg]
5440
phrase_ords.sort()
5541

56-
self.wr.write_node_info(node,
42+
self.write_node_info(node,
5743
person=aux[0].feats['Person'],
5844
number=aux[0].feats['Number'],
5945
mood='Imp',
6046
voice='Pass',
6147
aspect=node.feats['Aspect'],
6248
form='Fin',
63-
polarity=self.wr.get_polarity(node,neg),
49+
polarity=self.get_polarity(node,neg),
6450
ords=phrase_ords,
6551
gender=node.feats['Gender'],
6652
animacy=node.feats['Animacy']
@@ -78,16 +64,14 @@ def process_node(self, node):
7864
phrase_ords = [node.ord] + [x.ord for x in cop] + [x.ord for x in prep] + [x.ord for x in neg] + [x.ord for x in refl]
7965
phrase_ords.sort()
8066

81-
self.wr.write_node_info(node,
67+
self.write_node_info(node,
8268
person=copVerb.feats['Person'],
8369
number=copVerb.feats['Number'],
8470
mood='Imp',
8571
form='Fin',
86-
voice=self.wr.get_voice(copVerb, refl),
87-
reflex=self.wr.get_is_reflex(node, refl),
88-
polarity=self.wr.get_polarity(node,neg),
72+
voice=self.get_voice(copVerb, refl),
73+
reflex=self.get_is_reflex(node, refl),
74+
polarity=self.get_polarity(node,neg),
8975
ords=phrase_ords
9076
)
91-
92-
9377

0 commit comments

Comments
 (0)