You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
This crate contains a Rust API for training FSRS parameters, and for using them to schedule cards.
6
6
7
-
The Free Spaced Repetition Scheduler ([FSRS](https://github.com/open-spaced-repetition/fsrs4anki)) is a modern spaced repetition algorithm. It is based on the [DSR model](https://supermemo.guru/wiki/Three_component_model_of_memory) proposed by [Piotr Wozniak](https://supermemo.guru/wiki/Piotr_Wozniak), the creator of SuperMemo.
7
+
The Free Spaced Repetition Scheduler ([FSRS](https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm)) is a modern spaced repetition algorithm. It springs from [MaiMemo's DHP model](https://www.maimemo.com/paper/), which is a variant of the [DSR model](https://supermemo.guru/wiki/Three_component_model_of_memory) proposed by [Piotr Wozniak](https://supermemo.guru/wiki/Piotr_Wozniak), the creator of SuperMemo.
8
8
9
9
FSRS-rs is a Rust implementation of FSRS. It is designed to be used in [Anki](https://apps.ankiweb.net/), a popular spaced repetition software. [Anki 23.10](https://github.com/ankitects/anki/releases/tag/23.10) has already integrated FSRS as an alternative scheduler.
10
10
@@ -14,18 +14,18 @@ For more information about the algorithm, please refer to [the wiki page of FSRS
14
14
15
15
## Quickstart
16
16
17
-
Read up [this](https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Optimal-Retention) to determine the optimal retention for your use case.
17
+
Read [this](https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Optimal-Retention) for an explanation of how to determine the optimal retention for your use case.
18
18
19
19
```rust
20
-
// Pick to your liking (see above)
20
+
// Pick whichever percentage is to your liking (see above)
21
21
letoptimal_retention=0.75;
22
-
// Use default parameters/Weights for scheduler
22
+
// Use default parameters/weights for the scheduler
@@ -64,20 +64,20 @@ to `.git/hooks/pre-commit`, then `chmod +x .git/hooks/pre-commit`
64
64
65
65
## Q&A
66
66
67
-
- What is the difference with [rs-fsrs](https://github.com/open-spaced-repetition/rs-fsrs)
67
+
- What is the difference between `fsrs-rs` and [`rs-fsrs`](https://github.com/open-spaced-repetition/rs-fsrs)
68
68
69
-
If you want to schedule the card, use \[lang\]-fsrs or the [bindings](https://github.com/open-spaced-repetition/rs-fsrs?tab=readme-ov-file#bindings),
69
+
If you only want to schedule cards, use \[lang\]-fsrs or the [bindings](https://github.com/open-spaced-repetition/rs-fsrs?tab=readme-ov-file#bindings).
70
70
71
-
If you do the optimization, use this crate or its bindings.
71
+
If you need to optimize, use this crate or its bindings.
72
72
73
-
- Why not in one crate but two?
73
+
- Why use two crates instead of one?
74
74
75
-
Calculating the weight involves tensor operations. So the initial data type is different(Tensor vs Vec/Slice). In one crate means use `cfg` to change type, which is tedious, so here we keep two versions.
75
+
Calculating the weights involves tensor operations so the data types are different(Tensor vs Vec/Slice). If we were to use one crate, this would mean using `cfg` to change the variable type, which would be tedious. Because of this, instead we publish two separate crates.
76
76
77
-
Another reason is, other languages will be hard to port their version when `Tensor` is used.
77
+
Another reason is, it would be hard to port to other languages while using `Tensor`s.
78
78
79
79
- What about the name?
80
80
81
-
At first, there are `go-fsrs` and other libraries, so `rs-fsrs`is used.
81
+
Before this crate was made, `go-fsrs` and other libraries already existed, so the name `rs-fsrs`was chosen.
82
82
83
-
Then we want to port the torch version to rust so everyone can calculate on their own devices (tch-rs use libtorch which is too heavy), since the algorithm is called `fsrs`, add `-rs`.
83
+
Then we wanted to port the torch version to Rust so that everyone could optimize on their own devices (tch-rs uses libtorch which is too heavy). Since the algorithm is called `fsrs`, we add an `-rs` on the end.
0 commit comments