wordcloud не может конвертировать число с плавающей точкой NaN в целое число - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь создать облако слов после векторизации текста из PDF, и я получаю следующую ошибку: невозможно преобразовать число с плавающей точкой в ​​целое число

вот кусочек кода

from wordcloud import WordCloud as wc
DoW = dict(zip(b,a))

zg = wc(max_font_size=12)
p=wc.generate_from_frequencies(zg, frequencies = DoW)
from matplotlib import pyplot as plt
plt.figure(figsize = (50,50))

plt.imshow(p)

замена a списком (range (12) в DoW = dict (zip (b, a)) решает проблему, но я не вижу, что не так с данными в исходной переменной

a и b вырезаны из моего набора данных, где

a: массив ([1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0], dtype = int64)

b: ['смягчить', «Мм», «Мобильный», «Модель», «Модульный», «Влаги», «Монитор», 'Больше', 'самый', 'переехать', «Движение», 'Много']

Полная ошибка:

p=wc.generate_from_frequencies(zg, frequencies = DoW)
C:\ProgramData\Anaconda3\lib\site-packages\wordcloud\wordcloud.py:464: RuntimeWarning: invalid value encountered in double_scalars
  font_size = int(round((rs * (freq / float(last_freq))

Traceback (most recent call last):

  File "<ipython-input-120-a3e0214149fa>", line 1, in <module>
    p=wc.generate_from_frequencies(zg, frequencies = DoW)

  File "C:\ProgramData\Anaconda3\lib\site-packages\wordcloud\wordcloud.py", line 465, in generate_from_frequencies
    + (1 - rs)) * font_size))

ValueError: cannot convert float NaN to integer

с использованием Python 3, Wordcloud версия 1.5.0

EDIT: Я понимаю, что при сбрасывании значения, выводимого на печать, ошибка изменяется на: деление с плавающей запятой на ноль, я подозреваю, что, возможно, потому, что каждый член должен встречаться хотя бы один раз. однако это не исправило бы мою первоначальную ошибку (данные нарезаны, и я сомневаюсь, что есть неиспользуемый термин, потому что переменные нарезаны из: vectorizer.fit_transform (cleanParagraphs) .toarray () и vectorizer.get_feature_names ()

...