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
2i 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.
Download

Guga 02 - (LES) da PUC-Rio