Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Extração de Texto.

Oi Pessoal, bom dia!

Tenho um conjunto de 49 palavras divididas em 04 grupos que preciso verificar se existem em uma uma coluna chamada "Descrição da Manifestação".

Depois de alguns pesquisas, achei algumas expressões e montei a seguinte expressão no script para localizar a palavra "processo":

Capitalize(Mid(Upper([Descrição da Manifestação]) , index(Upper([Descrição da Manifestação]) , 'PROCESSO') , len('PROCESSO'))) as AlertaProcesso

No exemplo acima, transformei tudo em letra maiúscula, pois percebi que o conjunto de expressão que usei e sensível a forma pesquisada.

Bom, pesquisando palavra a palavra foi até fácil, porém gostaria de saber se existe alguma alternativa para pesquisar todas as palavras de um mesmo grupo na mesma expressão, sendo assim, usando apenas 04 expressões e não 49.

Alguém tem alguma sugestão?

Desde já, agradeço!

Labels (2)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, poderá utilizar Mapping ‒ QlikView‌, mais performático;

Exemplo:

Map_TipoOcorr:

Mapping Load *

    Inline [

    1,Agressão

    2,Agressão

    3,Exposição da Marca

    4,Exposição da Marca

    5,Autoridades

    6,Autoridades

    7,Ética

    8,Ética

];

Tab_Dados:

Load

    ApplyMap('Map_TipoOcorr', WildMatch([Descrição da Manifestação],

        '*AGRESSÃO*','*ATACAR*','*FACEBOOK*','*IMPRENSA*','*190*',

        '*AÇÃO JUDICIAL*','*DESRESPEITO*','*ABUSO DE AUTORIDADE*')

        , 'Indefinido') As 'Tipo de Alerta',

    ...

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

5 Replies
Anonymous
Not applicable
Author

Pessoal,

Achei um alternativa, mas creio que haja melhores.

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Agressão*') , 'Agressão' ,

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Atacar*') , 'Agressão' ,

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Facebook*') , 'Exposição da Marca' ,

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Imprensa*') , 'Exposição da Marca' ,

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*190*') , 'Autoridades' ,

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Ação Judicial*') , 'Autoridades' ,

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Desrespeito*') , 'Ética' ,

If(WildMatch(Capitalize([Descrição da Manifestação]) , '*Abuso de Autoridade*') , 'Ética' ,

)))))))) as "Tipo de Alerta"

Se houver uma maneira de agrupar as palavras pesquisadas que resultasse na condição final (04 condições), ficaria bem melhor.

Att,

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, poderá utilizar Mapping ‒ QlikView‌, mais performático;

Exemplo:

Map_TipoOcorr:

Mapping Load *

    Inline [

    1,Agressão

    2,Agressão

    3,Exposição da Marca

    4,Exposição da Marca

    5,Autoridades

    6,Autoridades

    7,Ética

    8,Ética

];

Tab_Dados:

Load

    ApplyMap('Map_TipoOcorr', WildMatch([Descrição da Manifestação],

        '*AGRESSÃO*','*ATACAR*','*FACEBOOK*','*IMPRENSA*','*190*',

        '*AÇÃO JUDICIAL*','*DESRESPEITO*','*ABUSO DE AUTORIDADE*')

        , 'Indefinido') As 'Tipo de Alerta',

    ...

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Clever_Anjos
Employee
Employee

Boa solução, Mário.

Gostei

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Obrigado cleveranjos‌, é bom receber feedback de um veterano como você, me ajuda a saber se estou apoiando bem;

Aproveitei e editei o script acima para retirar a função Upper(), já que a função WildMatch() não é case sensitive.

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Anonymous
Not applicable
Author

Muito obrigado Mário!

Funcionou perfeitamente!

Abraço.