コード例 #1
0
ファイル: UserWord2vec.py プロジェクト: gansiorag/WokerWord
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))
コード例 #2
0
ファイル: UserWord2vec.py プロジェクト: gansiorag/WokerWord
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)
コード例 #3
0
ファイル: UserWord2vec.py プロジェクト: gansiorag/WokerWord
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
コード例 #4
0
ファイル: UserWord2vec.py プロジェクト: gansiorag/WokerWord
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
コード例 #5
0
ファイル: UserWord2vec.py プロジェクト: gansiorag/WokerWord
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")