File size: 1,232 Bytes
9288345
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b8d940
 
 
 
 
 
 
 
9288345
 
 
 
4b8d940
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
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
import pickle
from sentence_transformers import SentenceTransformer

file_name = "data/sms_process_data_main.xlsx"
sheet = "Sheet1"
df = pd.read_excel(file_name, sheet_name=sheet)

X_train, X_test, y_train, y_test = train_test_split(df['MessageText'], df['label'], test_size=0.2, random_state=42)

model = SentenceTransformer('Alibaba-NLP/gte-base-en-v1.5', trust_remote_code=True)

X_train_embeddings = model.encode(X_train.tolist())
X_test_embeddings = model.encode(X_test.tolist())

logistic_model = LogisticRegression(max_iter=100)
logistic_model.fit(X_train_embeddings, y_train)

# Evaluate Model
y_pred = logistic_model.predict(X_test_embeddings)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model Accuracy: {accuracy}")
print(classification_report(y_test, y_pred))

# Save Model and Sentence Transformer
print("Saving model and embeddings...")
with open('models/logistic_regression_model.pkl', 'wb') as f:
    pickle.dump(logistic_model, f)

model.save('models/sentence_transformer')
print("Model training and saving complete.")