我遇到过这段代码,我似乎无法理解它。
def _conditional_distribution(self, m, w):
"""
Conditional distribution (vector of size n_topics).
"""
vocab_size = self.nzw.shape[1]
left = (self.nzw[:,w] + self.beta) / \
(self.nz + self.beta * vocab_size)
right = (self.nmz[m,:] + self.alpha) / \
(self.nm[m] + self.alpha * self.n_topics)
p_z = left * right
# normalize to obtain probabilities
p_z /= np.sum(p_z)
return p_z
/ \是什么意思?谁能告诉我这段代码转换成什么等式?
作为参考,我相信m和w都只是整数。
谢谢!
答案 0 :(得分:7)
/
是除法运算符。 \
用于线路连续。它与:
left = (self.nzw[:,w] + self.beta) / (self.nz + self.beta * vocab_size)
只写两行而不是一行。
答案 1 :(得分:3)
换行前的反斜杠\
将在下一行继续,就像换行符不在那里一样。
使用多行的更易读的方法是使用括号,如下所示:
left = ((self.nzw[:,w] + self.beta) /
(self.nz + self.beta * vocab_size))
或者像这样:
right = ((self.nmz[m,:] + self.alpha)
/ (self.nm[m] + self.alpha * self.n_topics))
如果括号没有结束副本,Python继续解析下一行。
答案 2 :(得分:2)
/
是除法运算符,\
是将当前行继续到下一行。他们在一起时看起来很奇怪。