import json,glob,re d=json.load(open('../part3.json')) tr={} for f in sorted(glob.glob('[a-d].tsv')): for l in open(f,encoding='utf-8').read().split('\n'): if not l.strip(): continue i,t=l.split('\t',1); tr[int(i)]=t.replace('\\n','\n') out={s:tr.get(i,s) for i,s in enumerate(d)} json.dump(out,open('../part3.ru.json','w'),ensure_ascii=False,indent=1) # checks assert len(out)==len(d)==len(set(d)) pat=re.compile(r'%\{[^}]*\}|\{\{[^}]*\}\}|\{[^{}]*\}|\$\w+') bad=0 for k,v in out.items(): if '—' in v or '–' in v: print('DASH',k);bad+=1 for m in pat.findall(k): if m not in v: print('PH',k,'|',v);bad+=1 kept=sum(1 for k,v in out.items() if k==v) print(len(out),'kept',kept,'bad',bad) # Latin/Cyrillic mixed words for k,v in out.items(): for w in re.findall(r'\w+',v): if re.search('[а-яё]',w,re.I) and re.search('[a-z]',w,re.I): print('MIX',w,v)