Playground
現在のワークスペースビルドをブラウザーで直接実行できます。Monaco はリポジトリ内の ts-fsrs と @open-spaced-repetition/binding の実際の宣言を読み込むため、ホバー、診断、補完、定義ジャンプが公開パッケージと一致します。
ブラウザーラボ
型付きの例を Worker で実行
サンプルを編集して実行してください。スケジューリングやパラメータ学習はメインスレッド外で実行されるため、ページは応答したままです。
WASIP1 binding で学習
コンパニオンパッケージのブラウザーエントリー、CSV 変換、FSRSBindingItem / FSRSBindingReview の生成、オプティマイザー呼び出しはすべて同じ専用 Worker 内に残ります。メインスレッドは選択した File のテキストを読み、それを Worker に送るだけです。
FSRS7 は各学習日の実際の長さで間隔を正規化し、小数や同日内の間隔も保持します。選択したタイムゾーンと日付の切り替え時刻が学習日の境界を決めます。夏時間で 23 時間または 25 時間になる場合も、学習日全体を 1 日として扱います。 FSRS7 の学習に間隔の成長と短い間隔へのペナルティを追加します。既定は無効で、スケジューリングの数式は変わりません。
CSV ファイルを選択してください。
| フィールド | 型 | 意味と制約 |
|---|---|---|
card_id | 文字列 | カード履歴をまとめる固定 ID。カンマを含む値は引用符で囲みます。 |
review_time | 64 ビット符号付き整数 | ミリ秒の Unix タイムスタンプ。FSRS6 は整数の学習日数、FSRS7 は各学習日の実際の長さで正規化した小数日数を使います。 |
review_rating | 符号なし整数(1–4) | 1 Again、2 Hard、3 Good、4 Easy。 |
review_state | 符号なし整数(0–3) | 回答前の状態:0 New、1 Learning、2 Review、3 Relearning。最後の New/Learning ブロックから履歴を保持します。 |
review_duration | 符号なし整数 | 必須の回答時間(非負のミリ秒)。 |
このリンクからは fsrs-rs のサンプル revlog.csv をダウンロードできます。123,730 件の復習レコードを含む 4,626,708 bytes のデータセットです。binding の Rust csv パーサーは CRLF、引用符、フィールド内のカンマを正しく処理します。コンバーターは card_id ごとにグループ化して review_time 順に並べ、最後の New/Learning ブロックから履歴を保持します。選択した IANA タイムゾーンで各タイムスタンプの現地時刻と夏時間を解決し、選択した nextDayStartsAt より前の現地時刻を前の学習日に割り当てます。FSRS6 はその学習日間の整数日の距離を deltaT として計算します。両モデルとも現在の deltaT > 0 の学習アイテムだけを生成します。
既定の FSRS7 も、選択したタイムゾーンと学習日の境界を使います。各学習日内の経過時間をその学習日の実際の長さで割り、日をまたぐ場合は各部分を足し合わせるため、小数や同日内の間隔も保持します。夏時間で 23 時間または 25 時間になる場合も、学習日全体を 1 日として扱います。CSV 変換と学習には同じモデルを選択してください。
FSRS6 では短期パラメーターを有効にして当日中の復習をモデル化するか、無効にして長期のみの重みを学習できます。FSRS7 の学習では常に enableShortTerm: true を使います。いずれの場合も、返された完全な weights 配列を丸めず、省略せずに表示します。