def page3_click_btn_Ras(): # расстояние между фразами predl1 = page3_lineText_IshPredl.get('1.0', END + '-1c') predl2 = page3_lineText_DublPredl.get('1.0', END + '-1c') predl1 = wp.tocenizator(predl1, lexdata.slovoStop, lexdata.rullmas) predl1 = wp.lemmatizatorPred(predl1, lexdata.lemmatizator) predl2 = wp.tocenizator(predl2, lexdata.slovoStop, lexdata.rullmas) predl2 = wp.lemmatizatorPred(predl2, lexdata.lemmatizator) slovos1 = predl1.strip().split() k1 = 0 for slovo in slovos1: slovo.strip() # обрабатываем предложение 1 for slovo in slovos1: if lexdata.slovar.get(slovo.strip()) is None: messagebox.showinfo("Слова " + slovo + " нет в словаре корпуса.", "Введите другое слово.") k1 = 1 # обрабатываем предложение 2 slovos2 = predl2.strip().split() k2 = 0 for slovo in slovos2: if lexdata.slovar.get(slovo) is None: messagebox.showinfo("Слова " + slovo + " нет в словаре корпуса.", "Введите другое слово.") k2 = 1 if (k1 == 0 and k2 == 0): result1 = lexdata.wv.wmdistance(slovos1, slovos2) page3_lineText_TextData.delete(1.0, END) strD1 = "Расстояние между фразами - " page3_lineText_TextData.insert(INSERT, strD1 + "{:.4f}".format(result1))
def page3_click_btn_Kontext(): slugSpis1 = [] slugSpis2 = [] slugSpis3 = [] result = "" slovos = [] # лишнее слово predl = page3_lineText_IshPredl.get('1.0', END + '-1c') # predl = predl.strip() predl = wp.tocenizator(predl, lexdata.slovoStop, lexdata.rullmas) result = wp.lemmatizatorPred(predl, lexdata.lemmatizator) slovos = result.strip().split(" ") slugSpis2.clear() for slovo in slovos: if lexdata.slovar.get(slovo.strip()) is None: messagebox.showinfo("Слова " + slovo + " нет в словаре корпуса.", "Введите другое слово.") break else: slugSpis2.append(slovo) if len(slugSpis2) == len(slovos): for slovo in slugSpis2: slugSpis3.append(slovo[0]) result = lexdata.wv.doesnt_match(slovos) page3_lineText_TextData.delete(1.0, END) strD1 = "Лишнее слово в предложении - " page3_lineText_TextData.insert(INSERT, strD1 + result)
def page3_click_btn_SearchTiz2(): predl1 = page3_lineText_IshPredl.get('1.0', END + '-1c') slugSpis1 = [] # расстояние между фразами predl2 = wp.tocenizator(predl1, lexdata.slovoStop, lexdata.rullmas) predl1 = wp.lemmatizatorPred(predl2, lexdata.lemmatizator) slovos1 = predl1.strip().split() result1 = 0.0 k1 = 0 for slovo in slovos1: slovo.strip() # обрабатываем предложение 1 for slovo in slovos1: if lexdata.slovar.get(slovo.strip()) is None: messagebox.showinfo("Слова " + slovo + " нет в словаре корпуса.", "Введите другое слово.") k1 = 1 slovos2 = "" wesTiz = [] page3_lineText_TextData.delete(1.0, END) if (k1 == 0): iind = 0 for tizer in lexdata.AllTizer: slovos2 = tizer[1].strip().split() wesTiz.clear() for slovoTitle in slovos1: if lexdata.slovar.get(slovoTitle.strip()): for slovoTizer in slovos2: if lexdata.slovar.get(slovoTizer.strip()): wesTiz.append( lexdata.wv.distance(w1=slovoTitle, w2=slovoTizer)) wesTiz = sorted(wesTiz) if len(wesTiz) > 2: result1 = (wesTiz[0] + wesTiz[1] + wesTiz[2]) / 3 if len(wesTiz) == 2: result1 = (wesTiz[0] + wesTiz[1]) / 2 if len(wesTiz) == 1: result1 = wesTiz[0] slugSpis1.append([]) slugSpis1[iind].append(iind) slugSpis1[iind].append(result1) iind += 1 slugSpis1.sort(key=operator.itemgetter(1), reverse=FALSE) iind = 0 for kk in slugSpis1: if iind < 4: strD1 = lexdata.AllTizer[kk[0]][0] result1 = kk[1] page3_lineText_TextData.insert( INSERT, strD1 + "{:.4f}".format(result1) + "\n") iind += 1 else: break
def page1_clic_btn_Tizer(): page1_lineTextTizer.delete(1.0, END) name_tiz = askopenfilename(filetypes=(("tiz files", "*.tiz"), ("All files", "*.*"))) page1_lineTextTizer.insert(1.0, name_tiz) tizers = [] row = [] ishfile = open(name_tiz, 'r') ishtxt = ishfile.readline() kstr = 0 while ishtxt: ishtxt1 = wp.tocenizator(ishtxt, lexdata.slovoStop, lexdata.rullmas) ishtxt1 = wp.lemmatizatorPred(ishtxt1, lexdata.lemmatizator) row.clear() tizers.append([]) tizers[kstr].append(ishtxt) tizers[kstr].append(ishtxt1.strip()) ishtxt = ishfile.readline() kstr += 1 if kstr == 250: break lexdata.AllTizer = tizers lexdata.kolTiz = kstr
def page3_click_btn_SearchTiz3(): predl1 = page3_lineText_IshPredl.get('1.0', END + '-1c') slugSpis1 = [] # расстояние между фразами predl2 = wp.tocenizator(predl1, lexdata.slovoStop, lexdata.rullmas) predl1 = wp.lemmatizatorPred(predl2, lexdata.lemmatizator) slovos1ist = predl1.strip().split() # Список слов в тайтле result1 = 0.0 k1 = 0 # обрабатываем предложение 1 for slovo in slovos1ist: if lexdata.slovar.get(slovo.strip()): k1 = 1 break slovos2 = "" sered = 0.0 wesTiz = [] kolvotiz = 0 # количество отбранных тизеров page3_lineText_TextData.delete(1.0, END) if (k1 == 1): # В предложении есть слова с которыми можно работать iind = 0 for tizer in lexdata.AllTizer: # Цикл по всем тизерам slovos2 = tizer[1].strip().split() # разбиваем тизер по словам wesTiz.clear() for slovoTitle in slovos1ist: # цикл по словам в тайтлах if lexdata.slovar.get(slovoTitle.strip() ): # Получаем слово тайтла из словаря for slovoTizer in slovos2: # цикл по всем словам тизера if lexdata.slovar.get( slovoTizer.strip()): # получаем слово тизера wesTiz.append( lexdata.wv.distance(w1=slovoTitle, w2=slovoTizer) ) # ищем расстояние между словом тизера и тайтла wesTiz = sorted(wesTiz) if len(wesTiz) > 3: sered = wesTiz[0] + (wesTiz[len(wesTiz) - 1] - wesTiz[0]) / 2 kolvotiz = 0 result1 = 0.0 if len(wesTiz) > 3: for ww in wesTiz: if kolvotiz <= len(wesTiz) % 2: result1 = result1 + ww kolvotiz = kolvotiz + 1 if kolvotiz > 3: result1 = result1 / kolvotiz if len(wesTiz) == 3: result1 = (wesTiz[0] + wesTiz[1] + wesTiz[2]) / 3 if len(wesTiz) == 2: result1 = (wesTiz[0] + wesTiz[1]) / 2 if len(wesTiz) == 1: result1 = wesTiz[0] slugSpis1.append([]) slugSpis1[iind].append(iind) slugSpis1[iind].append(result1) iind += 1 slugSpis1.sort(key=operator.itemgetter(1), reverse=FALSE) iind = 0 for kk in slugSpis1: if iind < 4: strD1 = lexdata.AllTizer[kk[0]][0] result1 = kk[1] page3_lineText_TextData.insert( INSERT, strD1 + "{:.4f}".format(result1) + "\n") iind += 1 else: break else: page3_lineText_TextData.insert(INSERT, "Подобрать ничего не могу \n")