没有足够的值在 python 中解压预期 3,得到 1LDA 模型

问题描述

我正在使用本教程来训练 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 (将#修改为@)