프로그래밍/파이썬

pdf 근접단어 찾기(pdfminer) chatgpt

do121 2023. 3. 21. 07:21

import io
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
import re
import nltk
import numpy as np

# PDF 파일 열기
pdf_file = open('example.pdf', 'rb')

# PDF를 텍스트로 변환
rsrcmgr = PDFResourceManager()
retstr = io.StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(pdf_file):
    interpreter.process_page(page)
pdf_text = retstr.getvalue()
pdf_file.close()
device.close()
retstr.close()

# 문장으로 분리
sentences = nltk.sent_tokenize(pdf_text)

# 문장에서 단어로 분리
words = [nltk.word_tokenize(sent) for sent in sentences]

# 근접한 단어 찾기
word1 = 'apple'
word2 = 'juice'
for sent_words in words:
    sent_len = len(sent_words)
    for i in range(sent_len):
        if sent_words[i] == word1:
            for j in range(max(0, i-5), min(sent_len, i+6)):
                if re.match(r'\w', sent_words[j]):
                    if np.abs(i-j) <= 5 and sent_words[j] == word2:
                        print(f"{word1} and {word2} are found in the same sentence: {' '.join(sent_words)}")
                        break

'프로그래밍 > 파이썬' 카테고리의 다른 글

값을 저장하고 읽는 방법 chatgpt  (0) 2023.04.07
flask 에서 인수를 받는 방법 chatgpt  (0) 2023.03.28
pdf 근접단어 찾기 chatgpt  (0) 2023.03.21
환율 예측 chatgpt  (0) 2023.02.24
에러 메세지  (0) 2022.12.06