词根词缀記憶工房 (cigen)
概要
このリポジトリ「cigen」は、PDFから抽出した語根(root)・接辞(affix)データを用いて語彙学習を行うための軽量なWebアプリです。データ抽出用のPythonスクリプトでPDFから構造化データ(JSON)を生成し、index.html / styles.css / app.js を中心としたフロントエンドで、語根のブラウズ、詳細表示(例語・分解・中国語訳)、フラッシュカード、選択式問題などの学習モードを提供します。学習進捗や正答率はブラウザの localStorage に保存され、GitHub Pages上で静的にホスティングできます。シンプルでデータ駆動な語根学習ツールとして設計されています。
リポジトリの統計情報
- スター数: 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→静的フロントのシンプル構成で語根学習に特化した実用的なツールです。
リポジトリ情報:
- 名前: cigen
- 説明: Interactive root/affix vocabulary memory web app
- スター数: 39
- 言語: JavaScript
- URL: https://github.com/jesselau76/cigen
- オーナー: jesselau76
- アバター: https://avatars.githubusercontent.com/u/40444824?v=4
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: 前端应用
使用方式
- 重新生成数据(可选):
...
(上記はREADMEの抜粋で、プロジェクトの目的・構成・使い方が記載されています。)