Adityaganesh commited on
Commit
a65ee9f
·
verified ·
1 Parent(s): 89a4ed9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -19
app.py CHANGED
@@ -8,6 +8,7 @@ import nltk
8
  from nltk.tokenize import word_tokenize
9
  from nltk.stem import WordNetLemmatizer
10
  from nltk.corpus import stopwords
 
11
 
12
  # Ensure necessary downloads
13
  nltk.download("punkt")
@@ -33,29 +34,22 @@ def pre_process(text):
33
  return " ".join(words)
34
 
35
  @st.cache_resource
36
- def load_label_encoder():
37
- with open("label_encoder.pkl", "rb") as f:
38
- return pickle.load(f)
 
 
 
39
 
40
- @st.cache_resource
41
- def load_text_vectorizer():
42
- return tf.keras.models.load_model("news_tv_model.keras")
43
-
44
- @st.cache_resource
45
- def load_news_model():
46
- return tf.keras.models.load_model("news_model.keras")
47
-
48
- # Load resources
49
- label_encoder = load_label_encoder()
50
- text_vectorizer = load_text_vectorizer()
51
- news_model = load_news_model()
52
 
53
  def predict_category(text):
54
  processed_text = [pre_process(text)]
55
- vectorized_text = text_vectorizer(processed_text)
56
- prediction = news_model.predict(vectorized_text)
57
- predicted_label_index = np.argmax(prediction, axis=1)[0]
58
- return label_encoder.inverse_transform([predicted_label_index])[0]
59
 
60
  # Streamlit UI
61
  st.title("News Classification App")
 
8
  from nltk.tokenize import word_tokenize
9
  from nltk.stem import WordNetLemmatizer
10
  from nltk.corpus import stopwords
11
+ from tensorflow.keras.preprocessing.sequence import pad_sequences
12
 
13
  # Ensure necessary downloads
14
  nltk.download("punkt")
 
34
  return " ".join(words)
35
 
36
  @st.cache_resource
37
+ def load_model():
38
+ model = tf.keras.models.load_model("model_m3_new.keras")
39
+ vectorizer = tf.keras.models.load_model("vec_text_m3_new.keras")
40
+ with open("label_encoder_m5.pkl", 'rb') as file:
41
+ label_encoder = pickle.load(file)
42
+ return model, vectorizer, label_encoder
43
 
44
+ # Load models
45
+ model, vectorizer, label_encoder = load_model()
 
 
 
 
 
 
 
 
 
 
46
 
47
  def predict_category(text):
48
  processed_text = [pre_process(text)]
49
+ text_vectorized = pad_sequences(vectorizer(processed_text).numpy().tolist(), padding='pre', maxlen=128)
50
+ prediction = model.predict(text_vectorized)
51
+ category_idx = np.argmax(prediction, axis=1)[0]
52
+ return label_encoder.inverse_transform([category_idx])[0]
53
 
54
  # Streamlit UI
55
  st.title("News Classification App")