Técnicas de PLN na Análise de Domínio em SMAs Abertos Gustavo Carvalho, Miriam Sayão, Maíra Gatti Objetivo principal e Técnicas de PLN • Contribuir para a identificação do grau de variabilidade em requisitos, auxiliando na identificação de pontos de extensão – Esta técnica é aplicada no contexto de frameworks de governança. • Uso de técnicas de processamento da linguagem natural – uso de várias medidas estatísticas: coseno, Jaccard e Dice para identificar documentos similares Reuso parcial do Gerador de Visões da Miriam • Identificar similaridades entre documentos: stop list requisitos stemmer Filtragem e geração de vetores modelo de vetores Cálculo e Identificação de Similaridades requisitos candidatos Técnicas de PLN • Filtragem ou pré-processamento: – abordagem conhecida por bag-of-words – visa transformar documentos não-estruturados em documentos estruturados, geralmente tabelas do tipo termo-documento – problema: alta dimensionalidade e dados esparsos termo1 termo2 termo3 termo4 ..... termon doc1 freq11 freq12 freq13 freq14 ..... freq1n doc2 freq21 freq22 freq23 freq24 ..... freq2n ..... ..... ..... ..... ..... ..... ..... docm freqm1 freqm2 freqm3 freqm4 ..... freqmn Técnicas de PLN • Filtragem ou pré-processamento (cont): – redução da dimensionalidade obtida por: • uso de stop list com palavras como conjunções, advérbios, preposições, artigos, ... • stemmização das palavras : identificação de radicais de palavras. – o uso do radical possibilita agrupar singular, plural, formas verbais – contabilização é feita a partir dos radicais – cada documento é representado por um vetor de tamanho n – cada componente do vetor representa a freqüência de um termo (radical) naquele documento. Técnicas de PLN • Cálculo e identificação de similaridades – Vetores são entrada para identificação da similaridade entre pares de documentos – Cálculo dos coeficientes de Dice, Jaccard e coseno – Estes valores são correlacionados para a obtenção de um índice de similaridade único – Selecionam-se requisitos candidatos a análise de domínio, considerando os valores de similaridade. Técnicas de PLN cos( x, y ) n • Todos os coeficientes retornam valores entre 0 (menos próximo) e 1 (mais próximo) x y i 1 i i i 1 xi2 n n 2 y i 1 i 2i 1 xi yi n Dice( x, y) Jaccard( x, y) n • numerador: termos comuns (ou interseção) aos documentos n • denominador: todos os termos de cada documento (ou união) i 1 xi2 i 1 yi2 n i 1 xi2 n x y i 1 i i n 2 i i 1 y i 1 xi yi n Mas o que iremos utilizar? • Nenhuma técnica é ótima em todos os casos. • Neste sentido, propomos aplicar as três técnicas de contagem e indicar um fator que será o indicativo de proximidade entre os documentos. – Índice de Similaridade = α x coseno + β x dice + δ x im α+β+δ Aplicação em análise de domínio • Aplicação de contagem de léxico e comparação de diferentes documentos para identificar a proximidade dos requisitos… – Identifica a proximidade entre eles… • A partir desta identificação é possível determinar uma janela de análise – Objetivo é priorizar comparações • Esta janela de análise é útil para identificar em uma quantidade grande de requisitos, a proximidade entre eles, e que em nosso contexto pode indicar um candidato a ponto de extensão. Gerador de visões: estudo de caso - SELIC • Documentos existentes descrevendo o sistema são relativamente grandes... – 400 páginas => 59 seções – Volume de informação é grande – Dificuldade em se ter compreensão geral do sistema em pouco tempo. – Objetivo era estudar a viabilidade de governance frameworks para este domínio • Foco no reuso, na variabilidade e na identificação de pontos de extensão – Por que não usar instrumentos de análise léxica de requisitos para apoiar o meu objetivo neste estudo? Análise de Domínio: estudo de caso 1 • Matriz de similaridade req1 – Estrutura utilizada para a comparação de documentos contendo requisitos. req1 • Conceito de janela de análise – Proximidade na descrição dos documentos reflete potenciais candidatos a pontos de extensão. – menor proximidade quanto mais diferentes (menor coincidência de termos) forem os documentos req2 req3 req4 100% req2 req3 req4 93% 25% 78% 100% 30% 32% 100% 88% 100% Matrix de Proximidade Análise Comparativa de Documentos Análise Comparativa de Documentos 5.1 e 5.2 – Proximidade 98,87% 5.1. Com títulos objeto de Oferta Pública (3052/SEL3052 tipo 1) 5.2. Com títulos já emitidos e em circulação (4052/SEL3052 tipo 2) Operações a termo, de compra e venda definitiva, que têm por objeto títulos oriundos de oferta pública já divulgada mas ainda não liquidada. São registradas no SELIC pelo código SEL3052 tipo 1, por mensagem, ou 3052, em tela. Operações a termo, de compra e venda definitiva, com títulos já emitidos e em circulação, sendo que a data da liquidação dessas operações deve ser anterior à data do vencimento dos títulos. São registradas no SELIC pelo código SEL3052 tipo 2, por mensagem, ou 4052, por tela. SEL3052 tipo 1 SEL3052 tipo 2 liquidação incerta (títulos em leilão) liquidação certa 1 - No caso de pendência por insuficiência de títulos, os comandos da liquidação do termo de leilão são mantidos pelo SELIC até às 17h a partir do que são cancelados (horário definido na Carta-Circular 3.204, de 31/8/2005). 1 - No caso de pendência por insuficiência de títulos, os comandos da liquidação do termo são mantidos pelo SELIC até expirar o prazo de pendência de 60 minutos. Uma vez cancelados os lançamentos da operação, os comandos devem ser lançados pelos participantes envolvidos até o horário limite (18h30). O prazo de pendência assim como o horário limite estão definidos na Carta-Circular 3.204, de 31/8/2005. <TpLiquid>01</TpLiquid> <TpLiquid>02</TpLiquid> Análise Comparativa de Documentos 4.1.3 e 4.1.4 – Proximidade 99,58% 4.1.3. Com PU de retorno definido e livre movimentação (1044/SEL1054 tipo 3) 4.1.4. Com PU de retorno em aberto e livre movimentação (1047/SEL1054 tipo 4) Operação de compra/venda de títulos com compromisso de revenda/recompra com preço certo de liquidação futura Operação de compra/venda de títulos com compromisso de revenda/recompra sem preço certo de liquidação futura O retorno dessa operação compromissada é efetuado com o código 1056, em tela, ou SEL1056 tipo 1, por mensagem. O retorno dessa operação compromissada é efetuado com o código 1059, em tela, ou SEL1056 tipo 2, por mensagem. 1044 SEL1054 IF requisita Operação compromissada com PU de retorno definido e livre movimentação. Tag TpCompr = 03 1047 SEL1054 IF requisita Operação Compromissada com PU de retorno em aberto com livre movimentação. Tag Tpcompr = 04 O PU de retorno da operação compromissada deve ser determinado livremente pelas partes. Não há restrição em relação ao PU de retorno (recompra/revenda) ser menor ou igual ao PU da operação compromissada (compra/venda), com exceção das aplicações no extramercado. As operações compromissadas registradas sem o preço unitário de recompra/revenda têm a rentabilidade ou o parâmetro de remuneração predefinido e consignado: 1 - No documento "Ordem para Registro e Liquidação de Operação (DOC-8)", (ver modelo nº 30008-3 do Cadoc no Anexo 1 deste Manual). O campo utilizado para esse registro é o destinado ao "Carimbo e Assinaturas". Exemplo de critério de remuneração: 80% da Taxa SELIC + 6% a.a. 2 - Em nota de compra/venda, quando se trata de operações com clientes de conta de custódia Cliente 1. Não há restrição em relação ao PU de retorno (recompra/revenda) ser menor ou igual ao PU da operação compromissada (compra/venda), com exceção das aplicações no extramercado. Análise Comparativa de Documentos 4.1.3 e 4.1.4 – Proximidade 99,58% <TpCompr>03</TpCompr> <TpCompr>04</TpCompr> <PURet>901,00000000</PURet> <PURet>(*)</PURet> <VlrFinancRet>901000,00</VlrFinancRet> <VlrFinancRet>(*)</VlrFinancRet> - TpCompr Tipo compromisso = 03 Caso o retorno do compromisso ocorra em câmara de ativos1, tipo compromisso = 06 Só é informado por mensagem. - TpCompr Tipo compromisso: 04 Só é informado por mensagem. PURET PURet PU de retorno (recompra/revenda) PURET PURet (em branco) VLF/RET VlrFinancRet - Valor financeiro líquido de compromisso. Em tela. só deve ser preenchido quando a operação envolver a carteira própria do participante e suas contas de cliente VLF/RET VlrFinancRet (em branco) 3 - Quando se tratar da efetivação de operação compromissada pré-registrada pela câmara através da mensagem SEL1032, o número da operação deve ser o mesmo que o cedente informou à câmara e que este registrou no campo NumOpSelOr (Número de Operação Selic Original) da mensagem SEL1032. Para mais detalhes, ver neste Capítulo, Sub-Seção 14.2 - Câmara requisita aceite de préregistro de migração de retorno de operação compromissada (SEL1032). xxx os campos PU e PURET devem ser preenchidos com os preços médios correspondentes. o campo PU deve ser preenchido com o preço médio correspondente. <NumOpSELRet> Número Operação Selic Retorno <NumOpSELRet> Número Operação Selic Retorno X operação de retorno (1056) a ser lançada na data do compromisso. operação de retorno (1059) a ser lançada na data do compromisso. Análise Comparativa de Documentos 10.1 e 10.2 – Proximidade 97,11% 10.1. Repasse de Imposto de Renda (1066/SEL1066 tipo 1) 10.2. Repasse para Retenção de Imposto sobre Operações de Crédito, Câmbio e Seguros ou Relativas a Títulos ou Valores Mobiliários - IOF (1067/SEL1066 tipo 2) NOPORIG NumOpSELOr Número do comando da operação 1052, 1056, 1059 ou 1055 geradora do IR. NOPORIG NumOpSELOr Número do comando da operação 1052, 1056, 1059 ou 1055 geradora do IOF. CES CtCes Cessionário: Código da conta de custódia normal (tipo 21, 22 ou 23) CES CtCes Cessionário: Código da conta de custódia normal (tipo 21, 22, 23 ou 25) Operação de Transferência de Reserva referente ao recolhimento de Imposto de Renda (IR) incidente sobre operação liquidada no SELIC. O cálculo do IR, seu recolhimento e o lançamento da operação 1066/SEL1066 tipo 1 são de iniciativa e responsabilidade dos participantes envolvidos. Operação de Transferência de Reserva referente ao recolhimento de Imposto sobre Operações de Crédito, Câmbio e Seguros ou Relativas a Títulos ou Valores Mobiliários (IOF) incidente sobre operação liquidada no SELIC. O cálculo do IOF, seu recolhimento e o lançamento da operação 1067/SEL1066 tipo 2 são de iniciativa e responsabilidade dos participantes envolvidos. Deve ser retido por ocasião da venda ou do resgate de quaisquer títulos liquidados no SELIC, assim como na revenda dos mesmos, objeto de operações compromissadas, de acordo com a legislação vigente à época da percepção do ganho de capital. Deve ser retido por ocasião da venda ou do resgate de quaisquer títulos adquiridos até 30/12/1994, inclusive, e na revenda dos mesmos objeto de operações compromissadas cujo lançamento tenha sido realizado até a referida data, de acordo com a legislação vigente à época. Também há retenção por ocasião da venda ou resgate de quaisquer títulos adquiridos nos períodos de 24/01/1999 a 16/06/1999, inclusive, e a partir de 01/07/1999, inclusive, e na revenda dos mesmos objeto de operações compromissadas cujo lançamento tenha sido realizado nos referidos períodos. Estão sujeitas à alíquota zero as operações de titularidade das instituições financeiras e das demais instituições autorizadas a funcionar pelo Bacen; de órgãos da administração pública federal, estadual, do Distrito Federal ou municipal, direta, autárquica ou fundacional, de partido político, inclusive suas fundações, e de entidade sindical de trabalhadores, e das carteiras dos fundos de investimento e dos clubes de investimento. O cálculo do IOF deve ser feito de acordo com a legislação em vigor. Análise Comparativa de Documentos 10.1 e 10.2 – Proximidade 97,11% a - Automaticamente pelo SELIC, por ocasião da atualização de operações de código 1056, 1059 e 1055 (SEL1056 tipo 1, 2 e 3 respectivamente), envolvendo contas de cliente 2 dos tipos 21 (pessoa física), 22 (pessoa jurídica não financeira) e 23 (pessoa jurídica não financeira tributada com base no lucro real), gerando operações de código 1066; a - Automaticamente pelo SELIC, por ocasião da atualização de operações de código 1056, 1059 e 1055 (SEL1056 tipo 1, 2 e 3 respectivamente), envolvendo contas de cliente 2 dos tipos 21 (pessoa física), 22 (pessoa jurídica não financeira), 23 (pessoa jurídica não financeira tributada com base no lucro real) e 25 (pessoa jurídica não financeira imune de I.R.), gerando operação de código 1067; b - Através do lançamento no Sistema pelas instituições de operação 1066/SEL1066 tipo 1, quando se tratar de operações de venda definitiva (1052/SEL1052), envolvendo as contas de cliente 2 dos tipos 21 (pessoa física), 22 (pessoa jurídica não financeira) e 23 (pessoa jurídica não financeira tributada com base no lucro real); b - Através do lançamento no Sistema pelas instituições de código 1067/SEL1066 tipo 2, quando se tratar de operações de venda definitiva (1052/SEL1052), envolvendo as contas de cliente 2 dos tipos 21 (pessoa física), 22 (pessoa jurídica não financeira), 23 (pessoa jurídica não financeira tributada com base no lucro real) e 25 (pessoa jurídica não financeira imune de I.R.) - cliente 1 dos tipos 11 e 31 (pessoa física), 12 e 32 (pessoa jurídica não financeira) e consórcio, quando da realização de qualquer operação sujeita à retenção de IR, inclusive pagamento de juros periódicos e resgate de títulos; - cliente 2 dos tipos 21 - cliente 1 e consórcio, quando da realização de qualquer operação sujeita à retenção de IOF, inclusive resgate de títulos; - cliente 2 dos tipos 21 (pessoa física), 22 (pessoa jurídica não financeira), 23 (pessoa jurídica não financeira tributada com bas 1066 SEL1066 IF requisita Repasse Financeiro TpRepFinanc = 01 1067 SEL1066 IF requisita Repasse Financeiro TpRepFinanc = 02 <TpRepFinanc>01</TpRepFinanc> <TpRepFinanc>02</TpRepFinanc> - TpRepFinanc Tipo de repasse financeiro = 01. - TpRepFinanc Tipo de repasse financeiro = 02. Análise Comparativa de Documentos 19.1 e 19.2 – Proximidade 96,99% 19.1. Inventário de pendência por Instituição/Usuário (1703) 19.2. Inventário de pendência por Instituição/Conta (1704) Operação que permite consultar, em um dado momento do dia, o inventário de operações pendentes lançadas por determinado usuário do SELIC. Operação que permite consultar, em um dado momento do dia, o inventário de operações pendentes, em determinada conta da instituição. Para o registro dessa operação, basta o preenchimento, em tela, do campo OPE com o código de operação 1703, e depois transmiti-la: Para o registro dessa operação, basta o preenchimento, em tela, do campo OPE com o código de operação 1704, preencher o campo CEDENTE com o número de conta da instituição (mesmo que essa conta esteja na ponta do CESSIONÁRIO da operação) e depois transmiti-la: - Não foi(foram) lançada(s) operação(ões) por esse Login; - Não houve lançamento(s) na conta consultada; … … operação consta com a situação de operação LAN, pois nesse caso, indica que foi lançada só pelo cedente da operação. operação consta com a situação de operação CON, pois nesse caso, indica que foi lançada pelo cessionário da operação. Conclusão • Realmente a técnica identificou claramente documentos próximos, usando a ferramenta de comparação de documentos é simples achar o que é comum e o que é variável... • Próximos passos … análise detalhada dos documentos identificados e das características descritas por outras especificações do sistema. • Como apoiar o processo de identificação das especializações (instâncias dos pontos de extensão)? Trabalhos futuros • Após identificar documentos semelhantes – a) identificar características relevantes nesses documentos • Técnicas de extração de características são baseadas em medidas de freqüência – b) identificar atores relevantes nos documentos • Buscar substantivos ou sintagmas nominais - terminações em ente, or e outras – c) identificar comportamentos ou ações nos dois documentos e comparar • Verbos – d) identificar recursos • Substantivos stop list dicionários recursos requisito Categorização De tokens tokens categorizados Filtro ações atores Trabalhos futuros • Essas características permitiriam a construção posterior de casos de uso ou cenários e as derivações. – Essas informações seriam importantes para guiar ou apoiar esse processo. – Conseguiríamos fazer isso com as ferramentas que temos e o apoio do Akeo para o pos tagger (identificar classe gramatical de cada palavra) Bibliografia • [Daile96] Daille, B. "Study and Implementation of Combined Techniques for Automatic Extraction of Terminology". In: Klavans, J., Resnik, P. The Balancing ACT- Combining Symbolic and Statistical Approaches to Language, The MIT Press, 1996. pp. 49-66. • [Gong2001] Gong, Y. & Liu, X. "Generic text summarization using relevance measure and latent semantic analysis". In: 24th International Conference on Research in Information Retrieval (SIGIR ’01), 2001. Proceedings. pp. 19-25. • [Gonzalez05] Gonzalez, M.A.I. "Termos e Relacionamentos em Evidência na Recuperação de Informação". Tese de doutorado, Programa de PósGraduação em Computação, Universidade Federal do Rio Grande do Sul, Porto Alegre, RS. 2005. • [Gruenbacher01] Gruenbacher, P.; Egyed, A. & Medvidovic, N. "Dimensions of Concerns in Requirements Negotiation and Architecture Modeling". In: International Conference on Software Engineering - ICSE 2001. Proceedings. • [Manning99] Manning, Christopher D.; Schütze, Heinrich. Foundations of statistical natural language processing. Cambridge: MIT Press, c1999. 680 p. ISBN 0262133601 (enc.) • [Pepper00] Pepper, S. "The TAO of Topic Maps, finding the way in the age of infoglut". In: XML Europe Conference, Paris, 2000. Proceedings. • [Rashid02] Rashid, A., Sawyer, P., Moreira, A. and Araújo, J. "Early Aspects: a Model for Aspect-Oriented Requirements Engineering". In: IEEE Joint Conference on Requirements Engineering(RE’02), Essen, Germany, 2002. Proceedings. pp.199-202. • [Sayão03] Sayão, M.; Staa, A. von; Leite, J. C. S. P. – Qualidade em Requisitos – relatório técnico 47/03, série Monografias em Ciência da Computação, DI/PUC-Rio, 2003. • [Sayão05] Sayão, M. & Leite, J. C. S. P. – Rastreabilidade de Requisitos – relatório técnico 20/05, série Monografias em Ciência da Computação, DI/PUC-Rio, 2005. • [Sutton02] Sutton Jr, S. M. & Rouvellou, I. "Modeling of Software Concerns in Cosmos". In: Proceedings of the 1st International Conference on Aspect-Oriented Software Development, ACM Press, 2002. pp. 127-133. • [Teline03] Teline, M. F.; Almeida, G. M. B. & Aluísio, S. M. "Extração Manual e Automática de Terminologia: Comparando Abordagens e Critérios". In: 16th Brazilian Symposium on Computer Graphics and Image Processing - SIBGRAPI 2003. Proceedings. • Porter, M. (1980). An algorithm for suffix stripping. Program 14 (3), 130–137.