2017-09-28 7 views
0

라텍스로 작성된 Scientific 연구 논문의 PDF가 있습니다. 각각의 연구 논문은 "소개"관련 작업과 같은 부분이있다 "등, 그리고 별도로 각 섹션에서 텍스트를 추출하고 싶었다.Python을 사용하여 라텍스 내 보낸 PDF의 섹션에서 텍스트를 추출하십시오.

Sample Image of a PDF with sections such as "Abstract" and "Introduction"

이 PDF는 부분이있다"의 "추상"와 "소개 "요약"섹션에서 필자는 italicts의 텍스트를 검색하고 싶습니다. "Introduction"에 대해서는 해당 단락에 모든 단락을 넣고 싶습니다.

라텍스 소스 파일을 가지고 있다면 데이터 마이닝 및 \ section {} 키워드에 기초한 텍스트 추출

따라서 저는 Python3에서 latex [link]으로 pdf를 변환하는 등 몇 가지 방법을 시도했지만 제안 된 소프트웨어가 제 시스템 (우분투 16.04)과 호환되지 않거나 유료 소프트웨어입니다. 나는 textract를 사용하려했지만 PDF에서 섹션을 추출 할 수있는 옵션이 없다.

라텍스로 만든 PDF에서 섹션을 추출하는 방법을 아는 사람이 있습니까?

+1

arXiv에서 latex 소스 파일을 다운로드 한 다음 pandoc으로 처리하는 것이 더 쉽습니다. – dseuss

답변

0

R을 사용하여이 작업을 수행하는 방법은 잘 모르겠지만 모든 PDF 파일을 폴더에 넣고 반복하여 Word 문서를 여러 개 변환하면 VBA를 사용하여 손쉽게 작업을 수행 할 수 있습니다.

Sub SelectBetweenHeadings() 
    With Selection 
     .GoTo What:=wdGoToHeading, Which:=wdGoToPrevious 
     .Collapse 
     Dim curRange As Range 
     Set curRange = .Range 
     .Extend 
     .GoTo What:=wdGoToHeading, Which:=wdGoToNext 
     If .Range = curRange Then 
      .EndKey Unit:=wdStory 
     End If 
     .ExtendMode = False 
    End With 
End Sub 

또는 더 정확한 결과를 얻으려면이 방법을 사용하십시오.

Sub Macro1() 
    Selection.WholeStory 
    Selection.Collapse wdCollapseStart 

    Selection.Find.ClearFormatting 
    Selection.Find.Style = ActiveDocument.Styles("Caption 1") 
    With Selection.Find 
     .Text = "2.3.1" 
     .Forward = True 
     .Wrap = wdFindContinue 
     .Format = True 
     .MatchCase = False 
     .MatchWholeWord = True 
    End With 
    Selection.Find.Execute 
    Selection.Collapse wdCollapseStart 

    Dim r1 As Range 
    Set r1 = Selection.Range 

    ' keep format settings, only change text 
    Selection.Find.Text = "2.3.2" 
    If Selection.Find.Execute Then 
     Selection.Collapse wdCollapseStart 
    Else 
     Selection.WholeStory 
     Selection.Collapse wdCollapseEnd 
    End If 
    Dim r2 As Range 
    Set r2 = ActiveDocument.Range(r1.Start, Selection.Start) 
    r2.Select 

End Sub 
+0

R을 모른다는 것이 두려워요. 파이썬에서 이것을 코딩해야합니다 : / –