INNER CODE UNIT · Go
NewChain
mb-14/gomarkov · gomarkov.go:73
func NewChain(order int) *Chain {
chain := Chain{Order: order}
chain.statePool = &spool{
stringMap: make(map[string]int),
intMap: make(map[int]string),
}
chain.frequencyMat = make(map[int]sparseArray, 0)
chain.lock = new(sync.RWMutex)
return &chain
}
// Add adds the transition counts to the chain for a given sequence of words
func (chain *Chain) Add(input []string) {
startTokens := array(StartToken, chain.Order)
endTokens := array(EndToken, chain.Order)
tokens := make([]string, 0)
tokens = append(tokens, startTokens...)
tokens = append(tokens, input...)