I have a list with sentences and I want to extract the first match of each sentence. I have another list with the same length that I want to be the names of the each columns.
Here's my first list, with the regex:
lista_regex_5_palavras_extract = [
r'(ouvidoria\W+(\w+\W+){0,5}negou\W+(\w+\W+){0,5}informar\W+(\w+\W+){0,5}protocolo)',
r'(ouvidoria\W+(\w+\W+){0,5}negou\W+(\w+\W+){0,5}passar\W+(\w+\W+){0,5}protocolo)',
r'(ouvidoria\W+(\w+\W+){0,5}protocolo\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}reconhecido)',
r'(ouvidoria\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}reconhec(\w*\W+)(\w+\W+){0,5}protocolo)', # Radical
r'(ouvidoria\W+(\w+\W+){0,5}protocolo\W+(\w+\W+){0,5}ligacao\W+(\w+\W+){0,5}cai)',
r'(ouvidoria\W+(\w+\W+){0,5}protocolo\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}valido)',
r'(ouvidoria\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}aceita\W+(\w+\W+){0,5}protocolo)',
r'(ouvidoria\W+(\w+\W+){0,5}protocolo\W+(\w+\W+){0,5}invalido)',
# Fim da primeira parte
r'(ouvidoria\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}consigu(\w*\W+)(\w+\W+){0,5}prosseguir)', # Radical
r'(nao consegu\W+(\w+\W+){0,5}acess(\w*\W+)(\w+\W+){0,5}ouvidoria)', # Radical
r'(nao\W+(\w+\W+){0,5}consegu(\w*\W+)(\w+\W+){0,5}reclamar\W+(\w+\W+){0,5}ouvidoria)', # Radical
r'(nao consegu(\w*\W+)(\w+\W+){0,5}contato\W+(\w+\W+){0,5}ouvidoria)', # Radical - Sem espaço
r'(nao consegu(\w*\W+)(\w+\W+){0,5}falar\W+(\w+\W+){0,5}ouvidoria)', # Radical - Sem espaço
r'(nao\W+(\w+\W+){0,5}consegu(\w*\W+)(\w+\W+){0,5}atendimento\W+(\w+\W+){0,5}ouvidoria)', # Radical
r'(nao\W+(\w+\W+){0,5}consegu(\w*\W+)(\w+\W+){0,5}registrar\W+(\w+\W+){0,5}ouvidoria)', # Radical
r'(dific(\w*\W+)(\w+\W+){0,5}contatar\W+(\w+\W+){0,5}ouvidoria)', # Radical
r'(custo\W+(\w+\W+){0,5}falar\W+(\w+\W+){0,5}ouvidoria)',
r'(ouvidoria\W+(\w+\W+){0,5}nao consegu(\w*\W+)(\w+\W+){0,5}contato)', # Radical - Sem espaço
r'(ouvidoria\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}consegu(\w*\W+)(\w+\W+){0,5}logar)', # Radical
r'(ouvidoria\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}consigo\W+(\w+\W+){0,5}logar)',
r'(tent\W+(\w+\W+){0,5}ouvidoria\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}consig)', # Radical
r'(ouvidoria\W+(\w+\W+){0,5}ligacao\W+(\w+\W+){0,5}cai)',
r'(minutos\W+(\w+\W+){0,5}aguardando\W+(\w+\W+){0,5}ouvidoria)',
r'(ouvidoria\W+(\w+\W+){0,5}ninguem\W+(\w+\W+){0,5}atende)',
r'(ouvidoria\W+(\w+\W+){0,5}nao atend)', # Radical - Sem espaço
r'(ouvidoria\W+(\w+\W+){0,5}nao me atend)', # Radical - Sem espaço
r'(ouvidoria\W+(\w+\W+){0,5}nao sou atend)', # Radical - Sem espaço
r'(ouvidoria\W+(\w+\W+){0,5}nao\W+(\w+\W+){0,5}reconhece\W+(\w+\W+){0,5}chamado)',
r'(ouvidoria nao funciona)', # Sem espaço
r'(tentei registrar\W+(\w+\W+){0,5}ouvidoria)', # Sem espaço
r'(tentei\W+(\w+\W+){0,5}ouvidoria\W+(\w+\W+){0,5}nao fui atend)', # Radical
r'(tentei\W+(\w+\W+){0,5}ouvidoria\W+(\w+\W+){0,5}nao conseg)', # Radical
r'(tentei\W+(\w+\W+){0,5}ouvidoria\W+(\w+\W+){0,5}nao atend)' # Radical
]
Here's the list with the column's names:
lista_regex_5_nome_colunas = [
#'Geral_Regex_5_Palavras',
'ouvidoria%negou%informar%protocolo_Regex_5_Palavras',
'ouvidoria%negou%passar%protocolo_Regex_5_Palavras',
'ouvidoria%protocolo%não%reconhecido_Regex_5_Palavras',
'ouvidoria%não%reconhec%protocolo_Regex_5_Palavras',
'ouvidoria%protocolo%ligação%cai_Regex_5_Palavras',
'ouvidoria%protocolo%não%valido_Regex_5_Palavras',
'ouvidoria%não%aceita%protocolo_Regex_5_Palavras',
'ouvidoria%protocolo%invalido_Regex_5_Palavras',
'ouvidoria%nao%consigu%prossegui_Regex_5_Palavras',
'nao%consegu%acess%ouvidoria_Regex_5_Palavras',
'nao%consegu%reclamar%ouvidoria_Regex_5_Palavras',
'nao%consegu%contato%ouvidoria_Regex_5_Palavras',
'nao%consegu%falar%ouvidoria_Regex_5_Palavras',
'nao%consegu%atendimento%ouvidoria_Regex_5_Palavras',
'nao%consegu%registrar%ouvidoria_Regex_5_Palavras',
'dific%contatar%ouvidoria_Regex_5_Palavras',
'custo%falar%ouvidoria_Regex_5_Palavras',
'ouvidoria%nao%consegu%contato_Regex_5_Palavras',
'ouvidoria%nao%consegu%loga_Regex_5_Palavras',
'ouvidoria%nao%consigo%loga_Regex_5_Palavras',
'tent%ouvidoria%nao%consig_Regex_5_Palavras',
'ouvidoria%ligação%cai_Regex_5_Palavras',
'minutos%aguardando%ouvidoria_Regex_5_Palavras',
'ouvidoria%ninguem%atende_Regex_5_Palavras',
'ouvidoria%nao%atend_Regex_5_Palavras',
'ouvidoria%nao%me%atend_Regex_5_Palavras',
'ouvidoria%nao%sou%atend_Regex_5_Palavras',
'ouvidoria%nao%reconhece%chamado_Regex_5_Palavras',
'ouvidoria%nao%funciona_Regex_5_Palavras',
'tentei%registrar%ouvidoria_Regex_5_Palavras',
'tentei%ouvidoria%nao%fui%atend_Regex_5_Palavras',
'tentei%ouvidoria%nao%conseg_Regex_5_Palavras',
'tentei%ouvidoria%nao%atend_Regex_5_Palavras'
]
Here's what I tried to do:
zip_regex_lists = zip(lista_regex_5_nome_colunas, lista_regex_5_palavras_extract)
for x, y in zip_regex_lists:
df[x] = df['RegistroDescricao_df'].str.extract(y)
But it gives me this error:
ValueError: Wrong number of items passed 4, placement implies 1
Even when I tried this:
for x in lista_regex_5_palavras_extract:
df[x] = df['RegistroDescricao_df'].str.extract(x)
I'm still getting the exact same error.
What am I doing wrong? How can I achieve what I want?