MLP Support Teacher for Grading

 # Step 1: Import libraries

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import tree
import matplotlib.pyplot as plt

# Step 2: Create a simple dataset (Question + Subject + Difficulty)
data = {
'question': [
"Explain photosynthesis",
"Define gravity",
"What is chemical bonding",
"Describe kinetic energy",
"Explain mitosis",
"What is quantum mechanics",
"Describe water cycle",
"Explain Ohm's Law",
"What are atoms made of",
"Explain the nervous system"
],
'subject': [
"Biology", "Physics", "Chemistry", "Physics",
"Biology", "Physics", "Geography", "Physics",
"Chemistry", "Biology"
],
'difficulty': [
"Easy", "Easy", "Medium", "Medium",
"Easy", "Hard", "Easy", "Medium",
"Medium", "Hard"
]
}

# Step 3: Convert into DataFrame
df = pd.DataFrame(data)

# Step 4: Text Preprocessing (TF-IDF Vectorizer)
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(df['question'])

# Step 5: Encode Subject Labels
subject_labels = df['subject']
difficulty_labels = df['difficulty']

# Step 6: Train two Decision Trees: one for subject, one for difficulty
X_train, X_test, y_train_subj, y_test_subj = train_test_split(X, subject_labels, test_size=0.2, random_state=42)
_, _, y_train_diff, y_test_diff = train_test_split(X, difficulty_labels, test_size=0.2, random_state=42)

model_subject = DecisionTreeClassifier()
model_difficulty = DecisionTreeClassifier()

model_subject.fit(X_train, y_train_subj)
model_difficulty.fit(X_train, y_train_diff)

# Step 7: Function for AI Assistant
def ai_teaching_assistant(query):
query_vec = vectorizer.transform([query])
predicted_subject = model_subject.predict(query_vec)[0]
predicted_difficulty = model_difficulty.predict(query_vec)[0]
print(f"Predicted Subject: {predicted_subject}")
print(f"Predicted Difficulty: {predicted_difficulty}")
# Give a simple response
if predicted_subject == "Biology":
print("Here’s a resource: https://www.khanacademy.org/science/biology")
elif predicted_subject == "Physics":
print("Check out this: https://www.physicsclassroom.com/")
elif predicted_subject == "Chemistry":
print("Learn more at: https://www.chemguide.co.uk/")
elif predicted_subject == "Geography":
print("Explore: https://www.nationalgeographic.org/")
else:
print("No resource found.")

# Step 8: Test the Assistant
print("\n=== Example Run ===")
user_query = input("Ask your question: ")
ai_teaching_assistant(user_query)

# Optional: Visualize one of the trees (Subject)
plt.figure(figsize=(15,10))
tree.plot_tree(model_subject, filled=True, feature_names=vectorizer.get_feature_names_out(), class_names=model_subject.classes_)
plt.title("Decision Tree for Subject Classification")
plt.show()

Comments

Popular posts from this blog

sc

DIP

DOT NET