예제 #1
0
 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
예제 #2
0
 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)]
예제 #3
0
 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)]