词根词缀記憶工房 (cigen)

Web

概要

このリポジトリ「cigen」は、PDFから抽出した語根(root)・接辞(affix)データを用いて語彙学習を行うための軽量なWebアプリです。データ抽出用のPythonスクリプトでPDFから構造化データ(JSON)を生成し、index.html / styles.css / app.js を中心としたフロントエンドで、語根のブラウズ、詳細表示(例語・分解・中国語訳)、フラッシュカード、選択式問題などの学習モードを提供します。学習進捗や正答率はブラウザの localStorage に保存され、GitHub Pages上で静的にホスティングできます。シンプルでデータ駆動な語根学習ツールとして設計されています。

GitHub

リポジトリの統計情報

  • スター数: 39
  • フォーク数: 12
  • ウォッチャー数: 39
  • コミット数: 2
  • ファイル数: 8
  • メインの言語: JavaScript

主な特徴

  • PDFから語根/接辞データを抽出してJSON化するパイプライン(scripts/extract_pdf_data.py)。
  • フラッシュカードと選択問題の学習モードを提供し、学習状態をlocalStorageへ保存。
  • 各語根の詳細ページに例語、分解、中文訳を表示するデータ駆動のUI。
  • シンプルな静的サイト構成でGitHub Pagesへ容易に公開可能。

技術的なポイント

本プロジェクトは「データ抽出(オフライン)」「フロントエンド表示(クライアント)」の明確な分離を取っています。まず scripts/extract_pdf_data.py によって、PDF(元は pdfresources.com で見つけた語根PDF)をパースし、語根・接辞とそれに紐づく例語・訳注を構造化して data/roots_affixes.json に出力します。抽出スクリプトはPDFのレイアウト依存のため、ある程度のルールベース処理とテキスト後処理が必要ですが、一度JSON化すれば以降の表示ロジックは非常に単純になります。

フロントエンドは index.html + styles.css + app.js の組み合わせで、依存ライブラリを増やさずに純粋なJavaScriptで構築されています。app.js は data/roots_affixes.json を読み込み、語根一覧の検索・フィルタリング、個別の語根詳細表示、フラッシュカード(答え表示/覚えた/再出題)、選択問題の生成・正答管理といったUIロジックを実装します。学習の持続性は localStorage によるローカル保存で担保しており、サーバーサイドを必要としないオフライン寄りの設計です。

デプロイは GitHub Pages を想定しており、構成は静的ホスティングに適しています。利点としてはセットアップが容易で、ユーザーは特別なバックエンドやDBを用意せずに使える点です。一方でスケーラビリティや複数端末同期、ユーザー認証などの機能はローカル保存に留まるため拡張の余地があります。今後の改善案としては、PDFパースの堅牢化(OCR対応やルールの一般化)、検索インデックス(全文検索)、PWA化によるオフライン体験の改善、サーバー同期による学習履歴のバックアップ・共有などが考えられます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • app.js: file
  • data: dir

…他 3 ファイル

(注:data ディレクトリ内に roots_affixes.json があり、scripts ディレクトリに extract_pdf_data.py が含まれます)

まとめ

PDF→JSON→静的フロントのシンプル構成で語根学習に特化した実用的なツールです。

リポジトリ情報:

READMEの抜粋:

词根词缀记忆工坊

https://pdfresources.com/搜索到了一个词根PDF,从而引发这个idea,从其中自动抽取词根词缀与例词,构建交互式记忆 Web App。

在线 Pages 地址: https://jesselau76.github.io/cigen/

功能

  • 词根/词缀检索与浏览
  • 词根详情页(例词 + 拆解 + 中文释义)
  • 闪卡训练(显示答案 / 记住 / 再看)
  • 选择题训练(本地记录正确率)
  • 本地学习进度保存(localStorage

目录

  • scripts/extract_pdf_data.py: 从 PDF 生成结构化数据
  • data/roots_affixes.json: 解析输出
  • index.html + styles.css + app.js: 前端应用

使用方式

  1. 重新生成数据(可选):
    ...

(上記はREADMEの抜粋で、プロジェクトの目的・構成・使い方が記載されています。)