के साथ विषय मॉडल को कार्यान्वित करना हाल ही में, मैंने साइट से कुछ कोड संदर्भ के रूप में, पायथन पर एलडीए विषय मॉडल के लिए गिब्स नमूनाकरण लागू किया। गिब्स नमूनाकरण के प्रत्येक पुनरावृत्ति में, हम एक (वर्तमान) शब्द को हटाते हैं, एलडीए मॉडल से अनुमानित एक सशर्त सशर्त संभाव्यता वितरण के अनुसार उस शब्द के लिए एक नया विषय नमूना देते हैं, और निम्नानुसार शब्द-विषय गणना अपडेट करते हैं:पाइथन (numpy)
for m, doc in enumerate(docs): #m: doc id
for n, t in enumerate(doc): #n: id of word inside document, t: id of the word globally
# discount counts for word t with associated topic z
z = z_m_n[m][n]
n_m_z[m][z] -= 1
n_z_t[z, t] -= 1
n_z[z] -= 1
n_m[m] -= 1
# sample new topic for multinomial
p_z_left = (n_z_t[:, t] + beta)/(n_z + V * beta)
p_z_right = (n_m_z[m] + alpha)/(n_m[m] + alpha * K)
p_z = p_z_left * p_z_right
p_z /= numpy.sum(p_z)
new_z = numpy.random.multinomial(1, p_z).argmax()
# set z as the new topic and increment counts
z_m_n[m][n] = new_z
n_m_z[m][new_z] += 1
n_z_t[new_z, t] += 1
n_z[new_z] += 1
n_m[m] += 1
उपर्युक्त कोड में, हम multinomial scipy फ़ंक्शन के साथ एक नया (एकल) ज़ेड नमूना देते हैं।
अब, मैं this paper के संयुक्त भाव विषय मॉडल को कार्यान्वित करना चाहता हूं। अब, मैं जरूरत मायने रखता है का ट्रैक रखने के लिए निम्नलिखित संरचनाओं की आवश्यकता होगी:
3D matrix containing # occurrences for a word for each topic, for each sentiment
3D matrix containing # occurrences for a topic, for each sentiment, for each document
2D matrix containing # occurrences for a topic, for each sentiment
2D matrix containing # occurrences for a sentiment for each document
और अब समस्या आता है: प्रत्येक शब्द एक दस्तावेज दोनों एक नया विषय है और एक भावना लेबल में देखा के लिए, इस गिब्स नमूना में अब एक सशर्त पोस्टरियर (कागज के पेज 4 समीकरण 5) से नमूना है। अब मैं पाइथन में "उन 2 मानों का नमूना कैसे लगा सकता हूं"?
अग्रिम धन्यवाद ...
क्या पहले 'for' पाश करता है योग करना चाहिए? ऐसा लगता है कि पहले 'के लिए' जो कुछ किया जाता है वह दूसरे पर पूर्ववत होता है। – Netzsooc