No mundo digital de hoje, os dados estão disponíveis em vários formatos, como Excel, CSV, PDF, HTML, JSON, XML e TXT. Embora o SQL Server Integration Services (SSIS) seja comumente usado para importação e exportação de dados no SQL Server, ele não suporta diretamente a importação ou exportação de dados no formato PDF. No entanto, com a ajuda da Linguagem de Aprendizado de Máquina do SQL Server e scripts R, podemos ler e importar dados de arquivos PDF.
Detalhes do Ambiente
Antes de começarmos, certifique-se de ter o seguinte ambiente configurado:
- SQL Server 2019
- Linguagem de Aprendizado de Máquina R
- Serviço de lançamento do SQL Server e mecanismo de banco de dados em execução
- SQL Server Management Studio
Lendo Dados de Arquivos PDF usando Scripts R no SQL Server
Para ler dados de arquivos PDF no SQL Server, podemos usar bibliotecas externas como “pdftools”. Comece lançando o console R administrativo e instalando a biblioteca “pdftools” usando o seguinte script R do SQL Server:
install.packages("pdftools")
Uma vez instalado, você pode usar o procedimento armazenado “sp_execute_external_script” para executar scripts R a partir do SQL Server. Por exemplo, você pode imprimir a versão do pacote “pdftools” usando o seguinte script:
EXECUTE sp_execute_external_script
@language = N'R',
@script = N'library(pdftools)
print(packageVersion("pdftools"))'
Isso exibirá a versão do pacote “pdftools”, confirmando que você pode usá-lo para seus scripts.
Para ler o conteúdo de um arquivo PDF, use a função “pdf_text()” no script R do SQL Server. Por exemplo:
data <- pdf_text("MeusDados.pdf")
print(data)
Isso exibirá o conteúdo do arquivo PDF. Você pode comparar a saída com o documento PDF original para verificar o conteúdo.
Melhorando a Formatação do Texto Extraído
Por padrão, o texto extraído pode não ter formatação, ignorando espaços ou quebras de linha entre as frases. Para melhorar a formatação, você pode usar a função “strsplit()” para dividir o texto extraído em várias linhas usando o caractere de nova linha (“\n”). Por exemplo:
data <- pdf_text("MeusDados.pdf")
Splitdata <- strsplit(data, "\n")
print(Splitdata)
Isso exibirá os caracteres extraídos em linhas separadas, semelhante ao documento PDF original.
Inserindo Dados em uma Tabela do SQL Server
Se você deseja importar os dados extraídos para uma tabela do SQL Server, pode criar uma tabela com uma coluna do tipo “varchar()” para armazenar os dados. Por exemplo:
CREATE TABLE DadosExtraidos (
id INT IDENTITY,
TextoExtraido VARCHAR(1000)
)
Em seguida, você pode usar o procedimento armazenado “sp_execute_external_script” para inserir os dados na tabela. Por exemplo:
INSERT INTO DadosExtraidos
EXECUTE sp_execute_external_script
@language = N'R',
@script = N'library(pdftools)
data <- pdf_text("MeusDados.pdf")
Splitdata <- strsplit(data, "\n")
OutputDataSet <- data.frame(Splitdata)'
Isso irá inserir os dados extraídos na tabela “DadosExtraidos”.
Mineração de Texto usando Scripts R no SQL Server
Depois de importar os dados de um arquivo PDF, você pode realizar mineração de texto usando as capacidades de script R do SQL Server. Por exemplo, você pode instalar o pacote externo “tm” para mineração de texto:
install.packages("tm")
library("tm")
Com o pacote “tm”, você pode aplicar várias transformações aos dados extraídos. Por exemplo, converter os textos para minúsculas, remover palavras comuns em inglês, remover sinais de pontuação e remover números. Aqui está um exemplo:
data <- pdf_text("MeusDados.pdf")
dadosExtraidos <- Corpus(VectorSource(data))
dadosExtraidos <- tm_map(dadosExtraidos, content_transformer(tolower))
dadosExtraidos <- tm_map(dadosExtraidos, removeWords, stopwords("english"))
dadosExtraidos <- tm_map(dadosExtraidos, removePunctuation)
dadosExtraidos <- tm_map(dadosExtraidos, removeNumbers)
Depois de pré-processar os dados, você pode criar uma matriz termo-documento para analisar a frequência das palavras. Por exemplo:
dadosExtraidos_matrix <- TermDocumentMatrix(dadosExtraidos)
m <- as.matrix(dadosExtraidos_matrix)
v <- sort(rowSums(m), decreasing = TRUE)
d <- data.frame(palavra = names(v), freq = v)
print(head(d, 3))
Isso exibirá as 3 palavras mais frequentemente usadas nos dados extraídos.
Conclusão
Neste artigo, exploramos como ler e importar dados de um arquivo PDF usando scripts R no SQL Server. Também vimos um exemplo de mineração de texto nos dados extraídos. Com a Linguagem de Aprendizado de Máquina do SQL Server e scripts R, você pode realizar várias tarefas de análise de dados em arquivos PDF e integrá-los aos seus fluxos de trabalho do SQL Server.