Toeic_Reviewer / Toeic_manager.py
Huy0502's picture
Upload Toeic_manager.py
5d72d1d verified
import pandas as pd
import random
from transformers import pipeline
class ToeicVocabularyApp:
def __init__(self, data_path):
self.data_path = data_path
self.df = pd.read_csv(data_path)
self.settings = {
"num_questions": 10,
"study_mode": ["Flashcard", "Trắc nghiệm", "Thử thách tốc độ", "Ôn tập theo chủ đề", "Kiểm tra"],
"time_limit": 30, # in seconds
"selected_topics": []
}
self.classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
self.topics = ["Kinh tế", "Du lịch", "Giao tiếp", "Công nghệ", "Giáo dục"]
def update_settings(self, setting_name, value):
if setting_name in self.settings:
self.settings[setting_name] = value
def add_vocabulary(self, word, meaning, topic=None):
new_entry = {"Từ vựng": word, "Nghĩa": meaning, "Chủ đề": topic if topic else ""}
self.df = self.df.append(new_entry, ignore_index=True)
self.df.to_csv(self.data_path, index=False)
def modify_vocabulary(self, index, word=None, meaning=None, topic=None):
if word:
self.df.at[index, "Từ vựng"] = word
if meaning:
self.df.at[index, "Nghĩa"] = meaning
if topic:
self.df.at[index, "Chủ đề"] = topic
self.df.to_csv(self.data_path, index=False)
def generate_question(self, mode):
if mode == "Trắc nghiệm":
questions = []
for _ in range(self.settings["num_questions"]):
correct_row = self.df.sample(1).iloc[0]
wrong_answers = self.df[self.df["Từ vựng"] != correct_row["Từ vựng"]]["Nghĩa"].sample(3).tolist()
options = [correct_row["Nghĩa"]] + wrong_answers
random.shuffle(options)
question = {
"question": correct_row["Từ vựng"],
"options": options,
"correct_answer": correct_row["Nghĩa"]
}
questions.append(question)
return questions
elif mode == "Ôn tập theo chủ đề":
# Placeholder for topic-based review
pass
# Add other modes as needed
def use_guide(self):
return "Guide text will be added here."
def run_mode(self, mode):
if mode == "Hướng dẫn sử dụng":
return self.use_guide()
elif mode in ["Flashcard", "Trắc nghiệm", "Thử thách tốc độ", "Ôn tập theo chủ đề", "Kiểm tra"]:
return self.generate_question(mode)
else:
return "Invalid mode selected."
# Example of usage
if __name__ == "__main__":
app = ToeicVocabularyApp('toeic_vocabulary.csv')
app.update_settings('num_questions', 5)
print(app.run_mode('Trắc nghiệm'))