Spaces:
Sleeping
Sleeping
File size: 2,918 Bytes
34d5887 69d157f d8ae710 b99bcad 4682e8b b33d37d 69d157f 4682e8b b33d37d 4682e8b d40f814 4634560 4682e8b 4634560 4682e8b 4634560 4682e8b 4634560 4682e8b 4634560 9f85c11 4682e8b 9f85c11 3c1a020 4682e8b b33d37d c720e4f 9f85c11 b33d37d 09bf51b 935cbd6 5d2c61c 34d5887 4682e8b 69d157f 5d2c61c 4682e8b 69d157f 3720c80 5d2c61c 3720c80 b33d37d 9d7302b 4682e8b b33d37d 4682e8b 5d2c61c 4682e8b b33d37d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
import streamlit as st
import numpy as np
from tensorflow.keras.models import load_model
from huggingface_hub import hf_hub_download
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
import gensim
import nltk
import os
# Download necessary NLTK resources
nltk.download('stopwords')
nltk.download('wordnet')
# Load stop words and lemmatizer
stop_words = set(stopwords.words('english'))
lemmatizer = WordNetLemmatizer()
# Function to preprocess input text
def preprocess_text(input_text, word2vec_model):
input_text = input_text.lower()
tokens = input_text.split()
tokens = [token for token in tokens if token not in stop_words]
tokens = [lemmatizer.lemmatize(token, pos='v') for token in tokens]
embeddings = []
for token in tokens:
if token in word2vec_model.wv:
embeddings.append(word2vec_model.wv[token])
else:
embeddings.append(np.zeros(word2vec_model.vector_size))
max_timesteps = 100
if len(embeddings) > max_timesteps:
embeddings = embeddings[:max_timesteps]
else:
padding = [np.zeros(word2vec_model.vector_size)] * (max_timesteps - len(embeddings))
embeddings.extend(padding)
input_features = np.array(embeddings).reshape((1, max_timesteps, word2vec_model.vector_size))
return input_features
# Load Word2Vec model
def load_word2vec_model():
repo_id = 'Preethamreddy799/NLP_MODEL'
filename = 'word2vec_model.bin'
word2vec_path = hf_hub_download(repo_id=repo_id, filename=filename)
return gensim.models.Word2Vec.load(word2vec_path)
# Load LSTM model
def load_model_test_steps():
repo_id = 'Preethamreddy799/NLP_MODEL'
filename = 'model_test_steps.h5'
cached_model_path = hf_hub_download(repo_id=repo_id, filename=filename)
model = load_model(cached_model_path, compile=False)
print(f"Model loaded successfully from {cached_model_path}")
return model
# Initialize models
word2vec_model = load_word2vec_model()
lstm_model = load_model_test_steps()
# Streamlit App
st.title("Test Case Steps Generator")
st.write("This app generates test steps based on Test Case Acceptance Criteria.")
acceptance_criteria = st.text_area("Enter Test Case Acceptance Criteria")
if st.button("Generate Test Steps"):
if acceptance_criteria:
input_features = preprocess_text(acceptance_criteria, word2vec_model)
print("Original Shape:", input_features.shape) # Debugging
# Adjust input for the model's requirements
input_features = input_features[:, :1, :] # Retain only the first timestep
print("Adjusted Shape:", input_features.shape) # Debugging
try:
predicted_steps = lstm_model.predict(input_features)
st.subheader("Generated Test Steps")
st.write(predicted_steps)
except Exception as e:
st.error(f"Error generating predictions: {e}")
|