Ruby로 PDF를 구문 분석하고 싶습니다.

4832 단어 루비PDF
공공기관이 제공하는 데이터가 PDF, CSV가 많아서 곤란한 적이 있습니까?

API를 제공해 주면 만만세, HTML로 공개해 주면 스크래핑 합니다만,,,
아직도 PDF나 CSV가 많기 때문에 오픈이 되기를 기다리네요.

환경


  • Ruby 2.4.2

  • 준비하는 것



  • pdf-reader 라는 gem
  • gem i pdf-reader 시도하십시오.

    하고 싶은 일


  • PDF가 공개 된 URL을 가져옵니다.
  • url을 건네준다
  • PDF 가져 오기
  • 퍼스
  • 데이터를 사용하기 쉬운 형태로 씻으십시오.
  • 필요한 데이터 저장 (각자 적합하게 ry)

  • 이용하는 데이터에 관하여



    이번에는 구그가 나왔다.
  • PDF 문서의 접근성
  • 직업 분류표(2012년 3월 개정)
  • 신·니혼 AI×데이터 시대에 있어서의 일본의 재생과 인재육성

  • 을 샘플로 사용합니다.
    아래의 url 부분은 각각 변경하십시오.

    할 일


    require 'open-uri'
    require 'pdf-reader'
    
    url = 'http://vips.eng.niigata-u.ac.jp/WebAccess/PDFAccessibilityQ&A.pdf'
    
    io = open(url)
    reader = PDF::Reader.new(io)
    

    이제 reader에 PDF 데이터가 저장되었습니다.
    다양한 데이터를 살펴 보겠습니다.

    간단한 문서 데이터의 경우(샘플 1)


    reader.info
    => {:CreationDate=>"D:20070228171017+09'00'", :Author=>"渡辺 哲也", :Creator=>"Word 用 Acrobat PDFMaker 7.0", :Producer=>"Acrobat Distiller 7.0 (Windows)", :ModDate=>"D:20070228171023+09'00'", :Company=>"情報処理管理係", :SourceModified=>"D:20070220052243", :Title=>"PDF文書のアクセシビリティ"}
    
    reader.info를 실행하면이 PDF의 개요를 볼 수 있습니다.
    저자는 누구인지, 어떤 소프트웨어로 작성되었는지 등 ...
    reader.pages
    => [<PDF::Reader::Page page: 1>, <PDF::Reader::Page page: 2>, <PDF::Reader::Page page: 3>, <PDF::Reader::Page page: 4>, <PDF::Reader::Page page: 5>, <PDF::Reader::Page page: 6>, <PDF::Reader::Page page: 7>, <PDF::Reader::Page page: 8>]
    
    pages 에서 각 페이지를 객체로 조작할 수 있습니다.
    reader.pages.first.text
    => "PDF 文書のアクセシビリティ\n\n     (省略)       タッチアップツールを使って追加します。"
    

    본문에 대해서는, 각 페이지에 text 메소드를 사용해 취득할 수 있습니다.

    표 형식 데이터의 경우(샘플 2)




    reader.pages.first.text
    => => "✿職業分類表✿厚生労働省 平成24年3月改訂\n\n\n    大 分 類           中 分 類                  小 分 類                            細 分 類\n  A  管理的職業     01 管理的公務員         011 管理的公務員                011-01 議会議員\n                                                           011-02 管理的国家公務員\n\n                                                           011-03 管理的地方公務員\n               02 法人・団体の役員       021 会社役員                  021-01 会社役員\n                                 029 その他の法人・団体の役員          029-01 独立行政法人等の役員\n                                                           029-99 他に分類されない法人・団体の役員\n               03 法人・団体の管理職員     031 会社の管理職員               031-01 会社の管理職員\n                                 039 その他の法人・団体の管理職員        039-01 独立行政法人等の管理職員\n                                                           039-02 福祉施設管理者\n                                                           039-99 他に分類されない法人・団体の管理職員\n\n               04 その他の管理的職業      049 その他の管理的職業             049-99 その他の管理的職業\n  B  専門的・      05 研究者            051 研究者                   051-01 理学研究者\n       技術的職業 ...(省略)"
    

    각 행을 하나로 정리하여 표시되므로 읽기가 어렵습니다.
    reader.pages.first.display
    ✿職業分類表✿厚生労働省 平成24年3月改訂
    
    
        大 分 類           中 分 類                  小 分 類                            細 分 類
      A  管理的職業     01 管理的公務員         011 管理的公務員                011-01 議会議員
                                                               011-02 管理的国家公務員
    
                                                               011-03 管理的地方公務員
    (省略)
    
    display 를 이용하면 조금 보기 쉬워집니다만, 이 근처는 각자로 성형할 필요가 있을 것 같습니다.

    이미지 등을 포함하는 파일(샘플 3)



    생략 하지만 이미지는 표시되지 않고 구조 등도 무너져 버릴 것 같습니다.
    퍼스하는데 있어서 제일 난도가 두드리는 것 같은 것은 이 형식이 될 것 같네요.



    퍼스 자체는 공개되고 있는 라이브러리를 이용하면 간단하게 할 수 있을 것 같습니다만,
    그 데이터가 텍스트 이외의 구조적인 의미를 가지고 있는 경우는, 그것을 읽어내 가공하는 능력이 필요하게 될 것 같습니다.
    이 근처를 범용적으로 실시할 수 있는 방법이 있으면 누군가 가르쳐 주세요.

    그건 그렇고 ......



    Atrae에서는 함께 싸워주는 동료를 전력으로 찾고 있습니다! !
    꼭 함께 초절묘한 서비스를 만들어 봅시다!

    좋은 웹페이지 즐겨찾기