library(stm)
library(dplyr)
library(knitr)
Os tribunais de contas são órgãos do poder legislativo responsáveis pelo controle externo e pela fiscalização da execução orçamentária e financeira do Estado. Sua missão é contribuir para o aperfeiçoamento da Administração Pública visando o benefício da sociedade. No Tribunal de Contas do Estado do Rio de Janeiro (TCE-RJ), a Secretaria-Geral de Controle Externo (SGE) adota uma metodologia de trabalho baseada em políticas públicas, em que cada coordenadoria é responsável por uma área específica, como saúde, saneamento e mobilidade urbana. O foco principal é a avaliação das políticas públicas.
A CAD-Mobilidade é uma das coordenadorias e tem como atribuição básica o controle e a fiscalização das ações e políticas públicas relacionadas a obras e serviços de engenharia ligados à infraestrutura urbana, transporte e mobilidade. Ela abrange todas as fases dessas ações, desde o planejamento até a execução, incluindo licitações e contratações. Especificamente, a CAD-Mobilidade concentra-se nas despesas públicas classificadas nas funções 15 (Urbanismo), 25 (Energia) e 26 (Transporte), conforme definido na Portaria nº 42/1999 do MOG.
No contexto da Mineração de Texto, um tópico é definido como um conjunto de palavras ou -tokens- onde cada palavra possui uma probabilidade de pertencer a um tópico, e um documento é definido como um conjunto de tópicos, onde cada um possui uma proporção de presença dentro do documento. A soma da proporção de cada tópico dentro de um documento é igual a 1, assim como a soma das probabilidades de cada palavra para um dado tópico, que também é igual a 1. Nesta análise, um documento corresponde a cada edital designado a coordenadoria de Mobilidade e Urbanismo.
Modelagem de tópico, portanto, é definido como uma ténica não-supervisionada de Machine Learning que busca identicar agrupamentos(clusteres) de palavras que ocorrem juntas, descobrindo assim tópicos abstratos que ocorrem em um conjunto de documentos. O objetivo é descobrir subestruturas semânticas dentro de um conjunto de textos.
Neste trabalho será utilizado o framework topicmodels para processamento e analise de modelos de Tópicos . As etapas propostas para este framework são espressas na imagem abaixo.
editais_mobilidade <- read.csv2('dados_mobilidade.csv') |> tibble()
limpar o texto
limpar_texto <-\(x){
x <- gsub("\\b[IVXLCDM]+\\b", "", x)
return(x)}
editais_mobilidade$Objeto <- limpar_texto(editais_mobilidade$Objeto )
Em geral é útil a aplicação de algum processamento dos dados de texto
antes de modelá-los. As etapas de processamento mais comuns são
radicalização (redução das palavras à sua forma raiz), eliminação da
pontuação e remoção da Stopwords (palavras com pouco ou nenhum
signinificado). A função textProcessor implementa cada uma
dessas etapas em vários idiomas, incluindo o Português.
processed <- textProcessor(editais_mobilidade$Objeto,
metadata = editais_mobilidade,
ucp = TRUE,
onlycharacter = TRUE,
wordLengths = c(3, Inf),
language = "portuguese")
## Building corpus...
## Converting to Lower Case...
## Removing punctuation...
## Removing stopwords...
## Removing numbers...
## Stemming...
## Creating Output...
Depois de ler os dados, será utilizada a função prepDocuments para processar os dados carregados para garantir que estejam no formato correto. prepDocuments também remove termos pouco frequentes, dependendo do parâmetro lower.thresh definido pelo usuário.
A função utilitária plotRemoved plotará o número de palavras e documentos removidos para diferentes limites de ocorrência minimas de palavras.
plotRemoved(processed$documents, lower.thresh = seq(1, 200, by = 100))
preparação do modelo
out <- prepDocuments(processed$documents,
processed$vocab,
processed$meta,
lower.thresh = 5)
## Removing 4065 of 5200 terms (7344 of 63372 tokens) due to frequency
## Removing 1 Documents with No Words
## Your corpus now has 3457 documents, 1135 terms and 56028 tokens.
docs <- out$documents
vocab <- out$vocab
meta <- out$meta
O processo de importação de dados resulta na criação de documentos, vocabulário e metadados que serão utilizados para a análise. Nesta seção, serão explorados procedimentos simples para estimar o modelo STM. Em seguida, serão abordadas uma série de funções que auxiliarão na avaliação, compreensão e visualização do modelo.
fit <- stm(
documents = docs, vocab = vocab, data = meta, K = 10,
max.em.its = 75, init.type = "Spectral",seed = 05959 ,verbose = FALSE)
A função labelTopics permite obter um entendimento detalhado dos termos-chave para cada tópico em um modelo STM. Essa função fornece as principais palavras de acordo com quatro estatísticas diferentes:
Maior Probabilidade: Essa métrica identifica as palavras de maior probabilidade para cada tópico, indicando a probabilidade de uma palavra estar associada a um determinado tópico.
FREX: Essa estatística calcula uma média harmônica ponderada levando em consideração a posição da palavra em termos de exclusividade (o quão exclusiva a palavra é para o tópico em questão) e frequência em relação ao tópico. Essa métrica busca encontrar palavras que sejam tanto exclusivas quanto frequentes dentro de um tópico.
Lift: O Lift pondera o peso das palavras dividindo sua frequência em um tópico pela sua frequência em outros tópicos. Isso atribui um peso maior às palavras que aparecem com menos frequência em outros tópicos, o que pode indicar uma maior relevância para o tópico específico.
Score: O Score é uma métrica semelhante ao Lift, que divide o logaritmo da frequência da palavra no tópico pelo logaritmo da frequência da palavra em outros tópicos. Essa métrica também busca destacar palavras que sejam mais distintas para um determinado tópico.
Essas estatísticas ajudam a identificar e compreender os termos-chave mais relevantes para cada tópico, oferecendo diferentes perspectivas sobre a importância das palavras em relação aos tópicos.
labelTopics(fit)
## Topic 1 Top Words:
## Highest Prob: manutenção, serviço, equipamento, prestação, locação, fornecimento, máquina
## FREX: máquina, caminhõ, corretiva, veículo, preventiva, frota, locação
## Lift: caçamba, carroceria, combustível, deslocamento, inclus, motorista, operador
## Score: máquina, locação, frota, manutenção, caminhõ, equipamento, fundiária
## Topic 2 Top Words:
## Highest Prob: anexo, conform, edit, especificaçõ, condiçõ, dest, part
## FREX: especificaçõ, dest, part, contida, integrant, edit, anexo
## Lift: part, adjacência, belford, branca, equip, especificaçõ, heliópoli
## Score: anexo, independent, especificaçõ, inseparável, transcrição, condiçõ, roxo
## Topic 3 Top Words:
## Highest Prob: preço, registro, aquisição, pública, eventu, secretaria, futura
## FREX: mese, quent, eventu, usinado, futura, período, massa
## Lift: artefato, ata, betuminoso, buraco, emulsão, ent, exceto
## Score: aquisição, registro, emulsão, eventu, futura, preço, mese
## Topic 4 Top Words:
## Highest Prob: município, projeto, rio, obra, elaboração, executivo, pont
## FREX: elaboração, executivo, janeiro, pont, niteróirj, estado, rio
## Lift: bonito, entr, fundaçõ, migração, prad, secid, executivo
## Score: executivo, elaboração, projeto, niteróirj, entroncamento, pont, rio
## Topic 5 Top Words:
## Highest Prob: contratação, empresa, especializada, serviço, execução, engenharia, município
## FREX: engenharia, contratação, regularização, empresa, nacion, especializada, orla
## Lift: regularização, region, idônea, financiamento, nacion, saquaremarj, paralelo
## Score: regularização, contratação, especializada, empresa, engenharia, serviço, execução
## Topic 6 Top Words:
## Highest Prob: rua, pavimentação, drenagem, bairro, obra, execução, pluvial
## FREX: pluvial, iguaçurj, drenagem, pavimentação, joão, casimiro, souza
## Lift: gama, habilitada, paula, walter, benedito, cantagalorj, franklin
## Score: rua, drenagem, pavimentação, bairro, pórtico, pluvial, asfáltica
## Topic 7 Top Words:
## Highest Prob: municip, secretaria, serviço, obra, público, atravé, especializada
## FREX: executar, smosp, empreitada, cronograma, seleção, descrito, unitário
## Lift: alegria, atingir, bdi, cronograma, deverão, executar, financeiro
## Score: smosp, municip, secretaria, executar, atravé, resend, agregado
## Topic 8 Top Words:
## Highest Prob: obra, contenção, rua, bairro, volta, muro, redondarj
## FREX: contenção, volta, muro, redondarj, encosta, perfeita, quaisquer
## Lift: amorim, aterrado, belém, leit, sacaria, viela, atirantada
## Score: redondarj, volta, contenção, muro, quaisquer, rua, perfeita
## Topic 9 Top Words:
## Highest Prob: sinalização, viária, aquisição, município, municip, urbana, horizont
## FREX: trânsito, serem, vertic, quantidad, utilizado, consumo, placa
## Lift: microempresa, microrrevestimento, aquisiçõ, cone, consumo, derrj, entrega
## Score: sinalização, aquisição, viária, placa, trânsito, recuperaçãomanutenção, horizont
## Topic 10 Top Words:
## Highest Prob: praça, reforma, construção, campo, parqu, revitalização, bairro
## FREX: reforma, quadra, campo, goytacazesrj, poliesportiva, centro, praça
## Lift: abrigo, gericinó, ingá, natur, pereirarj, justificativo, quiosqu
## Score: praça, reforma, construção, revitalização, quadra, bairro, centro
Podemos encontrar os principais documentos associados a um tópico com a função findThoughts:
findThoughts(fit,texts = meta$Objeto, n = 10, topics = c(1))
##
## Topic 1:
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE ITAGUAÍ, JAPERI, MANGARATIBA E SEROPÉDICA
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE LAJE DO MURIAÉ, MIRACEMA E SANTO ANTÔNIO DE PÁDUA
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE VARRE SAI, NATIVIDADE E PORCIÚNCULA
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE CACHOEIRAS DE MACACU, GUAPIMIRIM E MAGÉ
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE SANTA MARIA MADALENA, CONCEIÇÃO DE MACABU E TRAJANO DE MORAES
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE SÃO FIDÉLIS E CAMBUCI
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE APERIBÉ, ITAOCARA E SÃO SEBASTIÃO DO ALTO
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NO MUNICÍPIO DE BOM JESUS DO ITABAPOANA
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE ITAPERUNA E SÃO JOSÉ DE UBÁ
## CONTRATAÇÃO DE EMPRESA PARA PRESTAÇÃO DE SERVIÇOS DE LOCAÇÃO DE MÁQUINAS, CAMINHÕES E EQUIPAMENTOS PARA OS SERVIÇOS DE DESOBSTRUÇÃO, LIMPEZA, CONSERVAÇÃO E MANUTENÇÃO DE ESTRADAS VICINAIS, INCLUINDO OPERADOR, MOTORISTA, GERENCIAMENTO DA FROTA, MANUTENÇÃO PREVENTIVA E CORRETIVA DE TODA A FROTA, INCLUSIVE RESERVA TÉCNICA OPERACIONAL E DESLOCAMENTO DA FROTA, BEM COMO FORNECIMENTO DE COMBUSTÍVEL PARA TODOS OS VEÍCULOS E EQUIPAMENTOS, NOS MUNICÍPIOS DE TERESÓPOLIS E SÃO JOSÉ DO VALE DO RIO PRETO
Agora vamos analisar os documentos que estão relacionados ao tópico 3.
#| tbl-colwidths: [60,40]
findThoughts(fit,texts = meta$Objeto, n = 10, topics = c(3))
##
## Topic 3:
## O OBJETO DA PRESENTE LICITAÇÃO É O REGISTRO FORMAL DE PREÇOS PARA FUTURA E EVENTUAL AQUISIÇÃO DE CAP TIPO 50/70 (ANTIGO CAP 20), EMULSÃO TIPO RR-2C E ASFALTO DE PETRÓLEO -30 PARA USO EM DIVERSOS LOGRADOUROS NO MUNICÍPIO DE SÃO GONÇALO – RJ
## PREGÃO ELETRÔNICO DO TIPO MENOR PREÇO POR ITEM PARA REGISTRO DE PREÇOS PARA FUTURA AQUISIÇÃO DE LUMINÁRIAS DE LED, POR UM PERÍODO DE 12 (DOZE) MESES.
## REGISTRO DE PREÇOS PARA FUTURA E EVENTUAL AQUISIÇÃO DE ASFALTO ENSACADO, CONCRETO ASFÁLTICO USINADO A QUENTE EM SACO COM 25KG, PARA A DEMANDA DE 12 (DOZE) MESES NO MUNICÍPIO DE ARARUAMA/RJ.
## PREGÃO PRESENCIAL PARA O REGISTRO DE PREÇOS PARA FUTURA E PRETENSA: “AQUISIÇÃO DE MATERIAL ELÉTRICO DESTINADO A MANUTENÇÃO DA ILUMINAÇÃO PÚBLICA DO MUNICÍPIO DE IGUABA GRANDE/RJ.
## REGISTRO DE PREÇOS PARA FUTURA E EVENTUAL AQUISIÇÃO DE BICA CORRIDA, PARA A MANUTENÇÃO DE LOGRADOUROS E VIAS PÚBLICAS NO MUNICÍPIO DE ARARUAMA/RJ. DEMANDA DE 12 (DOZE) MESES.
## REGISTRO DE PREÇOS PARA FUTURA E EVENTUAL AQUISIÇÃO DE PEDRA DE MÃO, PÓ DE PEDRA E PARALELEPÍPEDO, PARA A MANUTENÇÃO DE LOGRADOUROS E VIAS PÚBLICAS NO MUNICÍPIO DE ARARUAMA/RJ, PELO PERÍODO DE 12 (DOZE) MESES.
## 1.1. REGISTRO DE PREÇOS, PARA EVENTUAL AQUISIÇÃO, DE MASSA ASFÁLTICA TIPO CBUQ (CONCRETO BETUMINOSO USINADO À QUENTE), ESTOCÁVEL E CONVENCIONAL.
## REGISTRO DE PREÇOS, DO TIPO MENOR PREÇO POR ITEM, PARA FUTURA AQUISIÇÃO DE LUMINÁRIAS DE LED, POR UM PERÍODO DE 12 (DOZE) MESES.
## REGISTRO DE PREÇOS, DO TIPO MENOR PREÇO POR ITEM, PARA FUTURA E EVENTUAL AQUISIÇÃO DE MATERIAL ELÉTRICO (BRAÇOS PARA ILUMINAÇÃO) PARA ATENDER AS NECESSIDADES DA SECRETARIA MUNICIPAL DE SERVIÇOS PÚBLICOS.
## REGISTRO DE PREÇOS, DO TIPO MENOR PREÇO POR ITEM, PARA FUTURA E EVENTUAL AQUISIÇÃO DE MATERIAL ELÉTRICO (RELÉ FOTOELETRÔNICO PARA ILUMINAÇÃO) PARA ATENDER AS NECESSIDADES DA SECRETARIA MUNICIPAL DE SERVIÇOS PÚBLICOS.
Assim, uma interpretação superficial dos tópicos é dada da seguinte forma:
Tópico 1: Iluminação Pública;
Tópico 2: Locação de maquinas e veiculos;
Tópico 3: Gestão de riscos geológicos;
Tópico 4: Trafego/Manutenção da malha viária;
Tópico 5: Urbanização/ de praias;
Tópico 6: Urbanização/ reforma e manutençao/ equipamentos sociais de lazer;
Tópico 7: Urbanização/Drenagem;
Tópico 8: Urbanização/ Em geral/Tópicos mistos;
Tópico 9: Urbanização/reforma e manutençao/Parques e Praças
Tópico 10: Pontes;
Alguns tópico podem ser agrupados em outros o que indica a possibilidade de redução do paramentro K na estimação do modelo.
A primeira informação relevante é a proporção esperada de cada tópico em relação ao corpus total. Essa informação pode ser visualizada através do método plot para objetos ‘STM’, utilizando o argumento type = “summary”.
No gráfico abaixo, é possível observar a proporção esperada de cada tópico em relação a todos os documentos. Os tópicos 3 e 7 se destacam nessa análise. Essa observação sugere que existe uma alta possibilidade de que esses tópicos estejam relacionados à contenção e manutenção da malha viária.
plot(fit, type = "summary", xlim = c(0, 0.3))
Uma representação visual da diferença entre um par de tópicos, como o 6 e o 7:
plot(fit, type = "perspectives", topics = c(7, 6))
correlações entre tópicos
mod.out.corr <- topicCorr(fit)
plot(mod.out.corr)