faruqaziz commited on
Commit
133fefa
·
verified ·
1 Parent(s): 316ac7a

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -0
app.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import pipeline
3
+ import nltk
4
+ from nltk.tokenize import word_tokenize
5
+ from nltk.corpus import stopwords
6
+
7
+ nltk.download('punkt')
8
+ nltk.download("stopwords")
9
+
10
+ # Buat objek terjemahan
11
+ translator = pipeline("translation_id_to_en", model="Helsinki-NLP/Opus-MT-ID-EN")
12
+
13
+ # Menggunakan pipa untuk klasifikasi diagnosis penyakit
14
+ disease_classifier = pipeline("text-classification", model="BenK10/disease-diagnosis")
15
+
16
+ def preprocess_text(teks):
17
+ tokens = word_tokenize(teks)
18
+ tokens = [token for token in tokens if token.isalnum()]
19
+ tokens = [token for token in tokens if token.lower() not in stopwords.words("indonesian")]
20
+ preprocessed_text = " ".join(tokens)
21
+ return preprocessed_text
22
+
23
+ def predict_disease(gejala, usia, jenis_kelamin):
24
+ # Pra-pemrosesan teks gejala
25
+ gejala_diproses = preprocess_text(gejala)
26
+
27
+ # Melakukan terjemahan
28
+ terjemahan = translator(gejala_diproses, max_length=50)
29
+ terjemahan_inggris = terjemahan[0]["translation_text"]
30
+
31
+ # Membuat fitur tambahan untuk klasifikasi
32
+ fitur = {"usia": usia, "jenis_kelamin": jenis_kelamin}
33
+
34
+ # Klasifikasi diagnosis penyakit dengan fitur tambahan
35
+ klasifikasi = disease_classifier(terjemahan_inggris, features=fitur)
36
+
37
+ # Mengembalikan diagnosis dan skor kepercayaan
38
+ diagnosis = klasifikasi[0]["label"]
39
+ kepercayaan = klasifikasi[0]["score"]
40
+ return diagnosis, kepercayaan
41
+
42
+ # Halaman Streamlit
43
+ st.title("Diagnosis Penyakit")
44
+
45
+ # Masukan gejala
46
+ gejala = st.text_area("Masukkan gejala Anda:", "")
47
+
48
+ # Masukan usia
49
+ usia = st.number_input("Masukkan usia Anda:", min_value=0, max_value=120)
50
+
51
+ # Masukan jenis kelamin
52
+ jenis_kelamin_pilihan = ["Laki-laki", "Perempuan"]
53
+ jenis_kelamin = st.selectbox("Masukkan jenis kelamin Anda:", jenis_kelamin_pilihan)
54
+
55
+ # Memanggil fungsi prediksi
56
+ if st.button("Diagnosis"):
57
+ diagnosis, kepercayaan = predict_disease(gejala, usia, jenis_kelamin)
58
+ st.success(f"Diagnosis: {diagnosis}")
59
+ st.write(f"Kepercayaan: {kepercayaan:.2f}")