isan2001 commited on
Commit
fb3d137
·
1 Parent(s): 8683df0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -16
app.py CHANGED
@@ -3,6 +3,7 @@ from transformers import BertTokenizer
3
  from transformers import TFBertForSequenceClassification
4
  from Sastrawi.Stemmer.StemmerFactory import StemmerFactory # Import Sastrawi
5
  import streamlit as st
 
6
 
7
  # Fungsi untuk memuat model BERT dan tokenizer
8
  PRE_TRAINED_MODEL = 'indobenchmark/indobert-base-p2'
@@ -16,7 +17,20 @@ stemmer = StemmerFactory().create_stemmer() # Membuat stemmer Sastrawi
16
  def preprocess_text(text):
17
  # Menggunakan Sastrawi untuk stemming
18
  stemmed_text = stemmer.stem(text.lower())
 
 
 
 
19
 
 
 
 
 
 
 
 
 
 
20
  return stemmed_text
21
 
22
  def predict_sentiment(text):
@@ -27,24 +41,43 @@ def predict_sentiment(text):
27
  sentiment = tf.argmax(probabilities, axis=1)
28
  return sentiment.numpy()[0], probabilities.numpy()[0]
29
 
30
- # Judul aplikasi
31
- st.title('Prediksi Sentimen menggunakan BERT')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  # Input teks
34
- text = st.text_area('Masukkan teks', '')
35
 
36
  # Tombol untuk memprediksi sentimen
37
- if st.button('Prediksi'):
38
- if text.strip() == '':
39
- st.warning('Masukkan teks terlebih dahulu.')
40
- else:
41
- sentiment, probabilities = predict_sentiment(text)
42
-
43
- # Menghitung persentase probabilitas sentimen positif
44
- positive_probability = probabilities[1] * 100
45
- negative_probability = probabilities[0] * 100
46
- st.write(f'HASIL PREDIKSI')
47
- if sentiment == 0:
48
- st.write(f'Negatif ({negative_probability:.2f}%)')
49
  else:
50
- st.write(f'Positif ({positive_probability:.2f}%)')
 
 
 
 
 
 
 
 
 
 
3
  from transformers import TFBertForSequenceClassification
4
  from Sastrawi.Stemmer.StemmerFactory import StemmerFactory # Import Sastrawi
5
  import streamlit as st
6
+ import re
7
 
8
  # Fungsi untuk memuat model BERT dan tokenizer
9
  PRE_TRAINED_MODEL = 'indobenchmark/indobert-base-p2'
 
17
  def preprocess_text(text):
18
  # Menggunakan Sastrawi untuk stemming
19
  stemmed_text = stemmer.stem(text.lower())
20
+ stemmed_text = re.sub(r'\d+', '', stemmed_text) # Menghapus angka
21
+ stemmed_text = re.sub(r'\s+', ' ', stemmed_text) # Menghapus spasi berlebihan
22
+ stemmed_text = re.sub(r'[^\w\s]', '', stemmed_text)# Menghapus simbol dan tanda baca
23
+ stemmed_text = re.sub(r'[^\x00-\x7F]+', '', stemmed_text) # ascii
24
 
25
+ stopwords = ['dan', 'atau', 'juga', 'yang', 'untuk', 'karena', 'juga', 'tapi', 'yg', 'lg', 'ini', 'sih', 'saya', 'nih', 'ni', 'aku', 'ya', 'kami', 'lagi', 'udh', 'di', 'kita',
26
+ 'terus', 'kok', 'jadi', 'tpi', 'tapi', 'sama', 'lain', 'sm', 'min', 'karna', 'ah', 'eh', 'oh', 'he','kamu', 'aku',
27
+ 'diri', 'waduh', 'kan', 'itu', 'lalu', 'd', 'klo', 'pun', 'dr', 'nge', 'mah', 'ny',
28
+ 'itu', 'dari', 'kite', 'yaa', 'si', 'lah', 'gua', 'gue', 'iki', 'wooii', 'woy',
29
+ 'woi', 'gw', 'dari', 'bang', 'sya', 'ane', 'mulu', 'rb', 'org', 'oii', 'gtu', 'gya', 'nii', 'jga', 'duh', 'dah', 'deh', 'nang', 'p', 'cs' ,
30
+ 'g', 'njii', 'lot', 'loh', 'x', 'lu', 'woe', 'yg', 'kak', 'aq', 'dong', 'kali', 'rill', 'wahh', 'trss', 'sya', 'dab', 'test', 'yok', 'kk',
31
+ 'pak','rp', 'kok', 'kek', 'bosku', 'nya', 'bang', 'ka', 'gais', 'gih', 'oy', 'ki', 'ku', 'ke', 'ko', 'yah'
32
+ ]
33
+ stemmed_text = ' '.join(word for word in stemmed_text.split() if word not in stopwords)
34
  return stemmed_text
35
 
36
  def predict_sentiment(text):
 
41
  sentiment = tf.argmax(probabilities, axis=1)
42
  return sentiment.numpy()[0], probabilities.numpy()[0]
43
 
44
+ menu = ["Home","Prediksi Analisis"]
45
+ choice = st.sidebar.selectbox("Menu", menu)
46
+
47
+
48
+ if choice == "Home":
49
+ st.title("Selamat datang di Prediksi Sentimen Aplikasi Dana di Intagram Menggunakan BERT")
50
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
51
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
52
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
53
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
54
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
55
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
56
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
57
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
58
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
59
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
60
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
61
+ st.write("Ini adalah aplikasi prediksi ulasan aplikasi Vidio menggunakan model Decision Tree. Aplikasi ini dapat memprediksi apakah ulasan aplikasi Vidio bersifat positif atau negatif berdasarkan teks yang dimasukkan.")
62
+ st.write()
63
+ elif choice == "Prediksi Analisis":
64
+ st.title('Prediksi Sentimen menggunakan BERT')
65
 
66
  # Input teks
67
+ text = st.text_area('Masukkan teks', '')
68
 
69
  # Tombol untuk memprediksi sentimen
70
+ if st.button('Prediksi'):
71
+ if text.strip() == '':
72
+ st.warning('Masukkan teks terlebih dahulu.')
 
 
 
 
 
 
 
 
 
73
  else:
74
+ sentiment, probabilities = predict_sentiment(text)
75
+
76
+ # Menghitung persentase probabilitas sentimen positif
77
+ positive_probability = probabilities[1] * 100
78
+ negative_probability = probabilities[0] * 100
79
+ st.write(f'HASIL PREDIKSI')
80
+ if sentiment == 0:
81
+ st.write(f'Negatif ({negative_probability:.2f}%)')
82
+ else:
83
+ st.write(f'Positif ({positive_probability:.2f}%)')