Commit 7e984525c9fd745a6b3da054df48469ed0420d62
1 parent
5d859a41
Exists in
master
and in
1 other branch
fix forgetting factor (was hardcoded)
Showing
2 changed files
with
8 additions
and
6 deletions
Show diff stats
aprendizations/student.py
| ... | ... | @@ -12,11 +12,12 @@ logger = logging.getLogger(__name__) |
| 12 | 12 | |
| 13 | 13 | |
| 14 | 14 | # ---------------------------------------------------------------------------- |
| 15 | -# kowledge state of each student....?? | |
| 15 | +# kowledge state of a student | |
| 16 | 16 | # Contains: |
| 17 | -# state - dict of topics with state of unlocked topics | |
| 17 | +# state - dict of unlocked topics and their levels | |
| 18 | 18 | # deps - access to dependency graph shared between students |
| 19 | -# topic_sequence - list with the order of recommended topics | |
| 19 | +# topic_sequence - list with the recommended topic sequence | |
| 20 | +# current_topic - nameref of the current topic | |
| 20 | 21 | # ---------------------------------------------------------------------------- |
| 21 | 22 | class StudentState(object): |
| 22 | 23 | # ======================================================================= |
| ... | ... | @@ -34,13 +35,13 @@ class StudentState(object): |
| 34 | 35 | |
| 35 | 36 | # ------------------------------------------------------------------------ |
| 36 | 37 | # Updates the proficiency levels of the topics, with forgetting factor |
| 37 | - # FIXME no dependencies are considered yet... | |
| 38 | 38 | # ------------------------------------------------------------------------ |
| 39 | 39 | def update_topic_levels(self): |
| 40 | 40 | now = datetime.now() |
| 41 | 41 | for tref, s in self.state.items(): |
| 42 | 42 | dt = now - s['date'] |
| 43 | - s['level'] *= 0.98 ** dt.days # forgetting factor | |
| 43 | + forgetting_factor = self.deps.node[tref]['forgetting_factor'] | |
| 44 | + s['level'] *= forgetting_factor ** dt.days # forgetting factor | |
| 44 | 45 | |
| 45 | 46 | # ------------------------------------------------------------------------ |
| 46 | 47 | # Unlock topics whose dependencies are satisfied (> min_level) | ... | ... |
demo/demo.yaml
| ... | ... | @@ -4,7 +4,7 @@ title: Example |
| 4 | 4 | database: students.db |
| 5 | 5 | |
| 6 | 6 | |
| 7 | -# values applie to each topic, if undefined there | |
| 7 | +# values applied to each topic, if undefined there | |
| 8 | 8 | file: questions.yaml |
| 9 | 9 | shuffle_questions: true |
| 10 | 10 | choose: 6 |
| ... | ... | @@ -27,3 +27,4 @@ topics: |
| 27 | 27 | name: Sistema solar |
| 28 | 28 | deps: |
| 29 | 29 | - math |
| 30 | + forgetting_factor: 0.1 | ... | ... |