如何使用 Python 从 CSV 文件制作词云

How to make a word cloud from CSV file using Python

我有以下 CSV 文件:

    Emoji,CNT,Common
    369,3988,yes
    sosad,2820,yes
    agree,1481,no
    clown,1273,yes
    dead,753,yes
    angry,561,no
    good,404,yes
    agger/dead,317,no
    cry,305,yes
    smile,300,yes

我搜索相关资料时,只有1栏。但是,我有一个CSV文件,必须制作词云图。更重要的是,我需要使用上面的文件来制作更多信息。如果“Common”栏是“yes”,它会显示红色。否则显示黑色。

我查了很多资料。他们只有 1 列。然后他们只有一种颜色或随机颜色。

因此,我不能做出我的尊重结果。

首先你需要正确读取这个 csv 文件,你可以简单地使用 python 的 pandas 库来做到这一点,如下所示:Reading csv file in python

然后你就可以使用python的wordcloud库,安装为

pip 安装 wordcloud

有关 wordcloud 的一些很好的示例,请遵循 https://github.com/amueller/word_cloud#examples

为了补充上一个答案,这是一个示例代码,可以使用 wordcloud 库执行您要求的操作。您需要将 CSV 分成两个字典,一个用于主要数据,另一个用于颜色。

import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud

# Load data as pandas dataframe
df = pd.read_csv(csv_file_location)

# Create dictionaries out of the dataframe
records = df.to_dict(orient='records')
data = {x['Emoji']: x['CNT'] for x in records}
colors = {x['Emoji']: x['Common'] for x in records}

# Generate word cloud from frequencies
wc = WordCloud(background_color="white", max_words=1000)
wc.generate_from_frequencies(data)

# Color words depending on the colors dictionary
def color_func(word, **kwargs):
    if colors.get(word) == 'yes':
        return "rgb(0, 255, 0)"
    else:
        return "rgb(255, 0, 0)"

wc.recolor(color_func=color_func)

# Show final result
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()

这会给你一张看起来像这样的图片: