import json import stanza protsendipiir=1 fnimi="C1" sisendtekstifail="/home/juku/oma/23/06/m2-corpus-main/test/margendusega/"+fnimi+".txt" with open("/home/juku/oma/23/03/kolmikud/v2/osakaalud_koik_ees.txt") as f1: osakaalud_ees=json.load(f1) with open("/home/juku/oma/23/03/kolmikud/v2/osakaalud_koik_taga.txt") as f1: osakaalud_taga=json.load(f1) sisend=open(sisendtekstifail, encoding="utf-8").readlines() sisend=[rida.strip() for rida in sisend]+[""] while sisend[0]=="": sisend.pop(0) nlp=stanza.Pipeline(lang="et", processors="tokenize,pos") parandused=[] piiriall=0 neistparandatud=0 paranduskogused={} kolmikuparandused={} def yhenda(kolmikud, parandused): v=[] for kolmik in kolmikud: if kolmik[2]: k=kolmik[:]+[[]] for parandus in parandused: if parandus[0]>=kolmik[0] and parandus[1]<=kolmik[1]: k[-1].append(parandus[:]+["tervik"]) if parandus[0]kolmik[0] and parandus[1]<=kolmik[1]: k[-1].append(parandus[:]+["osaline ees"]) if parandus[0]>=kolmik[0] and parandus[0]<=kolmik[0] and parandus[1]>kolmik[1]: k[-1].append(parandus[:]+["osaline taga"]) v.append(k) return v for rida in sisend: if rida.startswith("S "): print(rida) kolmikud=[] parandused=[] dok=nlp(rida[2:]) jada="".join([sona.xpos for sona in dok.sentences[0].words])+"$" koht=0 print(jada) while koht=0 and jada[abi]=='Z': abi-=1 if abi>=0: ees=jada[abi] alguskoht=abi else: ees="^" alguskoht=0 kommentaar="-" eesprotsent=0 if kolmik in osakaalud_ees: if ees in osakaalud_ees[kolmik]: eesprotsent=osakaalud_ees[kolmik][ees][1] else: kommentaar+=" puuduv eeskontekst" else: kommentaar+=" puuduv eeskonteksti kolmik" kolmikud.append([alguskoht, kolmikuots, eesprotsent"+kolmik, "ees", ees, eesprotsent, kommentaar]) kommentaar="-" tagaprotsent=0 if kolmik in osakaalud_taga: if taga in osakaalud_taga[kolmik]: tagaprotsent=osakaalud_taga[kolmik][taga][1] else: kommentaar+=" puuduv tagakontekst" else: kommentaar+=" puuduv taga kolmik" kolmikud.append([koht, otsakoht, tagaprotsent0: kolmikuparandused[kolmik]["parandusosakaal"]=(kokku-len(kolmikuparandused[kolmik]["puudub"]))/kokku else: kolmikuparandused[kolmik]["parandusosakaal"]=-1 #print(kolmikuparandused) f2=open(fnimi+"_"+str(protsendipiir)+"_jarjestus.txt", "w") kolmikuvotmed=list(kolmikuparandused.keys()) kolmikuvotmed.sort(key=lambda k: -kolmikuparandused[k]["parandusosakaal"]) for kvoti in kolmikuvotmed: print(kvoti, kolmikuparandused[kvoti]["parandusosakaal"], kolmikuparandused[kvoti]["kokku"], file=f2) for pvoti in kolmikuparandused[kvoti]["votmed"]: print(" ", pvoti, len(kolmikuparandused[kvoti][pvoti]), str(kolmikuparandused[kvoti][pvoti]), file=f2) f2.close()