python 및 pyPdf - 줄 사이에 공백이 있도록 페이지에서 텍스트를 추출하는 방법

StackOverflow https://stackoverflow.com/questions/1672466

  •  16-09-2019
  •  | 
  •  

문제

현재 pyPdf 및 extractText()를 사용하여 PDF 페이지의 페이지 개체를 만들면 행이 서로 연결됩니다.예를 들어, 페이지의 1 행에서 "Hello"라고 말하고 2 행에서 "World"라고 말하면 ExtractText ()에서 반환 된 결과 텍스트는 "Hello World"대신 "HelloWorld"입니다. 누구든지 이것을 고치는 방법을 알고 있거나 주변의 작업에 대한 제안이 있습니까?이 PDF 텍스트에 대해 텍스트 마이닝을 하고 있는데 줄 사이에 공백이 없으면 죽기 때문에 줄 사이에 공백이 있는 텍스트가 정말 필요합니다....

도움이 되었습니까?

해결책

이는 PDF 구문 분석의 일반적인 문제입니다.어떤 경우에는 수정해야 할 후행 대시를 예상할 수도 있습니다.나는 여기에서 곧 설명할 내 프로젝트 중 하나에 대한 해결 방법을 생각해 냈습니다.

나는 사용했다 PDF마이너 PDF에서 XML을 추출하고 XML에서 연결된 단어도 찾았습니다.동일한 PDF를 HTML로 추출했으며 HTML은 다음 정규식 줄로 설명할 수 있습니다.

<span style="position:absolute; writing-mode:lr-tb; left:[0-9]+px; top:([0-9]+)px; font-size:[0-9]+px;">([^<]*)</span>

범위는 절대적으로 위치하며 줄 바꿈이 발생했는지 확인하는 데 사용할 수 있는 상단 스타일을 갖습니다.줄 바꿈이 발생하고 마지막 줄의 마지막 단어에 후행 대시가 없는 경우 마지막 줄의 마지막 단어와 현재 줄의 첫 번째 단어를 구분할 수 있습니다.세부 사항이 까다로울 수 있지만 거의 모든 텍스트 구문 분석 오류를 수정할 수 있습니다.

또한 다음과 같은 사전 라이브러리를 실행하고 싶을 수도 있습니다. 호리다 텍스트에서 오류를 찾고 사전에서 제안한 수정 사항이 오류 단어와 비슷하지만 어딘가에 공백이 있는 경우 오류 단어는 구문 분석 오류일 가능성이 높으며 사전 제안으로 수정할 수 있습니다.

PDF를 구문 분석하는 것은 짜증나고 더 나은 소스를 찾으면 그것을 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top