def draw1(self, withLexs=False): counts = array(self.lexcount + [self.con]) i = lh2md.sampleMultinomial(counts) if i == len(self.lexs): lex = self.base.draw() self.lexs.append(lex) self.lexcount.append(1) else: lex = self.lexs[i] self.lexcount[i] += 1 samp = tuple(self.phons[ph].draw() for ph in lex) if withLexs: return (samp, lex) else: return samp
def drawPhon(self, n=None): if n == None: return self.phons[lh2md.sampleMultinomial(self.phoncounts)] else: return [self.phons[i] for i in lh2md.sampleMultinomial(self.phoncounts, n)]
def draw(self, n=None): if n==None: return self.lexs[lh2md.sampleMultinomial(self.probs, 1)] else: return [self.lexs[i] for i in lh2md.sampleMultinomial(self.probs, n)]