я пытаюсь отобразить изображение облака слов, но получаю ValueError: нам нужно как минимум 1 слово для построения облака слов, получено 0 - PullRequest
0 голосов
/ 29 апреля 2020

def define_frequencies (file_contents): # Вот список знаков препинания и неинтересных слов, которые можно использовать для обработки текстовых знаков препинания = '' '! () - [] {} ;:' "\, <> ./? @ # $% ^ & * _ ~ '' 'un Interesting_words = ["the", "a", "to", "if", "is", "it", "of", "and", "or" , "an", "as", "i", "me", "my", \ "we", "our", "ours", "you", "your", "yours", "he", "она", "он", "его", "ее", "ее", "ее", "они", "они", \ "их", "что", "который", "кто", " кого "," этот "," тот "," я "," есть "," был "," были "," быть "," был "," будучи ", \" иметь "," имеет "," имел "," делать "," делает "," сделал "," но "," в "," по "," с "," от "," здесь "," когда "," где "," как ", \ "все", "любой", "оба", "каждый", "немногие", "еще", "некоторые", "такие", "нет", "ни", "слишком", "очень", " может "," будет "," просто "]

frequencies={}
def iterate():
    words=file_contents.split()

    for word in words:
        if word not in uninteresting_words and word not in punctuations:
            if word not in frequencies and word in file_contents:
                frequencies[word]+=1
            else:
                frequencies[word]=1   





#wordcloud
cloud = wordcloud.WordCloud()
cloud.generate_from_frequencies(frequencies)
return cloud.to_array()




  myimage = calculate_frequencies(file_contents)
  plt.imshow(myimage, interpolation = 'nearest')
  plt.axis('off')
  plt.show()

1 Ответ

0 голосов
/ 29 апреля 2020

Я никогда не использовал эту библиотеку, поэтому, если она не работает, не стесняйтесь, дайте мне знать.

С одной стороны, это, если утверждение перевернуто:

        if word not in frequencies and word in file_contents:
            frequencies[word]+=1
        else:
            frequencies[word]=1

Переключите его на

if word in frequencies and word in file_contents:
...

Далее, вы никогда не вызываете функцию iterate для заполнения частот. Сделайте это до того, как слово wordcloud будет вызвано.

Наконец, еще один SO-ответ вставьте в текст так:

wordcloud.generate_from_frequencies(frequencies=frequencies)

Надеемся, что после выполнения этих действий это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...