如何处理大文本数据来创建WordCloud?

How to handle big textual data to create WordCloud?

我有大量的文本数据需要创建它的词云。我正在使用名为 word_cloudPython 库来创建可配置的词云。问题是我的文本数据实在是太大了,高端的电脑长时间也完成不了。

数据首先存储在MongoDB中。由于 Cursor 在将数据读入 Python list 时出现问题,我将整个数据导出到一个纯文本文件 - 只是一个 txt 文件,即 304 MB.

所以我正在寻找答案的问题是如何处理这些庞大的文本数据? word_cloud 库需要一个 String 参数,其中包含用 ' ' 分隔的整个数据,以便创建 Word Cloud.

p.s。 Python 版本:3.7.1

p.s。 word_cloudPython 的开源 Word Cloud 生成器,可在 GitHub 上获得:https://github.com/amueller/word_cloud

您不需要加载内存中的所有文件。

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')