Skip to content

Commit 8ca18cb

Browse files
committed
LDA: Fix initialization
1 parent a095824 commit 8ca18cb

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

LDA.hs

+14-10
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Data.EnumMap (EnumMap)
66
import qualified Data.EnumMap as EM
77
import Control.Monad
88
import Data.Random.List (randomElement)
9+
import qualified Data.Random (sample)
910

1011
import BayesStack.Core
1112
import BayesStack.Categorical
@@ -41,16 +42,19 @@ model priors nodes items topics nodeItems =
4142
return (t, phi)
4243

4344
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
5458

5559
forM_ itemUnits $ sample
5660
return (itemUnits, thetas, phis)

0 commit comments

Comments
 (0)