Shipmaster1's picture
Upload 11 files
348f7b7 verified
import PyPDF2
from typing import List
class PDFLoader:
def __init__(self, path: str):
self.path = path
def load_documents(self) -> List[str]:
documents = []
with open(self.path, 'rb') as file:
pdf_reader = PyPDF2.PdfReader(file)
for page in pdf_reader.pages:
documents.append(page.extract_text())
return documents
class CharacterTextSplitter:
def __init__(self, chunk_size: int = 1500, chunk_overlap: int = 300):
self.chunk_size = chunk_size
self.chunk_overlap = chunk_overlap
def split_texts(self, texts: List[str]) -> List[str]:
split_texts = []
for text in texts:
split_texts.extend(self._split_text(text))
return split_texts
def _split_text(self, text: str) -> List[str]:
chunks = []
start = 0
while start < len(text):
end = min(start + self.chunk_size, len(text))
chunks.append(text[start:end])
start = end - self.chunk_overlap
return chunks