问题描述
我正在使用本教程来训练 LDA 模型,并且在我的模型中它建议了 9 个主题。我需要按主题为句子着色:
Transform dataframes into matrix in Python for hashtag sets
所以为了让句子图表按主题着色,我应该运行:
<SyncItemmaster xmlns="http://schema.xxx.com/xxxOAGIS/2">
<ApplicationArea>
<Sender>
<LogicalID schemeVersionID="16.0.0.051">lid://in.m4.m4</LogicalID>
<ComponentID schemeVersionID="16.0.0.20210322170049">M4BEX</ComponentID>
<ConfirmationCode>OnError</ConfirmationCode>
</Sender>
<CreationDateTime>2021-06-17T18:42:31.420Z</CreationDateTime>
<BODID>e99a31bc-4ad5-45e1-a27b-10b27b9511c6</BODID>
</ApplicationArea>
<DataArea>
<Itemmaster>
<ItemmasterHeader>
<Description>JADE COLL 5-5/8 X 48 W/PAD</Description>
<Description type="ShortName">4MM GEMCORE ARCTIC 12MIL</Description>
<Classification>
<Codes>
<Code listID="Item Groups" sequence="1">00006002</Code>
</Codes>
</Classification>
<Classification>
<Codes>
<Code sequence="1" listID="Item Types">E01</Code>
</Codes>
</Classification>
<Classification>
<Codes>
<Code listID="RESPQQQ" sequence="1"/>
</Codes>
</Classification>
<UserArea>
<Property>
<NameValue name="Free1">679QB</NameValue>
</Property>
<Property>
<NameValue name="Free2">0.00</NameValue>
</Property>
</UserArea>
</ItemmasterHeader>
</Itemmaster>
</DataArea>
</SyncItemmaster>
但是可以观察到,在第 23 行中,没有足够的值可以解包(预期为 3,得到 1):
from matplotlib.patches import Rectangle
def sentences_chart(lda_model=lda_model,corpus=corpus,start = 0,end = 13):
corp = corpus[start:end]
mycolors = [color for name,color in mcolors.TABLEAU_COLORS.items()]
fig,axes = plt.subplots(end-start,1,figsize=(20,(end-start)*0.95))
axes[0].axis('off')
for i,ax in enumerate(axes):
if i > 0:
corp_cur = corp[i-1]
topic_percs,wordid_topics,wordid_phivalues = lda_model[corp_cur]
word_dominanttopic = [(lda_model.id2word[wd],topic[0]) for wd,topic in wordid_topics]
ax.text(0.01,0.5,"Doc " + str(i-1) + ": ",verticalalignment='center',fontsize=16,color='black',transform=ax.transAxes,fontweight=700)
# Draw Rectange
topic_percs_sorted = sorted(topic_percs,key=lambda x: (x[1]),reverse=True)
ax.add_patch(Rectangle((0.0,0.05),0.99,0.90,fill=None,alpha=1,color=mycolors[topic_percs_sorted[0][0]],linewidth=2))
word_pos = 0.06
for j,(word,topics) in enumerate(word_dominanttopic):
if j < 14:
ax.text(word_pos,word,horizontalalignment='left',color=mycolors[topics],fontweight=700)
word_pos += .009 * len(word) # to move the word for the next iter
ax.axis('off')
ax.text(word_pos,'. . .',transform=ax.transAxes)
plt.subplots_adjust(wspace=0,hspace=0)
plt.suptitle('Sentence Topic Coloring for Documents: ' + str(start) + ' to ' + str(end-2),fontsize=22,y=0.95,fontweight=700)
plt.tight_layout()
plt.show()
sentences_chart()
我搜索了几个教程和以前关于堆栈溢出的问题,网上没有解决方案。任何人都可以帮助解决这个错误吗?或者有没有其他方法可以通过9个主题为句子着色?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)