【问题标题】:WordCloud 'module' object is not callable Python3WordCloud“模块”对象不可调用Python3
【发布时间】:2020-06-12 09:55:31
【问题描述】:

好的,所以我正在尝试从 pdf 中提取文本并从提取的文本中显示 wordcloud。

接收类型错误:“模块”对象不可调用 在行

cloud = wordcloud(mask=rsMask).generate(pageObj.extractText())

这是我正在运行的代码,提前感谢,干杯:

​​>
 #Extracting text from a pdf

import wordcloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
import PyPDF4


pdfFileObj = open('Test-Resume-Doc.pdf', 'rb')
pdfReader = PyPDF4.PdfFileReader(pdfFileObj)
print(pdfReader.numPages)
pageObj = pdfReader.getPage(0)
pageText = (pageObj.extractText())
pdfFileObj.close()

rsMask = np.array(Image.open('Resume_WordCloud.png'))
print(rsMask)
#
cloud = wordcloud(mask=rsMask).generate(pageObj.extractText())
print(cloud)

plt.imshow(cloud, interpolation="bilinear")
plt.axis('off')
plt.show()

【问题讨论】:

  • 您从plt 模块调用imshow 函数作为plt.imshow 和来自np 模块的array 函数,两者都正确。您必须对 wordcloud 模块中的函数执行相同操作:wordcloud.somefunction(mask=rsMask).generate...
  • 非常感谢!!问题解决了。改为:cloud = wordcloud.WordCloud(mask = rsMask).generate(pageObj.extractText())

标签: python-3.x object word-cloud


【解决方案1】:

我认为模块与模块中定义的类混合的代码存在问题。请试试这个:

from wordcloud import WordCloud
cloud = WordCloud(mask=rsMask).generate(pageObj.extractText())

云将是一个图像,因此您无法将其打印到控制台,您必须将其显示在某处(或写入文件)。

【讨论】:

    【解决方案2】:

    感谢@DaruiszOstolski 和@mkiever,这里是为遇到类似问题并添加了停用词的人提供的完整解决方案:

    #Exracting text from a pdf
    
    #import libraries
    import wordcloud
    import matplotlib.pyplot as plt
    from PIL import Image
    import numpy as np
    import PyPDF4
    
    #open pdf extract text
    pdfFileObj = open('docName.pdf', 'rb')
    pdfReader = PyPDF4.PdfFileReader(pdfFileObj)
    print(pdfReader.numPages)
    pageObj = pdfReader.getPage(0)
    pageText = (pageObj.extractText())
    pdfFileObj.close()
    
    #create array with extracted text
    rsMask = np.array(Image.open('pngName.png'))
    
    #create cloud from wordcloud.WordCloud with stopwords bcg color mask generated cloud
    cloud = wordcloud.WordCloud(stopwords='stopwords.txt', background_color="black", mask=rsMask).generate(pageObj.extractText())
    
    #display and save
    plt.imshow(cloud, interpolation="bilinear")
    plt.axis("off")
    plt.savefig('.../path...newPNGName.png'.format(cloud))
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2021-02-15
      • 2017-06-17
      • 2012-09-28
      • 2014-09-21
      • 2021-12-26
      • 2011-05-30
      相关资源
      最近更新 更多