Spaces:
Runtime error
Runtime error
| import numpy as np | |
| import pandas as pd | |
| from pathlib import Path | |
| from sentence_transformers import SentenceTransformer | |
| from sklearn.linear_model import LogisticRegression | |
| from joblib import dump, load | |
| def pickle_model(model): | |
| DATA_DIR = Path(__file__).parent.parent / "mathtext_fastapi" / "data" / "intent_classification_model.joblib" | |
| dump(model, DATA_DIR) | |
| def create_intent_classification_model(): | |
| encoder = SentenceTransformer('all-MiniLM-L6-v2') | |
| # path = list(Path.cwd().glob('*.csv')) | |
| DATA_DIR = Path(__file__).parent.parent / "mathtext_fastapi" / "data" / "labeled_data.csv" | |
| print("DATA_DIR") | |
| print(f"{DATA_DIR}") | |
| with open(f"{DATA_DIR}",'r', newline='', encoding='utf-8') as f: | |
| df = pd.read_csv(f) | |
| df = df[df.columns[:2]] | |
| df = df.dropna() | |
| X_explore = np.array([list(encoder.encode(x)) for x in df['Utterance']]) | |
| X = np.array([list(encoder.encode(x)) for x in df['Utterance']]) | |
| y = df['Label'] | |
| model = LogisticRegression(class_weight='balanced') | |
| model.fit(X, y, sample_weight=None) | |
| print("MODEL") | |
| print(model) | |
| pickle_model(model) | |
| def retrieve_intent_classification_model(): | |
| DATA_DIR = Path(__file__).parent.parent / "mathtext_fastapi" / "data" / "intent_classification_model.joblib" | |
| model = load(DATA_DIR) | |
| return model | |
| def predict_message_intent(message): | |
| encoder = SentenceTransformer('all-MiniLM-L6-v2') | |
| model = retrieve_intent_classification_model() | |
| tokenized_utterance = np.array([list(encoder.encode(message))]) | |
| predicted_label = model.predict(tokenized_utterance) | |
| predicted_probabilities = model.predict_proba(tokenized_utterance) | |
| confidence_score = predicted_probabilities.max() | |
| return {"type": "intent", "data": predicted_label[0], "confidence": confidence_score} |