[MathDb] – Database of MathExplorers.club

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.

https://github.com/taipm/MathDb.git

Các bước tiến hành

  1. Thu thập dữ liệu từ kho datasets của HUGFACE
  2. Thu thập các tài liệu chia sẻ trên internet
  3. Thu thập và tổ chức lại các files (pdf) trong thư mục
  4. Sử dụng langchain – loader để đọc dữ liệu
  5. 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.")

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *