如何从CSV文件中生成词云,带有单词频率

3
我有一个CSV文件,其中数据的格式如下:
column1 column2
hello     1
film      9
chicken   20
etc       etc

我该如何使用Python生成一个词云,它需要处理的文件是CSV格式的?我尝试了Andreas Mueller的wordcloud包,但它不支持CSV。我也尝试使用generate_from_frequencies选项来处理。
reader = csv.reader(open('wordcount.csv', 'r',newline='\n'))
d = {}

for k,v in reader:
    d[k] = v

 # Generate a word cloud image
 wordcloud = WordCloud().generate_from_frequencies(d) 

但是我一直收到以下错误。
File "wordcloudtest.py", line 22, in <module>
    wordcloud = WordCloud().generate_from_frequencies(d)
  File "C:\Users\Lenovo\Anaconda3\lib\site-packages\wordcloud\wordcloud.py", line 360, in generate_from_frequenci
    for word, freq in frequencies]
  File "C:\Users\Lenovo\Anaconda3\lib\site-packages\wordcloud\wordcloud.py", line 360, in <listcomp>
    for word, freq in frequencies]
TypeError: unsupported operand type(s) for /: 'str' and 'float'

当你从CSV文件中读取数字时,它会作为字符串加载,因此你需要将其转换为整数。 - galaxyan
1个回答

2

将值转换为浮点数。

d[k] = float(v)

CSVreader会给你字符串,而generate_from_frequencies需要从strfloat的字典。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接