<jupyter_start><jupyter_text>Data Augmentation Famosos<jupyter_code>import re
import random
import pandas as pd<jupyter_output><empty_output><jupyter_text>Função de augmentationEsta função tem por objetivo pegar uma tupla com a glosa de regra e glosa de ínterprete de uma única linha e retornar uma lista de tuplas com seus elementos sendo a mesma linha, porém com uma pequena modificação.<jupyter_code>def augmentation_famosos(line, re_gr, re_gi, famososExamples_gr, famososExamples_gi, dict_gr, dict_gi):
    lista = list()
    
    line_gr = line[0]
    line_gi = line[1]
    
    occurences_gr = re.search(re_gr, line_gr)
    occurences_gi = re.search(re_gi, line_gi)
    
    if occurences_gr and occurences_gi:
        for index, (famoso_gr, famoso_gi) in enumerate(list(zip(famososExamples_gr, famososExamples_gi))):
            if index == 18:
                break
            
            if re.findall(dict_gr[famoso_gr], line_gr) == [] and re.findall(dict_gi[famoso_gi], line_gi) == []:
                lista.append((re.sub(re_gr, famoso_gr, line_gr, 1), re.sub(re_gi, famoso_gi, line_gi, 1)))
    
        
        return lista
    
    return [(line_gr, line_gi)]
df_famosos = pd.read_csv('data/famosos_teste.csv')
print(df_famosos.sample(10))<jupyter_output>gr                        gi
52  EDUARDO BOLSONARO  EDUARDO_BOLSONARO&FAMOSO
36    OSAMA BIN LADEN    OSAMA_BIN_LADEN&FAMOSO
40       PAULA MOURÃO       PAULA_MOURÃO&FAMOSO
51   FLÁVIO BOLSONARO   FLÁVIO_BOLSONARO&FAMOSO
41       PA<NAME>       PAULO_GUEDES&FAMOSO
5              CAZUZA             CAZUZA&FAMOSO
48         TIRADENTES         TIRADENTES&FAMOSO
8    <NAME>   FERNANDO_AZEVEDO&FAMOSO
53       W<NAME>A       WAGNER_MOURA&FAMOSO
31        MONTESQUIEU        MONTESQUIEU&FAMOSO<jupyter_text>Criação das expressões do regexAqui são criadas as expressões que serão usadas para a troca de palavras do regex (guardada no dicionário match_famoso) e a expressão que deve verificar se o augmentation deverá ser realizado nesta linha.<jupyter_code>famosos_gr, famosos_gi = df_famosos['gr'].values.tolist(), df_famosos['gi'].values.tolist()
combined_gr = ""
combined_gi = ""
match_famoso_gr = {}
match_famoso_gi = {}
for (famoso_gr, famoso_gi) in list(zip(famosos_gr, famosos_gi)):
    lista_gr = famoso_gr.split(' ')
    lista_gi = famoso_gi.split('_')
    match_famoso_gr[famoso_gr] = ""
    match_famoso_gi[famoso_gi] = ""
    combined_gr += "("
    combined_gi += "("
    
    for i in range(0, len(lista_gr) - 1):
        combined_gr += "(\\b" + (lista_gr[i]) + "\\b)?(\s)?"
        match_famoso_gr[famoso_gr] += "(\\b" + (lista_gr[i]) + "\\b)?(\s)?"
    for j in range(0, len(lista_gi) - 1):
        combined_gi += "(" + (lista_gi[j]) + "_)?"
        match_famoso_gi[famoso_gi] += "(" + (lista_gi[j]) + "_)?"
    
    combined_gr += "(\\b" + (''.join(lista_gr[-1:])) + "\\b))|"
    match_famoso_gr[famoso_gr] += "(\\b" + (''.join(lista_gr[-1:])) + "\\b)"
    match_famoso_gr[famoso_gr] = r"" + match_famoso_gr[famoso_gr]

    combined_gi += "" + (''.join(lista_gi[-1:])) + ")|"
    match_famoso_gi[famoso_gi] += "((" + (''.join(lista_gi[-1:])) + "))"
    match_famoso_gi[famoso_gi] = r"" + match_famoso_gi[famoso_gi]
    
combined_gr = combined_gr[:-1]
re_gr = r"" + combined_gr
combined_gi = combined_gi[:-1]
re_gi = r"" + combined_gi<jupyter_output><empty_output><jupyter_text>Aqui são as frases que serão usadas como exemplo para o augmentation:<jupyter_code>teste_frases = [('WEINTRAUB CONVERSAR JAIR BOLSONARO', 'WEINTRAUB&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('WEINTRAUB SAIR', 'WEINTRAUB&FAMOSO SAIR'),
                ('JOHN LENNON IR CASA', 'JOHN_LENNON&FAMOSO IR CASA'), ('HARRY POTTER CONVERSAR HITLER', 'HARRY_POTTER&FAMOSO CONVERSAR HITLER&FAMOSO'),
                ('OPA', 'OPA')]<jupyter_output><empty_output><jupyter_text>Aqui será realizado o augmentation para cada linha do arquivo:<jupyter_code>for i in teste_frases:
    print(augmentation_famosos(i, re_gr, re_gi, famosos_gr, famosos_gi, match_famoso_gr, match_famoso_gi))
    print()<jupyter_output>[('ALEXANDRE GRANDE CONVERSAR JAIR BOLSONARO', 'ALEXANDRE_GRANDE&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('<NAME>IDA CONVERSAR JAIR BOLSONARO', 'ANDRÉ_LUIZ_ALMEIDA&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('AUGUSTO HELENO CONVERSAR JAIR BOLSONARO', 'AUGUSTO_HELENO&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('BENTO COSTA LIMA CONVERSAR JAIR BOLSONARO', 'BENTO_COSTA_LIMA&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('CAZUZA CONVERSAR JAIR BOLSONARO', 'CAZUZA&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('DAMARES ALVES CONVERSAR JAIR BOLSONARO', 'DAMARES_ALVES&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('ERNESTO ARAÚJO CONVERSAR JAIR BOLSONARO', 'ERNESTO_ARAÚJO&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('FERNANDO AZEVEDO CONVERSAR JAIR BOLSONARO', 'FERNANDO_AZEVEDO&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('FERNANDO COLLOR CONVERSAR JAIR BOLSONARO', 'FERNANDO_COLLOR&FAMOSO CONVERSAR JAIR_BOLSONARO&FAMOSO'), ('FERNANDO HADDAD CONVERSAR JAIR BOLSONARO', 'FERNANDO_HADDAD&FAMOSO CONVERSA[...]
{'fraction_non_alphanumeric': 0.12403560830860534, 'fraction_numerical': 0.007121661721068249, 'mean_word_length': 4.401709401709402, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '412282', 'license': 'MIT', 'n_tokens_mistral': 2262, 'n_tokens_neox': 2180, 'n_words': 386, 'path': 'Famosos.ipynb', 'repo_name': 'alvesmarcos/libras-data-augmentation', 'size': '5082'}