Как обрабатывать большие текстовые данные для создания WordCloud? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть огромные текстовые данные, которые мне нужны для создания своего облака слов.Я использую библиотеку Python с именем word_cloud, чтобы создать облако слов, которое можно настраивать.Проблема в том, что мои текстовые данные действительно огромны, поэтому высококлассный компьютер не может выполнить задачу даже в течение долгих часов.

Данные сначала сохраняются в MongoDB.Из-за проблем Cursor при чтении данных в Python list я экспортировал все данные в простой текстовый файл - просто файл txt, который 304 MB.

Так что вопрос в том, чтоЯ ищу ответ, как я могу обработать эти огромные текстовые данные?Для библиотеки word_cloud требуется параметр String, содержащий все данные, разделенные ' ', для создания Word Cloud.

ps Python версии: 3.7.1

ps word_cloud - это генератор Word Cloud с открытым исходным кодом для Python, который доступен на GitHub: https://github.com/amueller/word_cloud

1 Ответ

0 голосов
/ 26 апреля 2019

Вам не нужно загружать все файлы в память.

from wordcloud import WordCloud
from collections import Counter

wc = WordCloud()

counts_all = Counter()

with open('path/to/file.txt', 'r') as f:
    for line in f:  # Here you can also use the Cursor
        counts_line = wc.process_text(line)
        counts_all.update(counts_line)

wc.generate_from_frequencies(counts_all)
wc.to_file('/tmp/wc.png')
...