|
2 | 2 |
|
3 | 3 | import rwc from 'random-weighted-choice';
|
4 | 4 | import Tokenizer from 'sentence-tokenizer';
|
5 |
| -import { ConceptNetwork, addLink, addNode, incrementBeginning, incrementEnd, incrementMiddle, getLinksFrom, getLinksTo } from '@ector/concept-network'; |
| 5 | +import { ConceptNetwork, addLink, addNode, incrementBeginning, incrementEnd, incrementMiddle, getLinksFrom, getLinksTo, getNodeIndex } from '@ector/concept-network'; |
6 | 6 | import { ConceptNetworkState, activate, propagate, getActivationValue } from '@ector/state';
|
7 | 7 |
|
8 | 8 | /**
|
@@ -159,8 +159,9 @@ function generateForwards(cn, cns, phraseNodes, temperature) {
|
159 | 159 | }
|
160 | 160 | // Choose one node among the tokens following the one at the end of the
|
161 | 161 | // phrase
|
162 |
| - var chosenItem = rwc(nextNodes, temperature); |
163 |
| - var chosenTokenNode = cn.node[chosenItem]; |
| 162 | + const chosenItem = rwc(nextNodes, temperature); |
| 163 | + const chosenItemIndex = getNodeIndex(cn, chosenItem); |
| 164 | + const chosenTokenNode = { id: cn.node[chosenItemIndex].label, weight: -1 }; |
164 | 165 |
|
165 | 166 | // Recursively generate the remaining of the phrase
|
166 | 167 | return generateForwards(cn, cns, [...phraseNodes, chosenTokenNode], temperature);
|
@@ -205,7 +206,9 @@ function generateBackwards(cn, cns, phraseNodes, temperature) {
|
205 | 206 | // Choose one node among the tokens following the one at the end of the
|
206 | 207 | // phrase
|
207 | 208 | const chosenItem = rwc(previousNodes, temperature);
|
208 |
| - const chosenTokenNode = cn.node[chosenItem]; |
| 209 | + const chosenItemIndex = getNodeIndex(cn, chosenItem); |
| 210 | + const chosenTokenNode = { id: cn.node[chosenItemIndex].label, weight: -1 }; |
| 211 | + |
209 | 212 | // Recursively generate the remaining of the phrase
|
210 | 213 | return generateBackwards(cn, cns, [chosenTokenNode, ...phraseNodes], temperature);
|
211 | 214 | }
|
|
0 commit comments