ordering is ultimate of targets not items

21 views
Skip to first unread message

James Tauber

unread,
Mar 29, 2008, 7:28:19 PM3/29/08
to graded...@googlegroups.com

[this is based on a blog post from August 2005 but with the
terminology changed]

Say you have written a program which lists an order in which to learn
items along with an indication, every so often, of what new target has
been reached. Running on the Greek lexemes of 1John, you might get
something starting like this:

learn μαρτυρέω
learn θεός
learn ἐν
learn εἰμί
learn ὁ
learn τρεῖς
learn ὅτι
know 230507

This gives seven items to learn and then a target that has been
reached (230507 = 1John 5.7). The problem is that two of those items
are unnecessary. You only need to learn μαρτυρέω, εἰμί,
ὁ, τρεῖς and ὅτι to be able to read 1John 5.7.

The problem is that the program is ordering items first and only then
establishing at each point what goals (if any) have been achieved.

What you really want to do is not display an item until it is needed.
So back in 2005, I wrote some code that optimizes the ordering of
items by delaying any that are not yet needed.

I've now made that code more generic and will check it in shortly.

It can be used as a post-processor on ordering from any source, even a
manually crafted list of items. It will optimize the ordering of items
for the same ordering of targets.

Because the algorithm for doing such an optimization is nearly
identical to what's necessary to calculate the "area under the curve"
that I described in my video (and will write more about soon) my new
code also outputs a score.

I'll be checking it in shortly.

James

James Tauber

unread,
Mar 29, 2008, 8:10:33 PM3/29/08
to graded...@googlegroups.com

On Mar 29, 2008, at 7:28 PM, James Tauber wrote:
> I'll be checking it in shortly.

It's available at:

http://code.google.com/p/graded-reader/source/browse/trunk/code/optimize-order.py

James

Reply all
Reply to author
Forward
0 new messages