Beispiel #1
0
def get_words_from_2_sentS(f1, f2):
    #Tokens, Lowercase sem ascentos, remove pontuação
    f1 = word_tokenize(deburr(separator_case(f1, " ")))
    f2 = word_tokenize(deburr(separator_case(f2, " ")))
    #Remove números
    f1 = [
        x for x in f1 if not (x.isdigit() or x[0] == '-' and x[1:].isdigit())
    ]
    f2 = [
        x for x in f2 if not (x.isdigit() or x[0] == '-' and x[1:].isdigit())
    ]
    return f1, f2
Beispiel #2
0
def get_lemmas_from_2_sents(f1, f2):
    s1, s2 = "", ""

    #Retorna Lemmas
    for token in nlp(f1):
        s1 += "" if token.pos_ == "PUNCT" else token.lemma_ + " "
    for token in nlp(f2):
        s2 += "" if token.pos_ == "PUNCT" else token.lemma_ + " "
    #Tokens, Lowercase sem ascentos
    f1 = word_tokenize(deburr(s1.lower()))
    f2 = word_tokenize(deburr(s2.lower()))

    return f1, f2
Beispiel #3
0
def get_stems_from_sent(f1, f2):
    #Tokens, Lowercase sem ascentos, remove pontuação
    f1 = word_tokenize(deburr(separator_case(f1, " ")))
    #Remove números
    f1 = [
        stemmer.stem(x) for x in f1
        if not (x.isdigit() or x[0] == '-' and x[1:].isdigit())
    ]
    return f1
Beispiel #4
0
def get_word_tag_from_2_sents(f1, f2):
    s1, s2 = [], []
    #Retorna Lemmas
    nlp = spacy.load('pt_core_news_sm')
    for token in nlp(f1):
        s1 if (token.pos_ == "PUNCT" or token.pos_ == "SPACE"
               ) else s1.append(deburr(token.text.lower()) + "|" + token.tag_)
    for token in nlp(f2):
        s2 if (token.pos_ == "PUNCT" or token.pos_ == "SPACE"
               ) else s2.append(deburr(token.text.lower()) + "|" + token.tag_)
    nlp = spacy.load('en_core_web_sm')
    for token in nlp(f1):
        s1 if (token.pos_ == "PUNCT" or token.pos_ == "SPACE"
               ) else s1.append(deburr(token.text.lower()) + "|" + token.tag_)
    for token in nlp(f2):
        s2 if (token.pos_ == "PUNCT" or token.pos_ == "SPACE"
               ) else s2.append(deburr(token.text.lower()) + "|" + token.tag_)

    return s1, s2
Beispiel #5
0
def get_tagger_from_sent(f1):
    f1 = deburr(f1.lower())

    s1 = []
    #Retorna Lemmas
    for token in nlp(f1):
        s1 if (token.pos_ == "PUNCT"
               or token.pos_ == "SPACE") else s1.append(token.text + "|" +
                                                        token.tag_)
    return s1
Beispiel #6
0
def get_word_pos_from_2_sents(f1, f2):
    doc = nlp(f1)
    dependencies = []
    for token in doc:
        if (token.pos_ == "PUNCT" or token.pos_ == "SPACE"):
            continue
        word_pos = deburr(token.text.lower()) + " " + token.pos_
        push(dependencies, word_pos)
    s1 = dependencies
    dependencies = []

    doc = nlp(f2)
    for token in doc:
        if (token.pos_ == "PUNCT" or token.pos_ == "SPACE"):
            continue
        #print(token.text, token.pos_)
        word_pos = deburr(token.text.lower()) + " " + token.pos_
        push(dependencies, word_pos)
    s2 = dependencies

    return s1, s2
Beispiel #7
0
def test_deburr(case, expected):
    assert _.deburr(case) == expected
Beispiel #8
0
def get_tokens_from_2_sents(f1, f2):
    #Tokens, Lowercase sem ascentos, remove pontuação
    f1 = word_tokenize(deburr(separator_case(f1, " ")))
    f2 = word_tokenize(deburr(separator_case(f2, " ")))
    return f1, f2
Beispiel #9
0
def get_sinonimos(palavra):
    # print("-------------")
    # print(palavra)
    palavra = deburr(kebab_case(palavra))
    base_url = "https://www.sinonimos.com.br/"

    list_no_occur = get(nao_consta, "sinonimos")

    if has(sinonimos, palavra):
        #print("Palavra já consta no dicionário de sinônimos")
        return get(sinonimos, palavra)
    if palavra in list_no_occur:
        #print("Não foram encontrados sinônimos para a palavra")
        return []
    else:
        #print("\nNova Palavra: ", palavra)
        request_fail = True
        while request_fail:
            try:
                site = requests.get(base_url + palavra)
                request_fail = False
            except Exception as e:
                print(e)
                pass
        data = BeautifulSoup(site.content, 'html.parser')

        try:
            h1 = data.find('h1').getText()
        except Exception as e:
            if palavra is not None:
                list_no_occur = push(list_no_occur, palavra)
            set_(nao_consta, "sinonimos", list_no_occur)
            save_json("nao_consta", nao_consta)
            return []

        if (h1 == "Página Não Encontrada"):
            #print(h1)
            if palavra is not None:
                list_no_occur = push(list_no_occur, palavra)
            set_(nao_consta, "sinonimos", list_no_occur)
            save_json("nao_consta", nao_consta)
            return []
        else:
            content = data.find('div', attrs={'id': 'content'})
            try:
                div = content.findAll('div', attrs={'class': 's-wrapper'})
            except Exception as e:
                print(e)
                if palavra is not None:
                    list_no_occur = push(list_no_occur, palavra)
                set_(nao_consta, "sinonimos", list_no_occur)
                save_json("nao_consta", nao_consta)
                return []
            aux = 0
            for sentido in div:
                aux = aux + 1
                lista_sinonimos = []
                try:
                    try:
                        key = lower_case(
                            sentido.find('div', attrs={
                                'class': 'sentido'
                            }).getText().strip(":"))
                    except Exception as e:
                        print(e)
                        key = "sinonimos" + str(aux)
                        pass
                    values = sentido.findAll('a',
                                             attrs={'class': 'sinonimo'},
                                             text=True)
                    values2 = sentido.findAll('span')
                    # print(values2)
                    all_values = union(values, values2)
                    #print(all_values)
                    for value in all_values:
                        lista_sinonimos.append(value.getText().strip(":"))
                    set_(sinonimos, palavra + "." + key, lista_sinonimos)
                    print("Sinônimo Salv@ no Dicionário")
                except Exception as e:
                    print("\nError:\n" + str(e))
                    return []
            save_json("sinonimos", sinonimos)
            return get(sinonimos, palavra)
Beispiel #10
0
def get_antonimos(palavra):
    # print("-------------")
    # print(palavra)
    palavra = deburr(kebab_case(palavra))
    base_url = "https://www.antonimos.com.br/"

    list_no_occur = get(nao_consta, "antonimos")

    if has(antonimos, palavra):
        #print("Palavra já consta no dicionário de antônimos")
        return get(antonimos, palavra)
    if palavra in list_no_occur:
        #print("Não foram encontrados antônimos para a palavra")
        return []
    else:
        request_fail = True
        while request_fail:
            try:
                site = requests.get(base_url + palavra)
                request_fail = False
            except Exception as e:
                print(e)
                pass
        data = BeautifulSoup(site.content, 'html.parser')

        try:
            h1 = data.find('h1').getText()
        except Exception as e:
            if palavra is not None:
                list_no_occur = push(list_no_occur, palavra)
            set_(nao_consta, "antonimos", list_no_occur)
            save_json("nao_consta", nao_consta)
            return []
        if (h1 == "Página Não Encontrada"):
            #print(h1)
            if palavra is not None:
                list_no_occur = push(list_no_occur, palavra)
            set_(nao_consta, "antonimos", list_no_occur)
            save_json("nao_consta", nao_consta)
            return []
        else:
            content = data.find('div', attrs={'id': 'content'})
            try:
                div = content.findAll('div', attrs={'class': 's-wrapper'})
            except Exception as e:
                print(e)
                if palavra is not None:
                    list_no_occur = push(list_no_occur, palavra)
                set_(nao_consta, "antonimos", list_no_occur)
                save_json("nao_consta", nao_consta)
            aux = 0
            for sentido in div:
                aux = aux + 1
                lista_antonimos = []
                try:
                    try:
                        key = lower_case(
                            sentido.find('div', attrs={
                                'class': 'sentido'
                            }).getText().strip(":"))
                    except Exception as e:
                        key = lower_case(
                            sentido.find('strong').getText().strip("."))
                        pass
                    #print(sentido.find('p', attrs={'class':'antonimos'}))
                    p = sentido.find('p', attrs={
                        'class': 'antonimos'
                    }).getText()[3:]
                    try:
                        p = str(p.encode('raw_unicode_escape').decode('utf-8'))
                    except Exception as e:
                        print(e)
                        pass
                    #print(p)
                    #print(p.encode('utf-8'))
                    all_values = p.split(',')
                    #print(all_values)
                    for value in all_values:
                        lista_antonimos.append(value.strip(":").strip(' '))
                    set_(antonimos, palavra + "." + key, lista_antonimos)
                    print("Antônimo Salv@ no Dicionário")
                except Exception as e:
                    print("\nError:\n" + str(e))
                    return []
            save_json("antonimos", antonimos)
            return get(antonimos, palavra)