-
-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TODO] switch of enable/disable short-term schedule #19
Comments
Would you have an explanation of how the long term and short term scheduler differ? Are the weights/parameters changing? |
You can see the workflow charts here: open-spaced-repetition/py-fsrs#56 (comment) It doesn't change the weights of FSRS. |
Could you please explain how both schedulers can follow the same learning/forgetting curves yet be far off in the time intervals? |
What do you mean by that? |
1 similar comment
What do you mean by that? |
I have this simple example: package main
import (
"fmt"
"time"
"github.com/open-spaced-repetition/go-fsrs/v3"
)
// Some experimentation code to figure out this API.
func main() {
p := fsrs.DefaultParam()
p.EnableShortTerm = true
p.EnableFuzz = true
card := fsrs.NewCard()
now := time.Now()
card.Due = now
f := fsrs.NewFSRS(p)
for range 4 {
schedulingCards := f.Repeat(card, card.Due)
rating := fsrs.Good
card = schedulingCards[rating].Card
revlog := schedulingCards[rating].ReviewLog
fmt.Println("state", revlog.State)
fmt.Println("due", card.Due)
}
} If
If
The final due date for the long-term scheduler is 5 months after the final due date for short-term scheduler. Wouldn't this mean that the parameters can't be the same? The user is much more likely to have forgotten the info if using the long-term scheduler? |
You cannot assume the users with different scheduler have the same scheduler. User who would like to use long-term scheduler usually make good cards, so their initial stability is high. |
I'm sorry, I don't fully understand. My thought was that FSRS's default parameters were tuned to have recall be at 90%. I am wondering how it's possible to use two different schedulers, and rate a question "good" 4 times, and then recall would be at 90% on dates that are 5 months apart. I feel like I am missing something about how it's supposed to work. |
Everyone has different memory pattern. That's why the optimizer is important. According to our benchmark, FSRS with optimized parameters is better than FSRS with default parameters by ~40% relatively. |
Actually you need to compare the 4th review when EnableShortTerm is true with the 3rd review when EnableShortTerm is false because the 1st review when EnableShortTerm is true is done in the same day when you learn it. |
I see now thank you. That makes sense. Do you have any code or description for how to optimize the FSRS parameters? |
There are only three ways to optimize FSRS parameters: |
By the way, this discussion has been off-topic. I recommending opening a new issue if you have more questions. |
The implementation of ts-fsrs:
The text was updated successfully, but these errors were encountered: