기계판독 가능한 원문 PDF 파일을 다운로드 받아 OCR Annotation 라벨 데이터로 준비한다.
::include_graphics("data/공고문.pdf") knitr
PDF 파일을 이미지로 변환시켜 특정된 텍스트 위치를 Bounding Box 로 표시하도록 준비한다.
library(magick)
<- image_read_pdf("data/공고문.pdf")
smpl_img %>%
smpl_img image_resize("20%")
기계판독 가능한 PDF 파일을 pdftools
를 사용해서 단어 위치를 Bounding Box 정보와 함께 추출한다.
library(tidyverse)
library(pdftools)
<- pdftools::pdf_data("data/공고문.pdf")
smpl_dat
<- smpl_dat %>%
smpl_tbl 1]]
.[[
smpl_tbl
# A tibble: 174 x 6
width height x y space text
<int> <int> <int> <int> <lgl> <chr>
1 38 33 56 60 TRUE 성남시
2 25 33 102 60 TRUE 공고
3 12 33 134 60 TRUE 제
4 26 33 153 60 TRUE 2020
5 6 33 186 60 TRUE -
6 39 33 199 60 FALSE 1192호
7 64 62 56 85 TRUE 성남시
8 125 62 127 85 TRUE 도시계획변경
9 85 62 259 85 TRUE 사전협상
10 85 62 350 85 TRUE 운영지침
# … with 164 more rows
<- image_draw(smpl_img)
smpl_draw_img
# smpl_tbl <- smpl_tbl %>%
# mutate(x = round(x * 10), #reduce resolution to minimise inconsistent coordinates
# y = round(y * 10)) %>%
# arrange(y, x) %>% #sort in reading order
# mutate(group = cumsum(!lag(space, default = 0)))
rect(xleft = smpl_tbl$x,
ybottom = smpl_tbl$y + smpl_tbl$height,
xright = smpl_tbl$x + smpl_tbl$width,
ytop = smpl_tbl$y,
border = "blue", lty = "solid", lwd = 3)
# rect(smpl_tbl$x + smpl_tbl$width,
# smpl_tbl$y + smpl_tbl$height,
# smpl_tbl$x,
# smpl_tbl$y,
# border = "green", lty = "solid", lwd = 3)
print(smpl_draw_img)
# A tibble: 1 x 7
format width height colorspace matte filesize density
<chr> <int> <int> <chr> <lgl> <int> <chr>
1 PNG 2479 3504 sRGB TRUE 0 300x300
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com