Untuk membuat search engine sederhana dibutuhkan beberapa langkah
- Crawling data
Untuk crawling data, library yang digunakan yaitu :
– Request
Library yang mudah digunakan dengan banyak fitur mulai dari melempar parameter dalam URL sampai mengirim header khusus dan verifikasi SSL. Dalam tutorial ini, kamu akan belajar bagaimana menggunakan library ini untuk mengirim request HTTP sederhana dalam Python.
– Beautiful soup
Merupakan sebuah library Python yang memungkinkan kita untuk melakukan scraping dengan mudah dan cepat
Keunggulan Beatutiful Soup adalah :
· Beautiful Soup hadir dengan metode-metode yang sederhana sehingga kita dengan mudah melakukan proses navigasi, pencarian dan juga modifikasi struktur data situs yang kita scraping.
· Beautiful Soup secara otomatis mampu menkonversi dokumen ke dalam format UTF-8
· Bekerja dengan baik dengan library Python lxml dan html5lib untuk melakukan parsing dokumen.
Setelah menentukan library yang digunakan, langkah selanjutnya yaitu memasukkan variabel url yang akan di crawling.
Disini kita menggunakan 10 url dengan tema alat musik yang diambil dari wikipedia
lalu dilanjutkan dengan membuat request ke servernya
jika request di terima, maka server akan merespon dengan hasil keluaran sebagai berikut.
Selanjutnya yaitu membuat deklarasi objek beautifulsoup dengan menggunakan ‘html.parser’ dari beautifulsoup
Setelah itu kita akan memparser dan mengambil judul dari url tersebut yang letaknya berada pada ‘firstHeading’
Hasil yang di dapatkan yaitu
Jika kita ingin mengambil semua isi dari konten tersebut, kita tinggal mengambil dari semua tag <p>
2. Preprocessing
Langkah selanjutnya yaitu prepocessing data dengan menggunakan library
– Re
Untuk melakukan hal — hal yang berkaitan dengan regex(Regular Expression)
– Nltk
NLTK adalah salah satu tool yang sangat populer pada ilmu Natural Language Processing (NLP) dengan menggunakan bahasa pemrograman Python. Natural Language Toolkit ini sangat mendukung proses pengolahan bahasa natural seperti classification, tokenization, stemming, tagging, parsing dll.
Setelah berhasil terinstall, selanjutnya yaitu mendownload aplikasi yang ada dalam nltk yaitu ‘wordnet’
menginstall sastrawi
Sastrawi perpustakaan PHP sederhana yang memungkinkan Anda untuk mengurangi kata-kata yang terinfleksi dalam Bahasa Indonesia (Bahasa Indonesia) ke bentuk dasarnya (batang).
a. Stopword Removal
Tahapan ini akan mengambil kata-kata yang dianggap penting dari hasil tokenization atau membuang kata-kata yang dianggap tidak terlalu mempunyai arti penting dalam proses text mining.
b. Case Folding
Pada preprocessing teks, proses case folding bertujuan untuk merubah semua huruf pada dokumen teks menjadi huruf kecil. Untuk proses ini, Anda tidak perlu menggunakan pustaka NLTK, kita bisa menggunakan fungsi lower (), yang disertakan dengan python.
c. Tokenizing
Tokenizing adalah proses membagi teks menjadi tag untuk analisis nanti. Kata, angka, simbol, tanda baca, dan entitas penting lainnya dapat dianggap sebagai token.
dari proses tokenizing, di dapatkan beberapa kata dengan jumlah/count yang berbeda beda dari setiap katanya.
3. Rekomendasi Teks
- untuk menghitung banyaknya kata dalam dokumen tersebut
- mencari TF(Term Frequency) IDF(Inverse Document Frequency) yang ada dalam dokumen tersebut
TF adalah frekuensi dari kemunculan sebuah term dalam dokumen yang bersangkutan. Semakin besar jumlah kemunculan suatu term (TF tinggi) dalam dokumen, semakin besar pula bobotnya atau akan memberikan nilai kesesuaian yang semakin besar.
IDF merupakan sebuah perhitungan dari bagaimana term didistribusikan secara luas pada koleksi dokumen yang bersangkutan. IDF menunjukkan hubungan ketersediaan sebuah term dalam seluruh dokumen. Semakin sedikit jumlah dokumen yang mengandung term yang dimaksud, maka nilai IDF semakin besar.
Dengan demikian rumus umum untuk Term Weighting TF-IDF adalah penggabungan dari formula perhitungan raw TF dengan formula IDF dengan cara mengalikan nilai TF dengan nilai IDF:
Menghitung Cosine Similarity atau bobot jarak pada dokumen
Fungsi cosine similarity digunakan untuk membandingkan kesamaan antar dokumen, dalam hal ini query dengan dokumen training dibandingkan. Saat menghitung cosine similarity, hal pertama yang harus dilakukan adalah melakukan perkalian skalar antara kueri dan dokumen, lalu menambahkannya, lalu mengalikan panjang dokumen dan panjang query dengan kuadrat, lalu menghitung akar kuadrat. Kemudian, bagi produk skalar dengan produk panjang dokumen dan query.
Mencari nilai paling tinggi pada cosine dengan most similiar
4. Retrieval
Selanjutnya yaitu proses retrieval, yaitu menguji coba TF-IDF menggunakan kata yang diinput. Disini kami menggunakan kata ‘Drum’ sebagai inputan
hasil yang di dapat adalah berupa matriks sebagai berikut
langkah terakhir yaitu menampilkan hasil rekomendasi yang telah kita cari sebelumnya
Berikut adalah hasil dari pencariannya :
Demikian Code dan Penjelasan dari Search Engine Sederhana yang dapat kami buat.
Terimakasih
Dibuat Oleh
M Azhar Ridani 201710370311027
Feny Novia Rahayu 201710370311115