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 | ... | ... |