import json import stanza import sys from collections import defaultdict 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) sisendtlu=open("tlu_src.txt", encoding="utf-8").readlines() sisendtartu=open("tartu.txt", encoding="utf-8").readlines() nlp=stanza.Pipeline(lang="et", processors="tokenize,pos") #for protsendipiir in [1, 2, 5, 10, 15, 100]: protsendipiir=2 erinevaidridu=0 kolmikugaridu=0 vajalikkekolmikuid=defaultdict(lambda : 0) koikkolmikud=defaultdict(lambda: 0) for reanr in range(2029): print(reanr, file=sys.stderr) if 1==1: rida=sisendtlu[reanr] kolmikud=[] dok=nlp(rida) 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, tagaprotsent-sonu and sonadtlu[ots]==sonadtartu[ots]: ots-=1 print(algus, len(sonadtlu)+ots) print(rida, ridatartu) a=min(algus, len(sonadtlu)+ots) b=max(algus, len(sonadtlu)+ots) leitudkolmikud=list(filter(lambda kolmik: kolmik[2] and ((kolmik[0]<=a and kolmik[1]>=a) or (kolmik[0]<=b and kolmik[1]>=b)), kolmikud)) if leitudkolmikud: kolmikugaridu+=1 print(" ", leitudkolmikud) for kolmik in leitudkolmikud: vajalikkekolmikuid[kolmik[3]]+=1 print("protsendipiir ", protsendipiir) print("erinevaid ", erinevaidridu, "kolmikuga ", kolmikugaridu) print(vajalikkekolmikuid) print(koikkolmikud)