Alfarizky Oscandar commited on
Commit
c7ac715
·
1 Parent(s): 01bc8b4

initial commit

Browse files
Files changed (4) hide show
  1. app.py +58 -0
  2. naive_bayes.joblib +3 -0
  3. requirements.txt +4 -0
  4. vectorizer.joblib +3 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import joblib
2
+ import gradio as gr
3
+ import numpy as np
4
+
5
+ # Muat model dan vectorizer
6
+ print("Memuat model dan vectorizer...")
7
+ vectorizer = joblib.load('vectorizer.joblib') # Muat vectorizer
8
+ nb_model = joblib.load('naive_bayes.joblib') # Muat model Naive Bayes
9
+ print("Model dan vectorizer berhasil dimuat.")
10
+
11
+ # Fungsi prediksi
12
+ def predict_text(title, content):
13
+ try:
14
+ # Transform teks menggunakan vectorizer yang sama
15
+ title_vector = vectorizer.transform([title])
16
+ content_vector = vectorizer.transform([content])
17
+
18
+ # Gabungkan fitur
19
+ X_new = np.hstack((title_vector.toarray(), content_vector.toarray()))
20
+
21
+ # Prediksi menggunakan model Naive Bayes
22
+ prediction = nb_model.predict(X_new) # Prediksi kelas (0 atau 1)
23
+ probability = nb_model.predict_proba(X_new) # Probabilitas untuk setiap kelas
24
+
25
+ # Format output
26
+ predicted_class = int(prediction[0]) # Kelas yang diprediksi (0 atau 1)
27
+ probability_fakta = float(probability[0][0] * 100) # Probabilitas fakta (kelas 0)
28
+ probability_hoaks = float(probability[0][1] * 100) # Probabilitas hoaks (kelas 1)
29
+
30
+ # Cetak output (untuk debugging)
31
+ print(f"Kelas yang diprediksi: {predicted_class}")
32
+ print(f"Probabilitas fakta: {probability_fakta:.2f}%")
33
+ print(f"Probabilitas hoaks: {probability_hoaks:.2f}%")
34
+
35
+ return predicted_class, probability_fakta, probability_hoaks
36
+ except Exception as e:
37
+ print("Error:", str(e))
38
+ return -1, 0.0, 0.0 # Nilai default jika terjadi error
39
+
40
+ # Buat antarmuka Gradio
41
+ demo = gr.Interface(
42
+ fn=predict_text, # Fungsi prediksi
43
+ inputs=[
44
+ gr.Textbox(label="Judul Berita"), # Input judul
45
+ gr.Textbox(label="Isi Berita") # Input isi
46
+ ],
47
+ outputs=[
48
+ gr.Textbox(label="Kelas yang Diprediksi"), # Output kelas
49
+ gr.Textbox(label="Probabilitas Fakta"), # Output probabilitas fakta
50
+ gr.Textbox(label="Probabilitas Hoaks") # Output probabilitas hoaks
51
+ ],
52
+ title="Deteksi Hoaks dengan Naive Bayes",
53
+ description="Masukkan judul dan isi berita untuk memprediksi apakah berita tersebut hoaks atau fakta."
54
+ )
55
+
56
+ # Jalankan aplikasi
57
+ print("Menjalankan aplikasi...")
58
+ demo.launch()
naive_bayes.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5498bf4769f3c5722be188db678a62cd3180e26afa65e8587802dbc3e8a24c1d
3
+ size 64791
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio
2
+ scikit-learn
3
+ numpy
4
+ joblib
vectorizer.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4b634f3fd87f5c5b76b924097e29fecced4eac04d5f54089b42cfdd83f998234
3
+ size 71152