Là dự án (mã nguồn mở) nhằm thu thập dữ liệu (bài tập – hướng dẫn – lời giải – đáp án) toán học từ các kho cơ sở dữ liệu lớn cũng như các nguồn tài nguyên được , các tài liệu trong các ebook, các pdf, … được chia sẻ công khai trên Internet mà tôi thu thập được.
Các bước tiến hành
- Thu thập dữ liệu từ kho datasets của HUGFACE
- Thu thập các tài liệu chia sẻ trên internet
- Thu thập và tổ chức lại các files (pdf) trong thư mục
- Sử dụng langchain – loader để đọc dữ liệu
- Lưu dữ liệu vào cơ sở dữ liệu MongoDb
Thu thập dữ liệu từ hugface
from datasets import load_dataset
import pandas as pd
# Tải dataset từ Hugging Face
dataset_name = "5CD-AI/Vietnamese-microsoft-orca-math-word-problems-200k-gg-translated"
dataset = load_dataset(dataset_name)
# Hiển thị thông tin tổng quan về dataset
print("Tổng quan về dataset:")
print(f"Tên dataset: {dataset_name}")
print(f"Số phần dữ liệu (splits): {len(dataset)}")
print("Danh sách các splits:", dataset.keys())
# Thông tin chi tiết từng split
for split_name in dataset.keys():
print(f"\nSplit: {split_name}")
print(f"- Số lượng mẫu dữ liệu: {len(dataset[split_name])}")
print(f"- Các cột dữ liệu: {dataset[split_name].column_names}")
print(f"- Một mẫu dữ liệu: {dataset[split_name][0]}")
# Chuyển tập train thành DataFrame để xử lý dễ dàng
if "train" in dataset:
train_data = dataset["train"].to_pandas()
# Thống kê số lượng câu hỏi và câu trả lời (tiếng Việt và tiếng Anh)
print("\nThống kê dữ liệu tập train:")
print("Số lượng câu hỏi:", len(train_data))
print("Số câu hỏi không có câu trả lời (tiếng Việt):", train_data["answer_vi"].isnull().sum())
print("Số câu hỏi không có câu trả lời (tiếng Anh):", train_data["answer_en"].isnull().sum())
# Hiển thị vài mẫu dữ liệu
print("\n5 mẫu dữ liệu đầu tiên trong tập train:")
print(train_data[["question_vi", "answer_vi", "question_en", "answer_en"]].head())
# Lọc các cột cần thiết
filtered_data = train_data[["question_vi", "answer_vi", "question_en", "answer_en"]]
# Lưu dữ liệu đã xử lý thành file CSV
filtered_data.to_csv("vietnamese_orca_math_problems_filtered.csv", index=False)
print("\nDữ liệu đã được lưu thành file CSV: vietnamese_orca_math_problems_filtered.csv")
else:
print("Không tìm thấy tập train trong bộ dữ liệu.")