Proyek ini adalah sebuah Data Ingestion Pipeline yang dirancang untuk membangun knowledge base chatbot berbasis RAG (Retrieval-Augmented Generation). Sistem ini secara otomatis mengumpulkan, membersihkan, dan memproses data dari dua sumber utama: Website Berita Universitas Hasanuddin dan Dokumen PDF (SOP/Peraturan Akademik).
Tujuan utamanya adalah mengubah data mentah yang tidak terstruktur menjadi format JSONL yang sudah terpotong-potong secara semantik (chunked), sehingga siap untuk diproses oleh embedding model dan disimpan ke dalam vector database.
- Automated Web Scraping: Mengambil konten berita terbaru dari situs resmi Unhas menggunakan BeautifulSoup.
- OCR Document Digitization: Mengubah dokumen PDF hasil pemindaian (seperti aturan perpustakaan atau SOP) menjadi teks digital menggunakan Tesseract OCR dan Poppler.
- Cleaning:
- Normalisasi teks dan pembersihan noise web (iklan, header, metadata).
- Perbaikan kesalahan baca (OCR Typos) menggunakan kamus koreksi kustom.
- Standardisasi format poin-poin (bullet points) dan spasi.
- Chunking: Memotong teks menggunakan RecursiveCharacterTextSplitter dari LangChain dengan parameter chunk size 1000 dan overlap 200 untuk menjaga konteks antar potongan.
- Core: Python
- Data Analysis: Pandas, Numpy
- Scraping: Requests, BeautifulSoup4
- OCR & PDF: Pytesseract, Pdf2image, Poppler
- NLP Tools: LangChain (Text Splitters)
- Utility: TQDM (Progress Bar)
unhas-preprocessing-pipeline/
├── 📂 data/
│ ├── 📂 pdf/ # Tempat menaruh file PDF mentah (input)
│ └── 📂 processed/ # File CSV sementara hasil cleaning & merging
├── 📂 notebooks/ # File eksperimen (.ipynb) dan riset fungsi
├── 📂 output/ # Hasil akhir (knowledge_base_unhas.jsonl)
├── 📄 main_pipeline.py # Script utama (Production-ready script)
├── 📄 requirements.txt # Daftar library yang dibutuhkan
└── 📄 README.md # Dokumentasi proyek
- Prasyarat Sistem Pastikan kamu telah menginstall perangkat lunak pendukung OCR berikut di sistem operasi kamu:
- Tesseract OCR: Download Installer Windows (UB-Mannheim)
- Poppler: Download Poppler Terbaru
- Instalasi Library
git clone https://github.com/Data4nalyst/unhas-preprocessing-pipeline.git
cd unhas-preprocessing-pipeline
pip install -r requirements.txt- Konfigurasi Path Agar OCR berfungsi, Anda wajib memberi tahu program di mana lokasi Tesseract dan Poppler terinstall di komputer Anda.
- Buka file main_pipeline.py.
- Cari bagian KONFIGURASI (sekitar baris 15).
- Ubah variabel berikut sesuai lokasi instalasi di komputer Anda:
# CONTOH (Sesuaikan dengan path di komputer Anda):
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'
POPPLER_PATH = 'C:/poppler-25.12.0/Library/bin' - Masukkan file PDF yang ingin diproses ke dalam folder data/pdf/.
- Jalankan pipeline utama melalui terminal:
python main_pipeline.py- Pantau prosesnya melalui loading bar yang muncul. Setelah selesai, file hasil akhir akan tersedia di output/knowledge_base_unhas.jsonl.
Setiap baris dalam file output merepresentasikan satu chunk data:
{
"id": "pdf_36_1",
"title": "SK Rektor tentang Peraturan Pemanfaatan Koleksi Perpustakaan Unhas (2).pdf",
"source": "Dokumen PDF (SK Rektor tentang Peraturan Pemanfaatan Koleksi Perpustakaan Unhas (2).pdf)",
"text": "Menimbang : a. bahwa koleksi UPT Perpustakaan Universitas Hasanuddin merupakan asset..."
}