Moved files from nova_slovnica and data_admin repositories
This commit is contained in:
parent
5027a8388d
commit
d741a365ab
|
@ -1 +1,3 @@
|
|||
include conversion_utils/resources/jos_specifications.pickle
|
||||
include conversion_utils/resources/dict.xml
|
||||
include conversion_utils/resources/structure_conversions.csv
|
||||
|
|
291
conversion_utils/conllu_to_tei.py
Normal file
291
conversion_utils/conllu_to_tei.py
Normal file
|
@ -0,0 +1,291 @@
|
|||
import argparse
|
||||
import re
|
||||
import sys
|
||||
|
||||
from lxml import etree
|
||||
|
||||
class Sentence:
|
||||
def __init__(self, _id, no_ud=False):
|
||||
self._id = _id
|
||||
self.items = []
|
||||
self.links = []
|
||||
self.no_ud = no_ud
|
||||
|
||||
def add_item(self, token, lemma, upos, upos_other, xpos, misc):
|
||||
self.items.append([token, lemma, upos, upos_other, xpos, misc == "SpaceAfter=No"])
|
||||
|
||||
def add_link(self, link_ref, link_type):
|
||||
self.links.append([link_ref, link_type])
|
||||
|
||||
def as_xml(self, id_prefix=None):
|
||||
if id_prefix:
|
||||
xml_id = id_prefix + '.' + self._id
|
||||
else:
|
||||
xml_id = self._id
|
||||
base = etree.Element('s')
|
||||
set_xml_attr(base, 'id', xml_id)
|
||||
id_counter = 1
|
||||
|
||||
for item in self.items:
|
||||
token, lemma, upos, upos_other, xpos, no_space_after = item
|
||||
|
||||
if xpos in {'U', 'Z'}: # hmm, safe only as long as U is unused in English tagset and Z in Slovenian one
|
||||
to_add = etree.Element('pc')
|
||||
else:
|
||||
to_add = etree.Element('w')
|
||||
to_add.set('lemma', lemma)
|
||||
|
||||
to_add.set('ana', 'mte:' + xpos)
|
||||
if not self.no_ud:
|
||||
if upos_other != '_':
|
||||
to_add.set('msd', f'UposTag={upos}|{upos_other}')
|
||||
else:
|
||||
to_add.set('msd', f'UposTag={upos}')
|
||||
|
||||
set_xml_attr(to_add, 'id', "{}.{}".format(xml_id, id_counter))
|
||||
to_add.text = token
|
||||
|
||||
id_counter += 1
|
||||
|
||||
if no_space_after:
|
||||
to_add.set('join', 'right')
|
||||
|
||||
base.append(to_add)
|
||||
|
||||
link_grp = etree.Element('linkGrp')
|
||||
link_grp.set('corresp', '#'+xml_id)
|
||||
link_grp.set('targFunc', 'head argument')
|
||||
link_grp.set('type', 'JOS-SYN')
|
||||
for link_id, item in enumerate(self.links):
|
||||
link_ref, link_type = item
|
||||
link = etree.Element('link')
|
||||
link.set('ana', 'jos-syn:' + link_type)
|
||||
if link_ref == u'0':
|
||||
link.set('target', '#' + xml_id + ' #' + xml_id + '.' + str(link_id + 1))
|
||||
else:
|
||||
link.set('target', '#' + xml_id + '.' + link_ref + ' #' + xml_id + '.' + str(link_id + 1))
|
||||
link_grp.append(link)
|
||||
base.append(link_grp)
|
||||
return base
|
||||
|
||||
|
||||
class Paragraph:
|
||||
def __init__(self, _id):
|
||||
self._id = _id
|
||||
self.sentences = []
|
||||
|
||||
def add_sentence(self, sentence):
|
||||
self.sentences.append(sentence)
|
||||
|
||||
def as_xml(self, id_prefix=None):
|
||||
if id_prefix:
|
||||
xml_id = id_prefix + '.' + self._id
|
||||
else:
|
||||
xml_id = self._id
|
||||
|
||||
p = etree.Element('p')
|
||||
set_xml_attr(p, 'id', xml_id)
|
||||
|
||||
for sent in self.sentences:
|
||||
p.append(sent.as_xml(id_prefix=id_prefix))
|
||||
return p
|
||||
|
||||
|
||||
class TeiDocument:
|
||||
def __init__(self, _id, paragraphs=list()):
|
||||
self._id = _id
|
||||
self.paragraphs = paragraphs
|
||||
|
||||
def as_xml(self):
|
||||
root = etree.Element('TEI')
|
||||
root.set('xmlns', 'http://www.tei-c.org/ns/1.0')
|
||||
set_xml_attr(root, 'lang', 'sl')
|
||||
|
||||
xml_id = self._id
|
||||
if xml_id is not None:
|
||||
set_xml_attr(root, 'id', xml_id)
|
||||
|
||||
tei_header = etree.SubElement(root, 'teiHeader')
|
||||
|
||||
text = etree.SubElement(root, 'text')
|
||||
body = etree.SubElement(text, 'body')
|
||||
for para in self.paragraphs:
|
||||
body.append(para.as_xml(id_prefix=xml_id))
|
||||
|
||||
encoding_desc = etree.SubElement(tei_header, 'encodingDesc')
|
||||
tags_decl = etree.SubElement(encoding_desc, 'tagsDecl')
|
||||
namespace = etree.SubElement(tags_decl, 'namespace')
|
||||
namespace.set('name', 'http://www.tei-c.org/ns/1.0')
|
||||
for tag in ['p', 's', 'pc', 'w']:
|
||||
count = int(text.xpath('count(.//{})'.format(tag)))
|
||||
tag_usage = etree.SubElement(namespace, 'tagUsage')
|
||||
tag_usage.set('gi', tag)
|
||||
tag_usage.set('occurs', str(count))
|
||||
return root
|
||||
|
||||
def add_paragraph(self, paragraph):
|
||||
self.paragraphs.append(paragraph)
|
||||
|
||||
|
||||
def build_tei_etrees(documents):
|
||||
elements = []
|
||||
for document in documents:
|
||||
elements.append(document.as_xml())
|
||||
return elements
|
||||
|
||||
|
||||
def set_xml_attr(node, attribute, value):
|
||||
node.attrib['{http://www.w3.org/XML/1998/namespace}' + attribute] = value
|
||||
|
||||
|
||||
def parse_metaline(line):
|
||||
tokens = line.split('=', 1)
|
||||
key = tokens[0].replace('#', '').strip()
|
||||
if len(tokens) > 1 and not tokens[1].isspace():
|
||||
val = tokens[1].strip()
|
||||
else:
|
||||
val = None
|
||||
return (key, val)
|
||||
|
||||
|
||||
def is_metaline(line):
|
||||
if re.match('# .+ =.*', line):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def construct_tei_documents(conllu_lines):
|
||||
documents = []
|
||||
|
||||
doc_id = None
|
||||
document_paragraphs = []
|
||||
|
||||
para_id = None
|
||||
para_buffer = []
|
||||
|
||||
for line in conllu_lines:
|
||||
if is_metaline(line):
|
||||
key, val = parse_metaline(line)
|
||||
if key == 'newdoc id':
|
||||
if len(para_buffer) > 0:
|
||||
document_paragraphs.append(construct_paragraph(para_id, para_buffer))
|
||||
if len(document_paragraphs) > 0:
|
||||
documents.append(
|
||||
TeiDocument(doc_id, document_paragraphs))
|
||||
document_paragraphs = []
|
||||
doc_id = val
|
||||
elif key == 'newpar id':
|
||||
if len(para_buffer) > 0:
|
||||
document_paragraphs.append(construct_paragraph(para_id, para_buffer))
|
||||
para_buffer = []
|
||||
para_id = val
|
||||
elif key == 'sent_id':
|
||||
para_buffer.append(line)
|
||||
else:
|
||||
if not line.isspace():
|
||||
para_buffer.append(line)
|
||||
|
||||
if len(para_buffer) > 0:
|
||||
document_paragraphs.append(construct_paragraph(para_id, para_buffer))
|
||||
|
||||
if len(document_paragraphs) > 0:
|
||||
documents.append(
|
||||
TeiDocument(doc_id, document_paragraphs))
|
||||
|
||||
return documents
|
||||
|
||||
|
||||
def construct_paragraph(para_id, conllu_lines):
|
||||
para = Paragraph(para_id)
|
||||
|
||||
sent_id = None
|
||||
sent_buffer = []
|
||||
|
||||
for line in conllu_lines:
|
||||
if is_metaline(line):
|
||||
key, val = parse_metaline(line)
|
||||
if key == 'sent_id':
|
||||
if len(sent_buffer) > 0:
|
||||
para.add_sentence(construct_sentence(sent_id, sent_buffer))
|
||||
sent_buffer = []
|
||||
sent_id = val
|
||||
elif not line.isspace():
|
||||
sent_buffer.append(line)
|
||||
|
||||
if len(sent_buffer) > 0:
|
||||
para.add_sentence(construct_sentence(sent_id, sent_buffer))
|
||||
|
||||
return para
|
||||
|
||||
|
||||
def construct_sentence(sent_id, lines):
|
||||
sentence = Sentence(sent_id)
|
||||
for line in lines:
|
||||
if line.startswith('#') or line.isspace():
|
||||
continue
|
||||
line = line.replace('\n', '')
|
||||
tokens = line.split('\t')
|
||||
word_id = tokens[0]
|
||||
token = tokens[1]
|
||||
lemma = tokens[2]
|
||||
upos = tokens[3]
|
||||
xpos = tokens[4]
|
||||
upos_other = tokens[5]
|
||||
depparse_link = tokens[6]
|
||||
depparse_link_name = tokens[7]
|
||||
misc = tokens[9]
|
||||
|
||||
sentence.add_item(
|
||||
token,
|
||||
lemma,
|
||||
upos,
|
||||
upos_other,
|
||||
xpos,
|
||||
misc)
|
||||
|
||||
sentence.add_link(
|
||||
depparse_link,
|
||||
depparse_link_name)
|
||||
return sentence
|
||||
|
||||
|
||||
def construct_tei_etrees(conllu_lines):
|
||||
documents = construct_tei_documents(conllu_lines)
|
||||
return build_tei_etrees(documents)
|
||||
|
||||
|
||||
def convert_file(input_file_name, output_file_name):
|
||||
input_file = open(input_file_name, 'r')
|
||||
root = construct_tei_etrees(input_file)[0]
|
||||
tree = etree.ElementTree(root)
|
||||
tree.write(output_file_name, encoding='UTF-8', pretty_print=True)
|
||||
input_file.close()
|
||||
|
||||
tree = etree.ElementTree(root)
|
||||
tree.write(output_file_name, pretty_print=True, encoding='utf-8')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import argparse
|
||||
from glob import glob
|
||||
|
||||
parser = argparse.ArgumentParser(description='Convert CoNNL-U to TEI.')
|
||||
parser.add_argument('files', nargs='+', help='CoNNL-U file')
|
||||
parser.add_argument('-o', '--out-file', dest='out', default=None,
|
||||
help='Write output to file instead of stdout.')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.out:
|
||||
f_out = open(args.out, 'w')
|
||||
else:
|
||||
f_out = sys.stdout
|
||||
|
||||
for arg in args.files:
|
||||
filelist = glob(arg)
|
||||
for f in filelist:
|
||||
with open(f, 'r') as conllu_f:
|
||||
tei_etrees = construct_tei_etrees(conllu_f)
|
||||
for tei_etree in tei_etrees:
|
||||
f_out.write(etree.tostring(tei_etree, pretty_print=True, encoding='utf-8').decode())
|
||||
f_out.write('')
|
14
conversion_utils/resources/dict.xml
Normal file
14
conversion_utils/resources/dict.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<dict>
|
||||
<syns>
|
||||
<syn sl="modra" en="Root"/>
|
||||
<syn sl="del" en="PPart"/>
|
||||
<syn sl="dol" en="Atr"/>
|
||||
<syn sl="ena" en="Sb"/>
|
||||
<syn sl="dve" en="Obj"/>
|
||||
<syn sl="tri" en="AdvM"/>
|
||||
<syn sl="štiri" en="AdvO"/>
|
||||
<syn sl="prir" en="Coord"/>
|
||||
<syn sl="vez" en="Conj"/>
|
||||
<syn sl="skup" en="MWU"/>
|
||||
</syns>
|
||||
</dict>
|
193
conversion_utils/resources/structure_conversions.csv
Normal file
193
conversion_utils/resources/structure_conversions.csv
Normal file
|
@ -0,0 +1,193 @@
|
|||
gramrel|struktura|Name_ID|DSB|Simon|Simon-1|NSSS|Pov-REFL|Pov-NEG|Zgled|LBS|Opomba-1|Opomba-2|Opomba-3|Flip
|
||||
S_G-inf|<struktura>gbz Inf-GBZ</struktura>|gg-ggn|12|50||12|||uspeti VIDETI|LBS-071|brez povratnih|||
|
||||
S_nedoločnik|<struktura>GBZ Inf-gbz</struktura>|gg-ggn|12|50||12|||USPETI videti|LBS-071|brez povratnih|||
|
||||
S_%s_g2|<struktura>GBZ %s sbz2</struktura>|gg-d-s2|13|34||13|||ODGOVORITI brez razmisleka|LBS-044|brez povratnega|||
|
||||
S_%s_x_g2|<struktura>gbz %s SBZ2</struktura>|gg-d-s2|13|34||13|||skočiti s STOLA|LBS-044|brez povratnega|||
|
||||
S_%s_g4|<struktura>GBZ %s sbz4</struktura>|gg-d-s4|14|36||14|||VNAŠATI v telo|LBS-046|brez povratnega|||
|
||||
S_%s_x_g4|<struktura>gbz %s SBZ4</struktura>|gg-d-s4|14|36||14|||voziti v ŠOLO|LBS-046|brez povratnega|||
|
||||
S_%s_x_g5|<struktura>gbz %s SBZ5</struktura>|gg-d-s5|15|37||15|||očistiti po UPORABI|LBS-047|brez povratnega|||
|
||||
S_%s_g5|<struktura>GBZ %s sbz5</struktura>|gg-d-s5|15|37||15|||UŽIVATI v vožnji|LBS-047|brez povratnega|||
|
||||
S_%s_x_g6|<struktura>gbz %s SBZ6</struktura>|gg-d-s6|16|38||16|||hoditi z BERGLAMI|LBS-048|brez povratnega|glej zgoraj opombo v vrstici 17, isti problem, drugi prvi del||
|
||||
S_%s_g6|<struktura>GBZ %s sbz6</struktura>|gg-d-s6|16|38||16|||VZGAJATI z ljubeznijo|LBS-048|brez povratnega|||
|
||||
S_%s_g3|<struktura>GBZ %s sbz3</struktura>|gg-d-s3|17|35||17|||RAVNATI proti vesti|LBS-045|brez povratnega|||
|
||||
S_%s_x_g3|<struktura>gbz %s SBZ3</struktura>|gg-d-s3|17|35||17|||steči proti VRATOM|LBS-045|brez povratnega|||
|
||||
S_kakšen-g?|<struktura>gbz PBZ1</struktura>|gg-p1|18|16||18|||pozirati GOL|LBS-019|brez povratnega|||
|
||||
S_kakšen-p?|<struktura>GBZ pbz1</struktura>|gg-p1|18|16||18|||TEČI bos|LBS-019|brez povratnega|||
|
||||
S_je_za_g|<struktura>gbz RBZ</struktura>||20|||||||LBS-023|<!-- LBS23 excluded (S_kako-kdaj-za_g?/S_je_za_g) - replicates LBS22, positional adverbs, now handled by treebank -->|združiti s strukturo 43||43
|
||||
S_kako-kdaj-za_g?|<struktura>GBZ rbz</struktura>||20|||||||LBS-023|<!-- LBS23 excluded (S_kako-kdaj-za_g?/S_je_za_g) - replicates LBS22, positional adverbs, now handled by treebank -->|združiti s strukturo 43||43
|
||||
S_v_rodil|<struktura>GBZ sbz2</struktura>||21|6||||||LBS-006||nova struktura 108||
|
||||
S_koga-česa|<struktura>gbz SBZ2</struktura>||21|6||||||LBS-006||nova struktura 108||
|
||||
S_v_dajal|<struktura>GBZ sbz3</struktura>|gg-s3|22|7||22|||SPREGOVORITI ljudstvu|LBS-007|brez povratnega|||
|
||||
S_komu-čemu|<struktura>gbz SBZ3</struktura>|gg-s3|22|7||22|||zaupati VODSTVU|LBS-007|brez povratnega|||
|
||||
S_koga-kaj|<struktura>gbz SBZ4</struktura>|gg-s4|23|8||23|||pogrniti MIZO|LBS-008|brez povratnega|||
|
||||
S_v_tožil|<struktura>GBZ sbz4</struktura>|gg-s4|23|8||23|||STISNITI sok|LBS-008|brez povratnega|||
|
||||
S_zanikani|<struktura>Neg-gbz SBZ2</struktura>|l-gg-s2|24|11|2|24||23|ne prepuščati ZRAKA|LBS-011||||
|
||||
S_z_nikalnim|<struktura>Neg-GBZ sbz2</struktura>|l-gg-s2|24|11|2|24||23|ne STISNITI zavore |LBS-011||||
|
||||
S_G-neg-inf|<struktura>Neg-gbz Inf-GBZ</struktura>|l-gg-ggn|25|51||25||12|ne ZAČETI teči|LBS-072|brez povratnih|pojavlja se tudi Neg-gbz Inf GBZ (Neg z veliko)||
|
||||
S_%s_x_p2|<struktura>pbz0 %s SBZ2</struktura>|p0-d-s2|26|39||26|||izdelan iz BOMBAŽA|LBS-054||||
|
||||
S_%s_p2|<struktura>PBZ0 %s sbz2</struktura>|p0-d-s2|26|39||26|||VELJAVEN do decembra|LBS-054||||
|
||||
S_%s_x_p4|<struktura>pbz0 %s SBZ4</struktura>|p0-d-s4|27|41||27|||alergičen na SONCE|LBS-056||||
|
||||
S_%s_p4|<struktura>PBZ0 %s sbz4</struktura>|p0-d-s4|27|41||27|||VAREN za uživanje|LBS-056||||
|
||||
S_%s_x_p5|<struktura>pbz0 %s SBZ5</struktura>|p0-d-s5|28|42||28|||prepričan o USPEHU|LBS-057||||
|
||||
S_%s_p5|<struktura>PBZ0 %s sbz5</struktura>|p0-d-s5|28|42||28|||UTRUJEN po tekmi|LBS-057||||
|
||||
S_%s_p6|<struktura>PBZ0 %s sbz6</struktura>|p0-d-s6|29|43||29|||IZVOLJEN z večino|LBS-058||||
|
||||
S_%s_x_p6|<struktura>pbz0 %s SBZ6</struktura>|p0-d-s6|29|43||29|||razočaran nad ODLOČITVIJO|LBS-058|glej zgoraj opombo v vrstici 17, isti problem, drugi prvi del|||
|
||||
S_priredje|<struktura>PBZ0 in/ali pbz0</struktura>|p0-vp-p0|30|64||30|||DOBER in/ali SLAB|LBS-099||||
|
||||
S_%s_x_p3|<struktura>pbz0 %s SBZ3</struktura>|p0-d-s3|31|40||31|||nagnjen k ZLORABI|LBS-055||||
|
||||
S_%s_p3|<struktura>PBZ0 %s sbz3</struktura>|p0-d-s3|31|40||31|||NAMENJEN proti domu|LBS-055||||
|
||||
S_primera|<struktura>PBZ0 kot sbz0</struktura>|p0-vd-s0|32|21||32|||LAČEN kot volk / utrujen kot PES|LBS-025||||
|
||||
S_je_za_p|<struktura>pbz0 RBZ</struktura>||33|||||||LBS-028|<!-- LBS28 excluded (S_kako-kdaj-za_p?/S_je_za_p) - replicates LBS27, positional adverbs, now handled by treebank -->|združiti s strukturo 46||46
|
||||
S_kako-kdaj-za_p?|<struktura>PBZ0 rbz</struktura>||33|||||||LBS-028|<!-- LBS28 excluded (S_kako-kdaj-za_p?/S_je_za_p) - replicates LBS27, positional adverbs, now handled by treebank -->|združiti s strukturo 46||46
|
||||
S_kakšen?|<struktura>pbz0 SBZ0</struktura>|p0-s0|34|1||34|||bela ZASTAVA|LBS-001||||
|
||||
S_kdo-kaj?|<struktura>PBZ0 sbz0</struktura>|p0-s0|34|1||34|||RDEČA jagoda|LBS-001||||
|
||||
S_p-koga-česa|<struktura>pbz0 SBZ2</struktura>|p0-s2|35|2||35|||[biti] obtožen UTAJE|LBS-002||||
|
||||
S_v_rodil-p|<struktura>PBZ0 sbz2</struktura>|p0-s2|35|2||35|||[biti] VESEL uspeha|LBS-002||||
|
||||
S_v_dajal-p|<struktura>PBZ0 sbz3</struktura>|p0-s3|36|3||36|||[biti] NAMENJEN vzgoji|LBS-003||||
|
||||
S_p-komu-čemu|<struktura>pbz0 SBZ3</struktura>|p0-s3|36|3||36|||[biti] zvest GOSPODARJU|LBS-003||||
|
||||
S_oba-v-rod|<struktura>PBZ2 sbz2</struktura>|p2-s2|37|4||37|||[biti] DOBRE volje|LBS-004||||
|
||||
S_oba-v-rod|<struktura>pbz2 SBZ2</struktura>|p2-s2|37|4||37|||[biti] dobrega SRCA|LBS-004||||
|
||||
S_%s_r2|<struktura>RBZ %s sbz2</struktura>|r-d-s2|38|44||38|||DANES do polnoči|LBS-064||||
|
||||
S_%s_r3|<struktura>RBZ %s sbz3</struktura>|r-d-s3|39|45||39|||VČERAJ proti večeru|LBS-065||||
|
||||
S_%s_r5|<struktura>RBZ %s sbz5</struktura>|r-d-s5|40|47||40|||VIDNO v zadregi|LBS-067||||
|
||||
S_%s_r4|<struktura>RBZ %s sbz4</struktura>|r-d-s4|41|46||41|||MALO za šalo|LBS-066||||
|
||||
S_%s_r6|<struktura>RBZ %s sbz6</struktura>|r-d-s6|42|48||42|||JUTRI pred odhodom|LBS-068|||vse so strukture|
|
||||
S_kako-kdaj_g?|<struktura>rbz GBZ</struktura>|r-gg|43|19||43|||čvrsto STISNITI|LBS-022|brez povratnega|||
|
||||
S_je_pred_g|<struktura>RBZ gbz</struktura>|r-gg|43|19||43|||DEBELO gledati|LBS-022|brez povratnega|||
|
||||
S_priredje|<struktura>RBZ in/ali rbz</struktura>|r-vp-r|44|67||44|||VČERAJ in/ali DANES|LBS-099||samo prvega zapišemo z velikimi črkami||
|
||||
S_primera|<struktura>RBZ kot sbz0</struktura>|r-vd-s0|45|22||45|||TIHO kot miš / mrzlo kot VRAG|LBS-025||||
|
||||
S_kako-kdaj_p?|<struktura>rbz PBZ0</struktura>|r-p0|46|24||46|||dovolj ZREL|LBS-027||sprememba v pridevniško lemo||
|
||||
S_je_pred_p|<struktura>RBZ pbz0</struktura>|r-p0|46|24||46|||RESNIČNO izjemen|LBS-027||sprememba v pridevniško lemo||
|
||||
S_količinski|<struktura>rbz SBZ2</struktura>|r-s2|47|28||47|||malo MOŽNOSTI|LBS-033||||
|
||||
S_količina_ob-s|<struktura>RBZ sbz2</struktura>|r-s2|47|28||47|||VELIKO ljudi|LBS-033||||
|
||||
S_%s_x_s2|<struktura>sbz0 %s SBZ2</struktura>|s0-d-s2|48|29||48|||dan brez AVTOMOBILA|LBS-034||||
|
||||
S_%s_s2|<struktura>SBZ0 %s sbz2</struktura>|s0-d-s2|48|29||48|||LISTINA iz spisa |LBS-034||||
|
||||
S_%s_s3|<struktura>SBZ0 %s sbz3</struktura>|s0-d-s3|49|30||49|||DOPOLNILO k zahvali |LBS-035||||
|
||||
S_%s_x_s3|<struktura>sbz0 %s SBZ3</struktura>|s0-d-s3|49|30||49|||poziv k ODSTOPU|LBS-035||||
|
||||
S_%s_s6|<struktura>SBZ0 %s sbz6</struktura>|s0-d-s6|50|33||50|||IZBOR med kandidati|LBS-038|"pri predlogu z se pojavljajo tudi zapisi ""SBZ0 s/z sbz6"" in ""SBZ0 z/s sbz6"", ker je ""s"" variantna oblika od ""z"" (lemma od obeh je ""z"")"|povsem enako kot za s/z velja za h/k (lemma od obeh je k)||
|
||||
S_%s_x_s6|<struktura>sbz0 %s SBZ6</struktura>|s0-d-s6|50|33||50|||odnos s PARTNERJEM|LBS-038|glej zgoraj opombo v vrstici 17, isti problem, drugi prvi del|||
|
||||
S_%s_s4|<struktura>SBZ0 %s sbz4</struktura>|s0-d-s4|51|31||51|||OBESEK za ključ|LBS-036||||
|
||||
S_%s_x_s4|<struktura>sbz0 %s SBZ4</struktura>|s0-d-s4|51|31||51|||predavanje na TEMO|LBS-036||||
|
||||
S_%s_s5|<struktura>SBZ0 %s sbz5</struktura>|s0-d-s5|52|32||52|||OTOK ob obali|LBS-037||||
|
||||
S_%s_x_s5|<struktura>sbz0 %s SBZ5</struktura>|s0-d-s5|52|32||52|||pesmica o SREČI|LBS-037||||
|
||||
S_v_rodil-s|<struktura>SBZ0 sbz2</struktura>|s0-s2|53|13||53|||PRANJE denarja|LBS-016||||
|
||||
S_s-koga-česa|<struktura>sbz0 SBZ2</struktura>|s0-s2|53|13||53|||utaja DAVKOV|LBS-016||||
|
||||
S_v_dajal-s|<struktura>SBZ0 sbz3</struktura>|s0-s3|54|14||54|||PISMO predsedniku|LBS-017||||
|
||||
S_s-komu-čemu|<struktura>sbz0 SBZ3</struktura>|s0-s3|54|14||54|||zahvala SPONZORJU|LBS-017||||
|
||||
S_prislov_prislov|<struktura>rbz RBZ</struktura>|r-r|55|25||55|||zares IZJEMNO / ENAKO besno|LBS-030||||
|
||||
S_s_prislovom|<struktura>s prislovom</struktura>||56|||||||LBS-012|<!-- LBS12 excluded (S_s_prislovom/S_s_prislovom) - not a collocation -->|brisati tudi podatke||
|
||||
S_s_prislovom|<struktura>s prislovom</struktura>||56|||||||LBS-012|<!-- LBS12 excluded (S_s_prislovom/S_s_prislovom) - not a collocation -->|brisati tudi podatke||
|
||||
S_Vez_P1|<struktura>sbz1 Vez-gbz PBZ1</struktura>|s1-gp-p1|57|5||57|||hruška je ZRELA|LBS-005||||
|
||||
S_S1_Vez_P|<struktura>SBZ1 Vez-gbz pbz1</struktura>|s1-gp-p1|57|5||57|||REZULTATI so dobri|LBS-005||||
|
||||
||gg-zp-s3||7||68|22||izneveriti se tradiciji|LBS-007|samo povratni (nova)|||
|
||||
||gg-zp-s4||8||69|23||ogledati si posnetek|LBS-008|samo povratni (nova)|||
|
||||
S_osebek_od|<struktura>SBZ1 gbz</struktura>|s1-gg||9||70|||PANIKA zavlada|LBS-009|brez povratnega|||
|
||||
S_osebek_je|<struktura>sbz1 GBZ</struktura>|s1-gg||9||70|||večina RAZUME |LBS-009|brez povratnega|||
|
||||
||s1-zp-gg||9||71|70||človek se USTRAŠI|LBS-009|samo povratni (nova)|||
|
||||
S_n-osebek_je|<struktura>sbz1 Neg-GBZ</struktura>|s1-l-gg||10|1|72||70|voda ne TEČE|LBS-010|brez povratnega|||
|
||||
S_n-osebek_od|<struktura>SBZ1 neg-gbz</struktura>|s1-l-gg||10|1|72||70|ČLOVEK ne vidi |LBS-010|brez povratnega|||
|
||||
||s1-zp-l-gg||10|1|73|72|70|vernik se ne BRIJE |LBS-010|samo povratni (nova)|||
|
||||
S_zanikani|<struktura>Neg-gbz SBZ2</struktura>|ggz-s2||11|1|74||23|ne hoteti ODGOVORA|LBS-011|brez povratnega|||
|
||||
S_z_nikalnim|<struktura>Neg-GBZ sbz2</struktura>|ggz-s2||11|1|74||23|ne IMETI znanja|LBS-011|brez povratnega|||
|
||||
||l-gg-zp-s2||11|1|75|24|23|ne ZVITI si noge|LBS-011|samo povratni (nova)|||
|
||||
S_sam-im_sam|<struktura>sbz0 SBZ0</struktura>|s0-s0||12||76|||angina PECTORIS|LBS-014||||
|
||||
S_im_sam-sam|<struktura>SBZ0 sbz0</struktura>|s0-s0||12||76|||ČLOVEK pajek|LBS-014||||
|
||||
S_Vez_S|<struktura>SBZ1 Vez-gbz sbz1</struktura>|s0-gp-s1||15||77|||STRIC je partizan|LBS-018||||
|
||||
||gg-zp-p1||16||78|18||zdeti se premagan|LBS-019|samo povratni (nova)|||
|
||||
S_kakšnega-p|<struktura>Vez-gbz PBZ4</struktura>|gg-p4|19|17||19|||pustiti SAMEGA|LBS-020|brez povratnega|to je v resnici številka 19 v DSB|SPREMLJATI REZULTAT!|
|
||||
S_kakšnega-g?|<struktura>Vez-GBZ pbz4</struktura>|gg-p4|19|17||19|||VIDETI nasmejanega|LBS-020|brez povratnega|to je v resnici številka 19 v DSB|SPREMLJATI REZULTAT!|
|
||||
||gg-zp-p4||17||80|19||počutiti se osamljenega|LBS-020|samo povratni (nova)|||
|
||||
||r-zp-gg||19||81|43||močno se prestrašiti|LBS-022|samo povratni (nova)|||
|
||||
S_primera|<struktura>GBZ kot sbz0</struktura>|gg-vd-s0||20||82|||BRUHATI kot vidra|LBS-025|brez povratnega|||
|
||||
||gg-zp-vd-s0||20||83|82||pojavljati se kot mora|LBS-025|samo povratni (nova)|||
|
||||
S_primera|<struktura>SBZ0 kot sbz0</struktura>|s0-vd-s0||23||84|||ZDRAVJE kot vrednota / vrednost kot OSNOVA|LBS-025||NE IZPISUJE 'KOT'!||
|
||||
S_kako-kdaj_r|<struktura>RBZ Vez-gbz pbz1</struktura>|r-p1||26||85|||[biti] objavljen včeraj|LBS-031||||
|
||||
||gg-zp-d-s2||34||86|13||pripeljati se do banke|LBS-044|samo povratni (nova)|||
|
||||
||gg-zp-d-s3||35||87|17||odločiti se kljub nasprotovanju|LBS-045|samo povratni (nova)|||
|
||||
||gg-zp-d-s4||36||88|14||voziti se v službo|LBS-047|samo povratni (nova)|||
|
||||
||gg-zp-d-s5||37||89|15||kopati se v morju|LBS-047|samo povratni (nova)|||
|
||||
||gg-zp-d-s6||38||90|16||pripeljati se z mopedom|LBS-048|samo povratni (nova)|||
|
||||
S_%s_r|<struktura>sbz0 %s RBZ</struktura>|s0-d-r||49||91|||prijatelj za VEDNO|LBS-069|||popravljeno|
|
||||
||gg-zp-ggn||||92|12||prizadevati si poiskati|LBS-071|samo povratni prvi glagol (nova)|||
|
||||
||gg-ggn-zp||||93|12||utegniti zaplesti se|LBS-071|samo povratni drugi glagol (nova)|||
|
||||
||gg-zp-ggn-zp||||94|92/93||odločiti se prodati se|LBS-071|samo povratni oba glagola (nova)|||
|
||||
||l-gg-zp-ggn||51||95|25|92|ne dati se predvideti|LBS-072|samo povratni prvi glagol (nova)|||
|
||||
||l-gg-ggn-zp||51||96|25|93|ne uspeti udeležiti se|LBS-072|samo povratni drugi glagol (nova)|||
|
||||
||l-gg-zp-ggn-zp||51||97|25|94|ne bati se pokazati se|LBS-072|samo povratni oba glagola (nova)|||
|
||||
S_R-inf|<struktura>rbz Vez-gbz Inf-GBZ</struktura>|r-ggn||52||98|||[biti] bolje PRESEKATI|LBS-073|brez povratnega|||
|
||||
||r-ggn-zp||52||99|98||[biti] bolje smejati se|LBS-073|samo povratni (nova)|||
|
||||
S_P-inf|<struktura>pbz1 Vez-gbz Inf-GBZ</struktura>|p1-ggn||54||100|||[biti] prisiljen ZAPRETI|LBS-075|brez povratnega|||
|
||||
||p1-ggn-zp||54||101|100||[biti] pripravljen zadolžiti se|LBS-075|samo povratni (nova)|||
|
||||
S_S-inf|<struktura>sbz1 Vez-gbz Inf-GBZ</struktura>|s1-ggn||56||102|||pravica POČETI |LBS-077|brez povratnega|||
|
||||
||s1-ggn-zp||56||103|||pravica odločati se|LBS-077|samo povratni (nova)|||
|
||||
S_namenilnik|<struktura>gbz Nam-GBZ</struktura>|gg-ggm||58||104|||iti PLAVAT|LBS-079|brez povratnega|||
|
||||
||gg-ggm-zp||58||105|||iti ogledat si|LBS-079|samo povratni (nova)|||
|
||||
S_priredje|<struktura>priredje</struktura>|s0-vp-s0||65||106|||VINO in/ali PIVO|LBS-099||"to najdemo tudi kot ""SBZ0 in sbz0"", ""SBZ0 in/ali sbz0"""||
|
||||
S_priredje|<struktura>GBZ in/ali gbz</struktura>|gg-vp-gg||66||107|||GOVORITI in/ali ŠEPETATI|LBS-099||"ta struktura je lahko ""GBZ in gbz"", ""GBZ ali gbz"", ""GBZ in/ali gbz"", pa tudi ""GBZ in/ali GBZ"" (oba elementa zapisana z veliko)"|za pretvorbo damo samo prvega z velikimi črkami|
|
||||
||gg-zp-s2||6||108|||BATI se maščevanja|LBS-006|samo povratni (nova)|bivša struktura 21||
|
||||
||gg-zp-s2||6||108|||želeti si ZDRAVJA|LBS-006|samo povratni (nova)|bivša struktura 22||
|
||||
S_n-osebek_je|<struktura>sbz1 Neg-GBZ</struktura>|s1-ggz||10|2||||država NIMA |LBS-010|odstranimo?|||
|
||||
S_n-osebek_od|<struktura>SBZ1 neg-gbz</struktura>|s1-ggz||10|2||||ČLOVEK nima|LBS-010|odstranimo?|||
|
||||
S_neg-kakšnega-g?|<struktura>Neg-GBZ pbz2</struktura>|||18|1/2||||ne RAZUMETI prebranega / ne IMETI zaposlenih|LBS-021|odstranimo?|||
|
||||
S_neg-kakšnega-p|<struktura>Neg-gbz PBZ2</struktura>|||18|1/2||||ne želeti SLABEGA / ne hoteti SLABEGA|LBS-021|odstranimo?|||
|
||||
S_kdo-kaj_r|<struktura>sbz1 Vez-gbz RBZ</struktura>|||27|||||vzdušje je IZJEMNO|LBS-032|odstranimo|NESMISELNI REZULTATI - PRIDEVNIK, ponavlja NSSS id-57||
|
||||
S_R-neg-inf|<struktura>rbz Neg-Vez-gbz Inf-GBZ</struktura>|||53|1||||ne (biti) lahko ZAPUSTITI|LBS-074|odstranimo|||
|
||||
S_P-neg-inf|<struktura>pbz1 Neg-Vez-gbz Inf-GBZ</struktura>|||55|1||||ne (biti) dolžen OBJAVITI|LBS-076|odstranimo|||
|
||||
S_S-neg-inf|<struktura>sbz1 Neg-Vez-gbz Inf-GBZ</struktura>|||57|1||||ne (vzeti) časa POISKATI|LBS-078|odstranimo|||
|
||||
S_biti_s2|<struktura>vez-gbz SBZ2</struktura>|||59|||||biti brez VOLJE|LBS-082|odstranimo|to pokriva id 34||
|
||||
S_biti_s3|<struktura>vez-gbz SBZ3</struktura>|||60|||||biti proti VOLJi|LBS-083|odstranimo|to pokriva id 35||
|
||||
S_biti_s4|<struktura>vez-gbz SBZ4</struktura>|||61|||||biti na VOLJO|LBS-084|odstranimo|to pokriva id 36||
|
||||
S_biti_s5|<struktura>vez-gbz SBZ5</struktura>|||62|||||biti po VOLJI|LBS-085|odstranimo|to pokriva id 37||
|
||||
S_biti_s6|<struktura>vez-gbz SBZ6</struktura>|||63|||||biti pod VPLIVOM|LBS-086|odstranimo|to pokriva id 38||
|
||||
|<struktura>PBZ0 gbz</struktura>|||||||||***||||
|
||||
S_vezni|<struktura>gbz SBZ1</struktura>|||||||||LBS-013|<!-- LBS-013 excluded (S_vezni) - not a collocation /gbz SBZ1/ -->|||
|
||||
S_s-kdo-kaj|<struktura>sbz0 SBZ1</struktura>|||||||||LBS-015|<!-- LBS-015 excluded (S_v_imen-s/S_s-kdo-kaj) - replicates LBS14, too noisy -->|||
|
||||
S_v_imen-s|<struktura>SBZ0 sbz1</struktura>|||||||||LBS-015|<!-- LBS-015 excluded (S_v_imen-s/S_s-kdo-kaj) - replicates LBS14, too noisy -->|||
|
||||
S_veznik_enob|<struktura>SBZ0 Odv</struktura>|||||||||LBS-024|<!-- LBS-024 excluded (S_veznik_enob) - not a collocation -->|||
|
||||
S_veznik_enob|<struktura>RBZ Odv</struktura>|||||||||LBS-024|<!-- LBS-024 excluded (S_veznik_enob) - not a collocation -->|||
|
||||
S_veznik_enob|<struktura>PBZ0 Odv</struktura>|||||||||LBS-024|<!-- LBS-024 excluded (S_veznik_enob) - not a collocation -->|||
|
||||
S_veznik_enob|<struktura>GBZ Odv</struktura>|||||||||LBS-024|<!-- LBS-024 excluded (S_veznik_enob) - not a collocation -->|||
|
||||
S_simile|<struktura>primera</struktura>|||||||||LBS-025|"replicira drugo stran ""primera"""|||
|
||||
S_predl-pred|<struktura>s predlogom</struktura>|||||||||LBS-026|<!-- LBS-026 excluded (S_predl-pred) - not a collocation -->|||
|
||||
V_biti_videti|<vzorec>biti videti %s</vzorec>|||||||||LBS-029|<!-- LBS-029 excluded (V_biti_videti) - not a collocation -->|ta je pri pridevniku||
|
||||
V_biti_videti|<struktura>biti videti</struktura>|||||||||LBS-033|<!-- LBS-033 excluded (V_biti_videti) - not a collocation -->|bi moralo biti struktura||
|
||||
S_%(3.lempos)_x_s2||||||||||LBS-039| <!-- LBS-039 excluded (S_%(3.lempos)_x_s2) - replicates LBS34 -->|||
|
||||
S_%(3.lempos)_x_s3||||||||||LBS-040| <!-- LBS-040 excluded (S_%(3.lempos)_x_s3) - replicates LBS35 -->|||
|
||||
S_%(3.lempos)_x_s4||||||||||LBS-041| <!-- LBS-041 excluded (S_%(3.lempos)_x_s4) - replicates LBS36 -->|||
|
||||
S_%(3.lempos)_x_s5||||||||||LBS-042| <!-- LBS-042 excluded (S_%(3.lempos)_x_s5) - replicates LBS37 -->|||
|
||||
S_%(3.lempos)_x_s6||||||||||LBS-043| <!-- LBS-043 excluded (S_%(3.lempos)_x_s6) - replicates LBS38 -->|||
|
||||
S_%(3.lempos)_x_g2||||||||||LBS-049| <!-- LBS-049 excluded (S_%(3.lempos)_x_g2) - replicates LBS44 -->|||
|
||||
S_%(3.lempos)_x_g3||||||||||LBS-050| <!-- LBS-050 excluded (S_%(3.lempos)_x_g3) - replicates LBS45 -->|||
|
||||
S_%(3.lempos)_x_g4||||||||||LBS-051| <!-- LBS-051 excluded (S_%(3.lempos)_x_g4) - replicates LBS46 -->|||
|
||||
S_%(3.lempos)_x_g5||||||||||LBS-052| <!-- LBS-052 excluded (S_%(3.lempos)_x_g5) - replicates LBS47 -->|||
|
||||
S_%(3.lempos)_x_g6||||||||||LBS-053| <!-- LBS-053 excluded (S_%(3.lempos)_x_g6) - replicates LBS48 -->|||
|
||||
S_%(3.lempos)_x_p2||||||||||LBS-059| <!-- LBS-059 excluded (S_%(3.lempos)_x_p2) - replicates LBS54 -->|||
|
||||
S_%(3.lempos)_x_p3||||||||||LBS-060| <!-- LBS-060 excluded (S_%(3.lempos)_x_p3) - replicates LBS55 -->|||
|
||||
S_%(3.lempos)_x_p4||||||||||LBS-061| <!-- LBS-061 excluded (S_%(3.lempos)_x_p4) - replicates LBS56 -->|||
|
||||
S_%(3.lempos)_x_p5||||||||||LBS-062| <!-- LBS-062 excluded (S_%(3.lempos)_x_p5) - replicates LBS57 -->|||
|
||||
S_%(3.lempos)_x_p6||||||||||LBS-063| <!-- LBS-063 excluded (S_%(3.lempos)_x_p6) - replicates LBS58 -->|||
|
||||
S_nedoločnik|<struktura>SBZ0 Inf-gbz</struktura>|||||||||LBS-070|<!-- LBS-070 excluded (S_nedoločnik) - replicates LBS-071 -->|||
|
||||
S_nedoločnik|<struktura>RBZ Inf-gbz</struktura>|||||||||LBS-070|<!-- LBS-070 excluded (S_nedoločnik) - replicates LBS71 -->|||
|
||||
S_nedoločnik|<struktura>PBZ0 Inf-gbz</struktura>|||||||||LBS-070|<!-- LBS-070 excluded (S_nedoločnik) - replicates LBS71 -->|||
|
||||
S_G_GInf_O4|<struktura>gbz Inf-gbz SBZ4</struktura>|||||||||LBS-080|<!-- LBS-080 excluded (S_G_GInf_O4) - CONSTRUCTION: combines two existing gramrels -->|||
|
||||
S_Vez_Inf_S|<struktura>SBZ1 vez-gbz Inf-gbz</struktura>|||||||||LBS-081 |<!-- LBS-081 excluded (S_Vez_Inf_S) - CONSTRUCTION: not clear what it does -->||ok|
|
||||
O_z_lastnim_imenom|<oznaka>pogosto z lastnim imenom</oznaka>|||||||||LBS-087|<!-- LBS-087 excluded (O_z_lastnim_imenom) - CONSTRUCTION+UNARY: indicates presence of proper names -->|manjka|ok|
|
||||
O_s_števili|<oznaka>pogosto s števili</oznaka>|||||||||LBS-088|<!-- LBS-088 excluded (O_s_števili) - CONSTRUCTION+UNARY: indicates presence of numerals -->|"manjka (je mogooče ""pogosto s števili"")?"||
|
||||
V_S_V_O3_O4|<vzorec>kdo/kaj G komu kaj</vzorec>|||||||||LBS-089|<!-- LBS-089 excluded (V_S_V_O3_O4) - CONSTRUCTION: will be included as a valency pattern -->|||
|
||||
V_S_V_O3_O2|<vzorec>kdo/kaj G komu koga/česa</vzorec>|||||||||LBS-090|<!-- LBS-090 excluded (V_S_V_O3_O2) - CONSTRUCTION: will be included as a valency pattern -->|||
|
||||
V_S_V_O4_predl|<vzorec>kdo/kaj G koga/kaj + predlog</vzorec>|||||||||LBS-091|<!-- LBS-091 excluded (V_S_V_O4_predl) - CONSTRUCTION: will be included as a valency pattern -->|||
|
||||
V_S_V_O3|<vzorec>kdo/kaj G komu</vzorec>|||||||||LBS-092|<!-- LBS-092 excluded (V_S_V_O3) - CONSTRUCTION: will be included as a valency pattern -->|||
|
||||
V_gl_Cit|<struktura>cit GBZ</struktura>|||||||||LBS-093|<!-- LBS-093 excluded (V_gl_Cit) - CONSTRUCTION: indicates presence of citation -->|tu je bil prej vzorec, spremenjeno v struktura, ker je tako v bazi||
|
||||
O_povratni_se|<oznaka>povratni (se)</oznaka>|||||||||LBS-094|<!-- LBS-094 excluded (O_povratni_se) - CONSTRUCTION+UNARY: indicates presence of a reflexive pronoun -->|||
|
||||
O_povratni_si|<oznaka>povratni (si)</oznaka>|||||||||LBS-095|<!-- LBS-095 excluded (O_povratni_si) - CONSTRUCTION+UNARY: indicates presence of a reflexive pronoun -->|||
|
||||
O_nedoločnik_cs|<oznaka>pogosto v nedoločniku</oznaka>|||||||||LBS-096|<!-- LBS-096 excluded (O_nedoločnik_cs) - CONSTRUCTION+UNARY: indicates frequency of infinitive -->|||
|
||||
O_tretja_oseba|<oznaka>pogosto v tretji osebi</oznaka>|||||||||LBS-097|<!-- LBS-097 excluded (O_tretja_oseba) - CONSTRUCTION+UNARY: indicates frequency of third person -->|||
|
||||
V_lahko_G|<vzorec>mod-rbz GBZ</vzorec>|||||||||LBS-098|<!-- LBS-098 excluded (V_lahko_G) - CONSTRUCTION: indicates presence of the modal adverb 'lahko' -->|ta je pri glagolu||
|
||||
V_lahko_G|<struktura>mod-rbz GBZ</struktura>|||||||||LBS-098|<!-- LBS-098 excluded (V_lahko_G) - CONSTRUCTION: indicates presence of the modal adverb 'lahko' -->|tu je bil prej vzorec, spremenjeno v struktura, ker je tako v bazi||
|
||||
S_z_vezajem|<struktura>rbz1-RBZ0</struktura>|||||||||LBS-100|<!-- LBS-100 excluded (S_z_vezajem) - SYMMETRIC: coordinate structure with a hyphen -->|||
|
||||
S_z_vezajem|<struktura>pbz1{-}PBZ0</struktura>|||||||||LBS-100|<!-- LBS-100 excluded (S_z_vezajem) - SYMMETRIC: coordinate structure with a hyphen -->|možna je tudi verzija PBZ1{-}pbz0||
|
||||
O_zanikanje|<oznaka>pogosto zanikan</oznaka>|||||||||LBS-101|<!-- LBS-101 excluded (O_zanikanje) - UNARY: indicates presence of negation -->|||
|
||||
O_količina|<oznaka>s količino</oznaka>|||||||||LBS-102|<!-- LBS-102 excluded (O_količina) - UNARY: indicates presence of numeration -->|||
|
||||
S_veznik_dvob|<struktura>dvobesedni veznik</struktura>|||||||||LBS-103|<!-- LBS-103 excluded (S_veznik_dvob) - COLLOC: indicates presence of a double conjunction -->|||
|
||||
S_d_sam_d|<struktura>z dvema predlogoma</struktura>|||||||||LBS-104|<!-- LBS-104 excluded (S_d_sam_d) - COLLOC: indicates presence of two prepositions -->|struktura ali vzorec?||
|
||||
S_gl_K_sam|<struktura>predlog s števnikom</struktura>|||||||||LBS-105|<!-- LBS-105 excluded (S_gl_K_sam) - COLLOC: indicates presence of a numeral -->|je tole sploh pravilno zapisano?||
|
||||
S_gl_K_sam|<struktura>zveze s števniki</struktura>|||||||||LBS-105|<!-- LBS-105 excluded (S_gl_K_sam) - COLLOC: indicates presence of a numeral -->|Simon, tu je treba pogledati š (je čudno napisan)||
|
|
59
conversion_utils/tei_to_dictionary.py
Normal file
59
conversion_utils/tei_to_dictionary.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
import argparse
|
||||
import lxml.etree as lxml
|
||||
|
||||
from conversion_utils.utils import xpath_find, get_xml_id, TEI_NAMESPACE_QUALIFIER
|
||||
|
||||
def get_parsed_unit_string(parsed_unit):
|
||||
elements = xpath_find(parsed_unit, 'tei:w|tei:pc')
|
||||
return ''.join([e.text if e.get('join') == 'right' else e.text + ' ' for e in elements]).strip()
|
||||
|
||||
def convert(input_file_name, output_file_name):
|
||||
|
||||
output_root = lxml.Element('dictionary')
|
||||
|
||||
parser = lxml.XMLParser(remove_blank_text=True)
|
||||
input_root = lxml.parse(input_file_name, parser).getroot()
|
||||
parsed_units = xpath_find(input_root, 'tei:text/tei:body/tei:p/tei:s')
|
||||
|
||||
for parsed_unit in parsed_units:
|
||||
entry = lxml.SubElement(output_root, 'entry')
|
||||
entry.set('sid', get_xml_id(parsed_unit))
|
||||
head = lxml.SubElement(entry, 'head')
|
||||
headword = lxml.SubElement(head, 'headword')
|
||||
lemma_text = get_parsed_unit_string(parsed_unit)
|
||||
lemma = lxml.SubElement(headword, 'lemma')
|
||||
lemma.text = lemma_text
|
||||
lexical_unit = lxml.SubElement(head, 'lexicalUnit')
|
||||
tokens = xpath_find(parsed_unit, 'tei:w|tei:pc')
|
||||
if (len(tokens) == 1):
|
||||
token = tokens[0]
|
||||
lexical_unit.set('type', 'single')
|
||||
lexeme = lxml.SubElement(lexical_unit, 'lexeme')
|
||||
if (token.tag == TEI_NAMESPACE_QUALIFIER + 'w'):
|
||||
lexeme.set('lemma', token.get('lemma'))
|
||||
lexeme.set('msd', token.get('ana')[len('mte:'):])
|
||||
lexeme.text = token.text
|
||||
else:
|
||||
lexical_unit.set('type', 'MWE')
|
||||
for (index, token) in enumerate(tokens, start=1):
|
||||
component = lxml.SubElement(lexical_unit, 'component')
|
||||
component.set('num', str(index))
|
||||
lexeme = lxml.SubElement(component, 'lexeme')
|
||||
if (token.tag == TEI_NAMESPACE_QUALIFIER + 'w'):
|
||||
lexeme.set('lemma', token.get('lemma'))
|
||||
lexeme.set('msd', token.get('ana')[len('mte:'):])
|
||||
lexeme.text = token.text
|
||||
lexical_unit.set('structure_id', str(parsed_unit.get('structure_id')))
|
||||
body = lxml.SubElement(entry, 'body')
|
||||
senseList = lxml.SubElement(body, 'senseList')
|
||||
|
||||
output_tree = lxml.ElementTree(output_root)
|
||||
output_tree.write(output_file_name, encoding='UTF-8', pretty_print=True)
|
||||
|
||||
|
||||
if (__name__ == '__main__'):
|
||||
arg_parser = argparse.ArgumentParser(description='Convert TEI to dictionary xml.')
|
||||
arg_parser.add_argument('-infile', type=str, help='Input TEI xml')
|
||||
arg_parser.add_argument('-outfile', type=str, help='Output xml in standard cjvt schema')
|
||||
arguments = arg_parser.parse_args()
|
||||
convert(input_file_name, output_file_name)
|
49
conversion_utils/translate_conllu_jos.py
Normal file
49
conversion_utils/translate_conllu_jos.py
Normal file
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import argparse
|
||||
import codecs
|
||||
import lxml.etree as lxml
|
||||
from importlib_resources import files
|
||||
|
||||
from conversion_utils.jos_msds_and_properties import Converter, Msd
|
||||
|
||||
def get_syn_map():
|
||||
dict_file_name = files('conversion_utils.resources').joinpath('dict.xml')
|
||||
dict_file = codecs.open(dict_file_name, 'r')
|
||||
root = lxml.parse(dict_file).getroot()
|
||||
dict_file.close()
|
||||
return {syn.get('en'):syn.get('sl') for syn in root.xpath('syns/syn')}
|
||||
|
||||
def translate(input_file_name, output_file_name):
|
||||
|
||||
syn_map = get_syn_map()
|
||||
|
||||
output_file = codecs.open(output_file_name, 'w')
|
||||
input_file = codecs.open(input_file_name, 'r')
|
||||
|
||||
converter = Converter()
|
||||
|
||||
for line in input_file:
|
||||
columns = line.strip().split('\t')
|
||||
if (len(columns) != 10):
|
||||
output_file.write(line)
|
||||
else:
|
||||
columns[4] = converter.translate_msd(Msd(columns[4], 'en'), 'sl').code
|
||||
columns[7] = syn_map[columns[7]]
|
||||
output_file.write('\t'.join(columns) + '\n')
|
||||
|
||||
input_file.close()
|
||||
output_file.close()
|
||||
|
||||
|
||||
if (__name__ == '__main__'):
|
||||
|
||||
arg_parser = argparse.ArgumentParser(description='Translate JOS msds and dependency labels.')
|
||||
arg_parser.add_argument('-infile', type=str, help='Input conllu')
|
||||
arg_parser.add_argument('-outfile', type=str, help='Output conllu')
|
||||
arguments = arg_parser.parse_args()
|
||||
input_file_name = arguments.infile
|
||||
output_file_name = arguments.outfile
|
||||
|
||||
translate(input_file_name, output_file_name)
|
|
@ -1,4 +1,5 @@
|
|||
TEI_NAMESPACE = 'http://www.tei-c.org/ns/1.0'
|
||||
TEI_NAMESPACE_QUALIFIER = '{' + TEI_NAMESPACE + '}'
|
||||
XML_ID_ATTRIBUTE_NAME = '{http://www.w3.org/XML/1998/namespace}id'
|
||||
|
||||
def xpath_find(element,expression):
|
||||
|
|
Loading…
Reference in New Issue
Block a user