WedX - журнал о программировании и компьютерных науках

Недостаточно памяти при запуске wordcloud

Я хочу создать облако слов с набором данных на Kaggle. Однако у меня возникают проблемы с WordCloud, из-за чего возникает ошибка Недостаточно памяти для вычисления облака слов.

Код, который у меня есть:

# Loading The Data
filename = "../input/us-accidents/US_Accidents_June20.csv"
df = pd.read_csv(filename)
# Import package and it's set of stopwords
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator

# Create stopword list
stopwords = set(STOPWORDS) 
stopwords.update(["due",'accident'])
# Combine all description into one big text
df['Description']=str(df['Description'])
text = ' '.join(df['Description'])
# Create and generate a word cloud image:
wordcloud = WordCloud(
    background_color='white',
    max_font_size=50, 
    max_words=50,
    stopwords=stopwords
).generate(text)

# Display the generated image:
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

Это потому, что «текст» слишком велик, чтобы его можно было обработать? Есть ли другой способ объединить описание в один большой текст, чтобы word_cloud смог его обработать?

24.08.2020

  • Насколько большой текст? А если взять образец? Это работает? Нравится текст[:100] 24.08.2020
  • @Tasos После объединения всего описания в один большой текст получается 2533317856 слов. Я думаю, могу ли я сначала удалить все стоп-слова в «тексте», чтобы сделать его немного меньше. 24.08.2020
  • просто чтобы быть уверенным, прежде чем делать что-либо еще, в 3-м блоке кода после строки, в которой вы устанавливаете текст, добавьте этот текст = текст [: 10000]. С этим вы будете уверены, что это проблема. Всегда работайте с образцом и, когда вы уверены, попробуйте весь набор данных 24.08.2020

Ответы:


1

Вот так бы я поступил. Как вы сказали в комментариях, у вас есть корпус из 250 миллионов слов. Это, вероятно, огромно для вашей машины, чтобы обработать и создать облако слов. Вы должны попытаться минимизировать свои данные до самых ценных слов. Одна идея состоит в том, чтобы оставить только слова с высокой частотностью.

P.S. Я не проверял код, поэтому простите меня, если есть какие-либо синтаксические ошибки.

filename = "../input/us-accidents/US_Accidents_June20.csv"
df = pd.read_csv(filename)

# Import package and it's set of stopwords
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator

# Create stopword list
stopwords = set(STOPWORDS) 
stopwords.update(["due",'accident'])

# Create a variable with all the text from Description column
tokens = df['Description'].str.split().tolist()

# Create a counter for each work and it's frequency
from collections import Counter
Counter = Counter(tokens ) 

# Keep top X words with higher frequency
most_occur = Counter.most_common(1000) 

text = ' '.join([x[0] for x in most_occur])

# Create and generate a word cloud image:
wordcloud = WordCloud(
    background_color='white',
    max_font_size=50, 
    max_words=50,
    stopwords=stopwords
).generate(text)

# Display the generated image:
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
24.08.2020
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]