import gradio as gr from transformers.utils import logging import time import joblib import re import numpy as np logging.set_verbosity_info() logger = logging.get_logger("transformers") western_stop = ['ենք', 'էի', 'թ', 'ին', 'մենք', 'որոնք', 'պիտի', 'և', 'որպեսզի', 'վրայ', 'կ՚', 'կը', 'մը', 'մըն', 'անոր', 'ալ', 'ան', 'քեզ', 'եթէ', 'թէ', 'որպէս'] grabar_stop = ['դու', 'եք', 'ըստ', 'նա', 'պիտի', 'վրայ', 'զի', 'ընդ', 'քո', 'քեզ', 'եթէ', 'թէ', 'որպէս'] eastern_stop = ['դու', 'ենք', 'եք', 'էի', 'ըստ', 'ին', 'հետո', 'մենք', 'մեջ', 'նա', 'նաև', 'նրա', 'նրանք', 'որը', 'որոնք', 'որպես', 'ում', 'վրա', 'և', 'որպեսզի'] western_stop = set(western_stop) grabar_stop = set(grabar_stop) eastern_stop = set(eastern_stop) def get_lexical_desc(words): intersect_western = len(set(words) & western_stop) / len(western_stop) intersect_grabar = len(set(words) & grabar_stop) / len(grabar_stop) intersect_eastern = len(set(words) & eastern_stop) // len(eastern_stop) return np.array([intersect_western, intersect_grabar, intersect_eastern]) grabar_suffixes = ['աւք', 'եալ', 'եան', 'իւք', 'ոյց', 'ովք', 'ուց', 'ուցան'] grabar_prefixes = ['ապա', 'արտ', 'բաղ', 'բաղա', 'դեր', 'ենթ', 'ենթա', 'ընթա', ' համ', 'համա', 'հան', 'հոմ', 'հոմա', 'տար', 'տարա'] eastern_suffixes = ['աբար', 'ագին', 'ագույն', 'ածո', 'ածու', 'ական', 'ակերտ', 'ային', 'անակ', 'անի', 'անոց', 'անք', 'ապան', 'ապանակ', 'ապատ', 'ապես', 'աստան', 'ավետ', 'ավուն', 'արան', 'արար', 'արեն', 'արք', 'ացի', 'ացն-', 'ացու', 'բան', 'բար', 'գին', 'գույն', 'եղեն', 'ենի', 'երեն', 'երորդ', 'եցն-', 'լիկ', 'կերտ', 'կոտ', 'մունք ', 'յալ', 'յակ', 'յան', 'յանց', 'յուն նախա-', 'ներ', 'նոց', 'ոնք', 'ովին', 'որդ', 'որեն', 'ոցի', 'ուք', 'պան', 'պանակ', 'ստան', 'ված', 'վածք', 'ավոր', 'վոր', 'ություն', 'ուլ', 'ուկ', 'ուհի', 'ում', 'ույթ', 'ույր', 'ուն', 'ուտ', 'ուրդ', 'ուց'] eastern_prefixes = ['ամենա', 'այսր', 'անդր', 'ապա', 'ավտո', 'արտ', 'արտա', 'բենզա', ', գեր', 'գերա', 'դեր', 'ենթա', 'եվրա', ' էլեկտրա', 'թեր', 'թերա', 'կենս', 'կինո', 'հակ', 'հակա', 'համ', 'համա', 'հար', 'հարա', 'հեռա', 'հեռուստա', 'հոմա', 'մակ', 'մակրո', 'միկրո', 'միջ', 'նախ', 'ներ', 'ստոր', 'վեր', 'վերա', 'տար', 'տարա', 'փոխ', 'քառ', 'քառա'] western_reform = ['իլ', 'իուն', 'եան', 'յ', 'օ', 'է', 'յ', 'վո', 'ոյ', 'եա', 'եօ', 'իւ', 'ու', 'ւ,' 'յե', 'եյ', 'զի', 'եւ', 'ել', 'յուն', 'յան', 'ում', 'ո', 'ե', 'հ', 'ո', 'ույ', 'յա', 'յո', 'յու', 'վ', 'ե', ] morphems=[] morphems.extend(grabar_suffixes) morphems.extend(grabar_prefixes) morphems.extend(eastern_suffixes) morphems.extend(eastern_prefixes) morphems.extend(western_reform) def get_morphemic_desc(words): res=[] for morphema in morphems: positions = [] for word in words: pos = word.find(morphema) if pos != -1: positions.append((pos+1)/len(word)) if len(positions)==0: res.append(0) else: # std=np.std(positions) res.append(np.mean(positions)) return np.array(res) def preprocess(text): punctuation=['.','-',',','!','?','(','—',')','՛','։','՝','՜','’','«','»','*','\n','=',':','[',']','/',';','․','`','\t','%','$','\xa0','\r','_','●','՜', ',', '.', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', '-', '—', '։','՞'] text=text.lower() for spaced in punctuation: text = text.replace(spaced, '') text = re.sub(" +", " ", text) txt = text.split(' ') words = [t for t in txt if t != ''] return words