File tree 1 file changed +14
-10
lines changed
1 file changed +14
-10
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import Data.EnumMap (EnumMap)
6
6
import qualified Data.EnumMap as EM
7
7
import Control.Monad
8
8
import Data.Random.List (randomElement )
9
+ import qualified Data.Random (sample )
9
10
10
11
import BayesStack.Core
11
12
import BayesStack.Categorical
@@ -41,16 +42,19 @@ model priors nodes items topics nodeItems =
41
42
return (t, phi)
42
43
43
44
itemUnits <- forM nodeItems $ \ (n,x) ->
44
- do t <- randomShared topics
45
- return $ ItemUnit { iuNodes = nodes
46
- , iuTopics = topics
47
- , iuItems = items
48
- , iuN = n
49
- , iuT = t
50
- , iuX = x
51
- , iuTheta = thetas EM. ! n
52
- , iuPhis = phis
53
- }
45
+ do t <- Data.Random. sample $ randomElement topics
46
+ t_ <- newShared t
47
+ let unit = ItemUnit { iuNodes = nodes
48
+ , iuTopics = topics
49
+ , iuItems = items
50
+ , iuN = n
51
+ , iuT = t_
52
+ , iuX = x
53
+ , iuTheta = thetas EM. ! n
54
+ , iuPhis = phis
55
+ }
56
+ set unit t
57
+ return unit
54
58
55
59
forM_ itemUnits $ sample
56
60
return (itemUnits, thetas, phis)
You can’t perform that action at this time.
0 commit comments