| … | … | @@ -29,9 +29,10 @@ Ideas: |
| 29 | 29 | requires: |
| 30 | 30 | * Allow dict lookup of words according to desired disjuncts. |
| 31 | 31 | |
| 32 | OK, screw that. There are multiple design issues raised by above. |
| 32 | 33 | |
| 33 | | OK, screw that. The diary part ten is exploring this, here are the best |
| 34 | | ideas in summary form: |
| 34 | ## Simple chaining |
| 35 | For quick bringup, lets just do simple chaining. Ideas in summary form: |
| 35 | 36 | |
| 36 | 37 | 1) Starting with a word A, use incoming set to randomly select some |
| 37 | 38 | subset of all possible edges. This will be called the "focus set" or the |
| … | … | @@ -41,13 +42,14 @@ distribution, from which a rescaled uniform-random choice can be made. |
| 41 | 42 | |
| 42 | 43 | 2) Random sample N out of full incoming set. |
| 43 | 44 | |
| 44 | | Lets steam-process this: Query returns list of edges |
| 45 | Lets stream-process this: Query returns list of edges |
| 46 | ``` |
| 45 | 47 | (Query (Variable "next") ; vardecl |
| 46 | 48 | (EdgeLink (Predicate "ANY") |
| 47 | 49 | (List (Word "start") (Variable "next")))) |
| 48 | | |
| 50 | ``` |
| 49 | 51 | This returns a list (a short list? where do we plug in N to cap the size?) |
| 50 | | The list is actually a QueueValue. |
| 52 | The list is actually a `QueueValue`. |
| 51 | 53 | |
| 52 | 54 | 3) Out of this queue Value, select one, with the proper weighting. |
| 53 | 55 | Treating this as a collection of priors requires a sum over all elts |
| … | … | @@ -55,13 +57,16 @@ The list is actually a QueueValue. |
| 55 | 57 | to choose one for this weighted distribution. This requires a |
| 56 | 58 | "non-local" RAM-walking sum. |
| 57 | 59 | |
| 58 | | A local way of doing this is to pick a min-MI cutoff, and selecting the |
| 59 | | first elt that is above the cutoff. |
| 60 | 3a) Create a pipeline elt that takes list, adds the weights, then |
| 61 | selects N random items from that weighted list. |
| 62 | |
| 63 | 3b) A local way of doing this is to pick a min-MI cutoff, and selecting |
| 64 | the first elt that is above the cutoff. |
| 60 | 65 | |
| 61 | | A quasi-local way is to take the average of the first three elts, |
| 62 | | the first K elts, and then accept the first that is above this average. |
| 63 | | So the first K are always discarded, until the moving average is arrived |
| 64 | | at. |
| 66 | 3c) A quasi-local way is to take the average of the first three elts, |
| 67 | the first K elts, and then accept the first that is above this average. |
| 68 | So the first K are always discarded, until the moving average is arrived |
| 69 | at. |
| 65 | 70 | |
| 66 | 71 | This needs: |
| 67 | 72 | 4) Atomese to fish out/Filter the MI from the correct location |